ETH Price: $3,486.85 (+0.73%)
Gas: 4 Gwei

Token

Pou (POU)
 

Overview

Max Total Supply

1,000,000,000 POU

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,409,469.621971934 POU

Value
$0.00
0x8ced5164a233f4b046ec6a96f7f631f0c3bc2442
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Pou

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Telegram: https://t.me/PouOnEth
Twitter: https://x.com/poucoinonETH
Website: https://poucoineth.com/

*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract Pou 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 _initialTax=23;
    uint256 private _reduceTaxAtBlocks=10;
    uint256 private _preventSwapBefore=12;
    uint256 private _buyCount=0;

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

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

        //team 5%
        _balances[address(this)] = _tTotal * 95 / 100;
        _balances[_msgSender()] = _tTotal - _balances[address(this)];

        emit Transfer(address(0), address(this), _balances[address(this)]);
        emit Transfer(address(0), _msgSender(), _balances[_msgSender()]);

    }

    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 (tradingOpen && from != owner() && to != owner() && to != _taxWallet) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(block.number - tradingOpenBlock < _reduceTaxAtBlocks) {
                    taxAmount = amount.mul(_initialTax).div(100);
                }
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                if(block.number - tradingOpenBlock < _reduceTaxAtBlocks) {
                    taxAmount = amount.mul(_initialTax).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),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    function 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 removeLimit1() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openPou() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        tradingOpenBlock = block.number;
    }


    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && swapEnabled){
          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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openPou","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","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"}]

60806040526017600655600a600755600c60085560006009556009600a620000289190620007a7565b62e4e1c0620000389190620007f8565b600a556009600a6200004b9190620007a7565b62e4e1c06200005b9190620007f8565b600b556009600a6200006e9190620007a7565b62e4e1c06200007e9190620007f8565b600c556009600a620000919190620007a7565b62e4e1c0620000a19190620007f8565b600d556000601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff02191690831515021790555060006012556000601355348015620000f157600080fd5b50600062000104620005dc60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b2620005dc60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016003600062000208620005e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506064605f6009600a6200033f9190620007a7565b633b9aca00620003509190620007f8565b6200035c9190620007f8565b62000368919062000872565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a620003fb9190620007a7565b633b9aca006200040c9190620007f8565b620004189190620008aa565b600160006200042c620005dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620005099190620008f6565b60405180910390a362000521620005dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001600062000584620005dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620005ce9190620008f6565b60405180910390a362000913565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200069b578086048111156200067357620006726200060d565b5b6001851615620006835780820291505b808102905062000693856200063c565b945062000653565b94509492505050565b600082620006b6576001905062000789565b81620006c6576000905062000789565b8160018114620006df5760028114620006ea5762000720565b600191505062000789565b60ff841115620006ff57620006fe6200060d565b5b8360020a9150848211156200071957620007186200060d565b5b5062000789565b5060208310610133831016604e8410600b84101617156200075a5782820a9050838111156200075457620007536200060d565b5b62000789565b62000769848484600162000649565b925090508184048111156200078357620007826200060d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007b48262000790565b9150620007c1836200079a565b9250620007f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006a4565b905092915050565b6000620008058262000790565b9150620008128362000790565b9250828202620008228162000790565b915082820484148315176200083c576200083b6200060d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200087f8262000790565b91506200088c8362000790565b9250826200089f576200089e62000843565b5b828204905092915050565b6000620008b78262000790565b9150620008c48362000790565b9250828203905081811115620008df57620008de6200060d565b5b92915050565b620008f08162000790565b82525050565b60006020820190506200090d6000830184620008e5565b92915050565b6131c280620009236000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a05780638f9a55c0116100645780638f9a55c01461036257806395d89b411461038d578063a9059cbb146103b8578063bf474bed146103f5578063dd62ed3e146104205761011f565b806370a082311461028f578063715018a6146102cc5780637d1db4a5146102e35780638cd4426d1461030e5780638da5cb5b146103375761011f565b806318160ddd116100e757806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657806351bc3c85146102615780636597e6fa146102785761011f565b806306fdde0314610124578063095ea7b31461014f5780630ab54ee21461018c5780630faee56f146101a35761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b60405161014691906121d9565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612294565b61049a565b60405161018391906122ef565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b005b3480156101af57600080fd5b506101b86109f7565b6040516101c59190612319565b60405180910390f35b3480156101da57600080fd5b506101e36109fd565b6040516101f09190612319565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190612334565b610a21565b60405161022d91906122ef565b60405180910390f35b34801561024257600080fd5b5061024b610afa565b60405161025891906123a3565b60405180910390f35b34801561026d57600080fd5b50610276610b03565b005b34801561028457600080fd5b5061028d610bb8565b005b34801561029b57600080fd5b506102b660048036038101906102b191906123be565b610ce8565b6040516102c39190612319565b60405180910390f35b3480156102d857600080fd5b506102e1610d31565b005b3480156102ef57600080fd5b506102f8610e84565b6040516103059190612319565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612294565b610e8a565b005b34801561034357600080fd5b5061034c611034565b60405161035991906123fa565b60405180910390f35b34801561036e57600080fd5b5061037761105d565b6040516103849190612319565b60405180910390f35b34801561039957600080fd5b506103a2611063565b6040516103af91906121d9565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612294565b6110a0565b6040516103ec91906122ef565b60405180910390f35b34801561040157600080fd5b5061040a6110be565b6040516104179190612319565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612415565b6110c4565b6040516104549190612319565b60405180910390f35b60606040518060400160405280600381526020017f506f750000000000000000000000000000000000000000000000000000000000815250905090565b60006104ae6104a761114b565b8484611153565b6001905092915050565b6104c061114b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610544906124a1565b60405180910390fd5b600f60149054906101000a900460ff161561059d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105949061250d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061063b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610627919061268f565b633b9aca0061063691906126da565b611153565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cc9190612731565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190612731565b6040518363ffffffff1660e01b815260040161079692919061275e565b6020604051808303816000875af11580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190612731565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061086230610ce8565b60008061086d611034565b426040518863ffffffff1660e01b815260040161088f969594939291906127cc565b60606040518083038185885af11580156108ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d29190612842565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610974929190612895565b6020604051808303816000875af1158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b791906128ea565b506001601160016101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff02191690831515021790555043601081905550565b600d5481565b60006009600a610a0d919061268f565b633b9aca00610a1c91906126da565b905090565b6000610a2e84848461131c565b610aef84610a3a61114b565b610aea8560405180606001604052806028815260200161316560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa061114b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c189092919063ffffffff16565b611153565b600190509392505050565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4461114b565b73ffffffffffffffffffffffffffffffffffffffff1614610b6457600080fd5b6000610b6f30610ce8565b9050600081118015610b8d5750601160019054906101000a900460ff165b15610b9c57610b9b81611c7c565b5b60004790506000811115610bb457610bb381611ef5565b5b5050565b610bc061114b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c44906124a1565b60405180910390fd5b6009600a610c5b919061268f565b633b9aca00610c6a91906126da565b600a819055506009600a610c7e919061268f565b633b9aca00610c8d91906126da565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610cc2919061268f565b633b9aca00610cd191906126da565b604051610cde9190612319565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3961114b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd906124a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ecb61114b565b73ffffffffffffffffffffffffffffffffffffffff1614610eeb57600080fd5b6000610f8c6064610f7e848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f2f91906123fa565b602060405180830381865afa158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612917565b611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610feb929190612999565b6020604051808303816000875af115801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e91906128ea565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600381526020017f504f550000000000000000000000000000000000000000000000000000000000815250905090565b60006110b46110ad61114b565b848461131c565b6001905092915050565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b990612a34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890612ac6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130f9190612319565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612b58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f190612bea565b60405180910390fd5b6000811161143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612c7c565b60405180910390fd5b6000600f60149054906101000a900460ff16801561148e575061145e611034565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114cd575061149d611034565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115275750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561195b57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115d75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561162d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561172a57600a54821115611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612ce8565b60405180910390fd5b600b548261168485610ce8565b61168e9190612d08565b11156116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690612d88565b60405180910390fd5b600754601054436116e09190612da8565b10156117115761170e606461170060065485611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b6009600081548092919061172490612ddc565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117fb57600754601054436117c99190612da8565b10156117fa576117f760646117e960065485611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b600061180630610ce8565b9050601160009054906101000a900460ff161580156118725750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561188a5750601160019054906101000a900460ff165b80156118975750600c5481115b80156118a65750600854600954115b15611959576013544311156118be5760006012819055505b600360125410611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90612e70565b60405180910390fd5b61192061191b8461191684600d54612025565b612025565b611c7c565b600047905060008111156119385761193747611ef5565b5b6012600081548092919061194b90612ddc565b919050555043601381905550505b505b6000811115611a5f576119b681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a569190612319565b60405180910390a35b611ab182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b58611b0a828461209c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bfd848661209c90919063ffffffff16565b604051611c0a9190612319565b60405180910390a350505050565b6000838311158290611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5791906121d9565b60405180910390fd5b5060008385611c6f9190612da8565b9050809150509392505050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cb457611cb3612e90565b5b604051908082528060200260200182016040528015611ce25781602001602082028036833780820191505090505b5090503081600081518110611cfa57611cf9612ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc59190612731565b81600181518110611dd957611dd8612ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e4030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611153565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ea4959493929190612fac565b600060405180830381600087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5d573d6000803e3d6000fd5b5050565b6000808303611f735760009050611fd5565b60008284611f8191906126da565b9050828482611f909190613035565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc7906130d8565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120e6565b905092915050565b60008183116120345782612036565b815b905092915050565b600080828461204d9190612d08565b905083811015612092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208990613144565b60405180910390fd5b8091505092915050565b60006120de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c18565b905092915050565b6000808311829061212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212491906121d9565b60405180910390fd5b506000838561213c9190613035565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612183578082015181840152602081019050612168565b60008484015250505050565b6000601f19601f8301169050919050565b60006121ab82612149565b6121b58185612154565b93506121c5818560208601612165565b6121ce8161218f565b840191505092915050565b600060208201905081810360008301526121f381846121a0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061222b82612200565b9050919050565b61223b81612220565b811461224657600080fd5b50565b60008135905061225881612232565b92915050565b6000819050919050565b6122718161225e565b811461227c57600080fd5b50565b60008135905061228e81612268565b92915050565b600080604083850312156122ab576122aa6121fb565b5b60006122b985828601612249565b92505060206122ca8582860161227f565b9150509250929050565b60008115159050919050565b6122e9816122d4565b82525050565b600060208201905061230460008301846122e0565b92915050565b6123138161225e565b82525050565b600060208201905061232e600083018461230a565b92915050565b60008060006060848603121561234d5761234c6121fb565b5b600061235b86828701612249565b935050602061236c86828701612249565b925050604061237d8682870161227f565b9150509250925092565b600060ff82169050919050565b61239d81612387565b82525050565b60006020820190506123b86000830184612394565b92915050565b6000602082840312156123d4576123d36121fb565b5b60006123e284828501612249565b91505092915050565b6123f481612220565b82525050565b600060208201905061240f60008301846123eb565b92915050565b6000806040838503121561242c5761242b6121fb565b5b600061243a85828601612249565b925050602061244b85828601612249565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061248b602083612154565b915061249682612455565b602082019050919050565b600060208201905081810360008301526124ba8161247e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124f7601783612154565b9150612502826124c1565b602082019050919050565b60006020820190508181036000830152612526816124ea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a8261225e565b91506126a583612387565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e58261225e565b91506126f08361225e565b92508282026126fe8161225e565b915082820484148315176127155761271461252d565b5b5092915050565b60008151905061272b81612232565b92915050565b600060208284031215612747576127466121fb565b5b60006127558482850161271c565b91505092915050565b600060408201905061277360008301856123eb565b61278060208301846123eb565b9392505050565b6000819050919050565b6000819050919050565b60006127b66127b16127ac84612787565b612791565b61225e565b9050919050565b6127c68161279b565b82525050565b600060c0820190506127e160008301896123eb565b6127ee602083018861230a565b6127fb60408301876127bd565b61280860608301866127bd565b61281560808301856123eb565b61282260a083018461230a565b979650505050505050565b60008151905061283c81612268565b92915050565b60008060006060848603121561285b5761285a6121fb565b5b60006128698682870161282d565b935050602061287a8682870161282d565b925050604061288b8682870161282d565b9150509250925092565b60006040820190506128aa60008301856123eb565b6128b7602083018461230a565b9392505050565b6128c7816122d4565b81146128d257600080fd5b50565b6000815190506128e4816128be565b92915050565b600060208284031215612900576128ff6121fb565b5b600061290e848285016128d5565b91505092915050565b60006020828403121561292d5761292c6121fb565b5b600061293b8482850161282d565b91505092915050565b600061295f61295a61295584612200565b612791565b612200565b9050919050565b600061297182612944565b9050919050565b600061298382612966565b9050919050565b61299381612978565b82525050565b60006040820190506129ae600083018561298a565b6129bb602083018461230a565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a1e602483612154565b9150612a29826129c2565b604082019050919050565b60006020820190508181036000830152612a4d81612a11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab0602283612154565b9150612abb82612a54565b604082019050919050565b60006020820190508181036000830152612adf81612aa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b42602583612154565b9150612b4d82612ae6565b604082019050919050565b60006020820190508181036000830152612b7181612b35565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bd4602383612154565b9150612bdf82612b78565b604082019050919050565b60006020820190508181036000830152612c0381612bc7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c66602983612154565b9150612c7182612c0a565b604082019050919050565b60006020820190508181036000830152612c9581612c59565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd2601983612154565b9150612cdd82612c9c565b602082019050919050565b60006020820190508181036000830152612d0181612cc5565b9050919050565b6000612d138261225e565b9150612d1e8361225e565b9250828201905080821115612d3657612d3561252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d72601a83612154565b9150612d7d82612d3c565b602082019050919050565b60006020820190508181036000830152612da181612d65565b9050919050565b6000612db38261225e565b9150612dbe8361225e565b9250828203905081811115612dd657612dd561252d565b5b92915050565b6000612de78261225e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e1957612e1861252d565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000612e5a601783612154565b9150612e6582612e24565b602082019050919050565b60006020820190508181036000830152612e8981612e4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f2381612220565b82525050565b6000612f358383612f1a565b60208301905092915050565b6000602082019050919050565b6000612f5982612eee565b612f638185612ef9565b9350612f6e83612f0a565b8060005b83811015612f9f578151612f868882612f29565b9750612f9183612f41565b925050600181019050612f72565b5085935050505092915050565b600060a082019050612fc1600083018861230a565b612fce60208301876127bd565b8181036040830152612fe08186612f4e565b9050612fef60608301856123eb565b612ffc608083018461230a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130408261225e565b915061304b8361225e565b92508261305b5761305a613006565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130c2602183612154565b91506130cd82613066565b604082019050919050565b600060208201905081810360008301526130f1816130b5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061312e601b83612154565b9150613139826130f8565b602082019050919050565b6000602082019050818103600083015261315d81613121565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b56855f10e78dc5957f495366102ab9a959ef33b67f0fb68052dad04f37aa34064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a05780638f9a55c0116100645780638f9a55c01461036257806395d89b411461038d578063a9059cbb146103b8578063bf474bed146103f5578063dd62ed3e146104205761011f565b806370a082311461028f578063715018a6146102cc5780637d1db4a5146102e35780638cd4426d1461030e5780638da5cb5b146103375761011f565b806318160ddd116100e757806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657806351bc3c85146102615780636597e6fa146102785761011f565b806306fdde0314610124578063095ea7b31461014f5780630ab54ee21461018c5780630faee56f146101a35761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b60405161014691906121d9565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612294565b61049a565b60405161018391906122ef565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b005b3480156101af57600080fd5b506101b86109f7565b6040516101c59190612319565b60405180910390f35b3480156101da57600080fd5b506101e36109fd565b6040516101f09190612319565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190612334565b610a21565b60405161022d91906122ef565b60405180910390f35b34801561024257600080fd5b5061024b610afa565b60405161025891906123a3565b60405180910390f35b34801561026d57600080fd5b50610276610b03565b005b34801561028457600080fd5b5061028d610bb8565b005b34801561029b57600080fd5b506102b660048036038101906102b191906123be565b610ce8565b6040516102c39190612319565b60405180910390f35b3480156102d857600080fd5b506102e1610d31565b005b3480156102ef57600080fd5b506102f8610e84565b6040516103059190612319565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612294565b610e8a565b005b34801561034357600080fd5b5061034c611034565b60405161035991906123fa565b60405180910390f35b34801561036e57600080fd5b5061037761105d565b6040516103849190612319565b60405180910390f35b34801561039957600080fd5b506103a2611063565b6040516103af91906121d9565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612294565b6110a0565b6040516103ec91906122ef565b60405180910390f35b34801561040157600080fd5b5061040a6110be565b6040516104179190612319565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612415565b6110c4565b6040516104549190612319565b60405180910390f35b60606040518060400160405280600381526020017f506f750000000000000000000000000000000000000000000000000000000000815250905090565b60006104ae6104a761114b565b8484611153565b6001905092915050565b6104c061114b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610544906124a1565b60405180910390fd5b600f60149054906101000a900460ff161561059d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105949061250d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061063b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610627919061268f565b633b9aca0061063691906126da565b611153565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cc9190612731565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190612731565b6040518363ffffffff1660e01b815260040161079692919061275e565b6020604051808303816000875af11580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190612731565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061086230610ce8565b60008061086d611034565b426040518863ffffffff1660e01b815260040161088f969594939291906127cc565b60606040518083038185885af11580156108ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d29190612842565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610974929190612895565b6020604051808303816000875af1158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b791906128ea565b506001601160016101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff02191690831515021790555043601081905550565b600d5481565b60006009600a610a0d919061268f565b633b9aca00610a1c91906126da565b905090565b6000610a2e84848461131c565b610aef84610a3a61114b565b610aea8560405180606001604052806028815260200161316560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa061114b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c189092919063ffffffff16565b611153565b600190509392505050565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4461114b565b73ffffffffffffffffffffffffffffffffffffffff1614610b6457600080fd5b6000610b6f30610ce8565b9050600081118015610b8d5750601160019054906101000a900460ff165b15610b9c57610b9b81611c7c565b5b60004790506000811115610bb457610bb381611ef5565b5b5050565b610bc061114b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c44906124a1565b60405180910390fd5b6009600a610c5b919061268f565b633b9aca00610c6a91906126da565b600a819055506009600a610c7e919061268f565b633b9aca00610c8d91906126da565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610cc2919061268f565b633b9aca00610cd191906126da565b604051610cde9190612319565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3961114b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd906124a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ecb61114b565b73ffffffffffffffffffffffffffffffffffffffff1614610eeb57600080fd5b6000610f8c6064610f7e848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f2f91906123fa565b602060405180830381865afa158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612917565b611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610feb929190612999565b6020604051808303816000875af115801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e91906128ea565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600381526020017f504f550000000000000000000000000000000000000000000000000000000000815250905090565b60006110b46110ad61114b565b848461131c565b6001905092915050565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b990612a34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890612ac6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130f9190612319565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612b58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f190612bea565b60405180910390fd5b6000811161143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612c7c565b60405180910390fd5b6000600f60149054906101000a900460ff16801561148e575061145e611034565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114cd575061149d611034565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115275750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561195b57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115d75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561162d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561172a57600a54821115611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612ce8565b60405180910390fd5b600b548261168485610ce8565b61168e9190612d08565b11156116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690612d88565b60405180910390fd5b600754601054436116e09190612da8565b10156117115761170e606461170060065485611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b6009600081548092919061172490612ddc565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117fb57600754601054436117c99190612da8565b10156117fa576117f760646117e960065485611f6190919063ffffffff16565b611fdb90919063ffffffff16565b90505b5b600061180630610ce8565b9050601160009054906101000a900460ff161580156118725750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561188a5750601160019054906101000a900460ff165b80156118975750600c5481115b80156118a65750600854600954115b15611959576013544311156118be5760006012819055505b600360125410611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90612e70565b60405180910390fd5b61192061191b8461191684600d54612025565b612025565b611c7c565b600047905060008111156119385761193747611ef5565b5b6012600081548092919061194b90612ddc565b919050555043601381905550505b505b6000811115611a5f576119b681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a569190612319565b60405180910390a35b611ab182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b58611b0a828461209c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bfd848661209c90919063ffffffff16565b604051611c0a9190612319565b60405180910390a350505050565b6000838311158290611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5791906121d9565b60405180910390fd5b5060008385611c6f9190612da8565b9050809150509392505050565b6001601160006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cb457611cb3612e90565b5b604051908082528060200260200182016040528015611ce25781602001602082028036833780820191505090505b5090503081600081518110611cfa57611cf9612ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc59190612731565b81600181518110611dd957611dd8612ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e4030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611153565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ea4959493929190612fac565b600060405180830381600087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b50505050506000601160006101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f5d573d6000803e3d6000fd5b5050565b6000808303611f735760009050611fd5565b60008284611f8191906126da565b9050828482611f909190613035565b14611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc7906130d8565b60405180910390fd5b809150505b92915050565b600061201d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120e6565b905092915050565b60008183116120345782612036565b815b905092915050565b600080828461204d9190612d08565b905083811015612092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208990613144565b60405180910390fd5b8091505092915050565b60006120de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c18565b905092915050565b6000808311829061212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212491906121d9565b60405180910390fd5b506000838561213c9190613035565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612183578082015181840152602081019050612168565b60008484015250505050565b6000601f19601f8301169050919050565b60006121ab82612149565b6121b58185612154565b93506121c5818560208601612165565b6121ce8161218f565b840191505092915050565b600060208201905081810360008301526121f381846121a0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061222b82612200565b9050919050565b61223b81612220565b811461224657600080fd5b50565b60008135905061225881612232565b92915050565b6000819050919050565b6122718161225e565b811461227c57600080fd5b50565b60008135905061228e81612268565b92915050565b600080604083850312156122ab576122aa6121fb565b5b60006122b985828601612249565b92505060206122ca8582860161227f565b9150509250929050565b60008115159050919050565b6122e9816122d4565b82525050565b600060208201905061230460008301846122e0565b92915050565b6123138161225e565b82525050565b600060208201905061232e600083018461230a565b92915050565b60008060006060848603121561234d5761234c6121fb565b5b600061235b86828701612249565b935050602061236c86828701612249565b925050604061237d8682870161227f565b9150509250925092565b600060ff82169050919050565b61239d81612387565b82525050565b60006020820190506123b86000830184612394565b92915050565b6000602082840312156123d4576123d36121fb565b5b60006123e284828501612249565b91505092915050565b6123f481612220565b82525050565b600060208201905061240f60008301846123eb565b92915050565b6000806040838503121561242c5761242b6121fb565b5b600061243a85828601612249565b925050602061244b85828601612249565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061248b602083612154565b915061249682612455565b602082019050919050565b600060208201905081810360008301526124ba8161247e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124f7601783612154565b9150612502826124c1565b602082019050919050565b60006020820190508181036000830152612526816124ea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a8261225e565b91506126a583612387565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e58261225e565b91506126f08361225e565b92508282026126fe8161225e565b915082820484148315176127155761271461252d565b5b5092915050565b60008151905061272b81612232565b92915050565b600060208284031215612747576127466121fb565b5b60006127558482850161271c565b91505092915050565b600060408201905061277360008301856123eb565b61278060208301846123eb565b9392505050565b6000819050919050565b6000819050919050565b60006127b66127b16127ac84612787565b612791565b61225e565b9050919050565b6127c68161279b565b82525050565b600060c0820190506127e160008301896123eb565b6127ee602083018861230a565b6127fb60408301876127bd565b61280860608301866127bd565b61281560808301856123eb565b61282260a083018461230a565b979650505050505050565b60008151905061283c81612268565b92915050565b60008060006060848603121561285b5761285a6121fb565b5b60006128698682870161282d565b935050602061287a8682870161282d565b925050604061288b8682870161282d565b9150509250925092565b60006040820190506128aa60008301856123eb565b6128b7602083018461230a565b9392505050565b6128c7816122d4565b81146128d257600080fd5b50565b6000815190506128e4816128be565b92915050565b600060208284031215612900576128ff6121fb565b5b600061290e848285016128d5565b91505092915050565b60006020828403121561292d5761292c6121fb565b5b600061293b8482850161282d565b91505092915050565b600061295f61295a61295584612200565b612791565b612200565b9050919050565b600061297182612944565b9050919050565b600061298382612966565b9050919050565b61299381612978565b82525050565b60006040820190506129ae600083018561298a565b6129bb602083018461230a565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a1e602483612154565b9150612a29826129c2565b604082019050919050565b60006020820190508181036000830152612a4d81612a11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab0602283612154565b9150612abb82612a54565b604082019050919050565b60006020820190508181036000830152612adf81612aa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b42602583612154565b9150612b4d82612ae6565b604082019050919050565b60006020820190508181036000830152612b7181612b35565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bd4602383612154565b9150612bdf82612b78565b604082019050919050565b60006020820190508181036000830152612c0381612bc7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c66602983612154565b9150612c7182612c0a565b604082019050919050565b60006020820190508181036000830152612c9581612c59565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd2601983612154565b9150612cdd82612c9c565b602082019050919050565b60006020820190508181036000830152612d0181612cc5565b9050919050565b6000612d138261225e565b9150612d1e8361225e565b9250828201905080821115612d3657612d3561252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d72601a83612154565b9150612d7d82612d3c565b602082019050919050565b60006020820190508181036000830152612da181612d65565b9050919050565b6000612db38261225e565b9150612dbe8361225e565b9250828203905081811115612dd657612dd561252d565b5b92915050565b6000612de78261225e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e1957612e1861252d565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000612e5a601783612154565b9150612e6582612e24565b602082019050919050565b60006020820190508181036000830152612e8981612e4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f2381612220565b82525050565b6000612f358383612f1a565b60208301905092915050565b6000602082019050919050565b6000612f5982612eee565b612f638185612ef9565b9350612f6e83612f0a565b8060005b83811015612f9f578151612f868882612f29565b9750612f9183612f41565b925050600181019050612f72565b5085935050505092915050565b600060a082019050612fc1600083018861230a565b612fce60208301876127bd565b8181036040830152612fe08186612f4e565b9050612fef60608301856123eb565b612ffc608083018461230a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130408261225e565b915061304b8361225e565b92508261305b5761305a613006565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130c2602183612154565b91506130cd82613066565b604082019050919050565b600060208201905081810360008301526130f1816130b5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061312e601b83612154565b9150613139826130f8565b602082019050919050565b6000602082019050818103600083015261315d81613121565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b56855f10e78dc5957f495366102ab9a959ef33b67f0fb68052dad04f37aa34064736f6c63430008130033

Deployed Bytecode Sourcemap

3593:8219:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6431:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10414:711;;;;;;;;;;;;;:::i;:::-;;4515:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5875:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5784:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11446:363;;;;;;;;;;;;;:::i;:::-;;10147:159;;;;;;;;;;;;;:::i;:::-;;5978:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:148;;;;;;;;;;;;;:::i;:::-;;4326:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11172:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2460:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5689:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6105:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4450:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6280:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5598:83;5635:13;5668:5;;;;;;;;;;;;;;;;;5661:12;;5598:83;:::o;6431:161::-;6506:4;6523:39;6532:12;:10;:12::i;:::-;6546:7;6555:6;6523:8;:39::i;:::-;6580:4;6573:11;;6431:161;;;;:::o;10414:711::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10474:11:::1;;;;;;;;;;;10473:12;10465:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10560:42;10523:15;;:80;;;;;;;;;;;;;;;;;;10616:58;10633:4;10648:15;;;;;;;;;;;4146:1;4202:2;:13;;;;:::i;:::-;4189:10;:26;;;;:::i;:::-;10616:8;:58::i;:::-;10719:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10701:55;;;10765:4;10772:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10701:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10685:13;;:110;;;;;;;;;;;;;;;;;;10806:15;;;;;;;;;;;:31;;;10845:21;10876:4;10882:24;10900:4;10882:9;:24::i;:::-;10907:1;10909::::0;10911:7:::1;:5;:7::i;:::-;10919:15;10806:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10953:13;;;;;;;;;;;10946:29;;;10984:15;;;;;;;;;;;11002:14;10946:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11042:4;11028:11;;:18;;;;;;;;;;;;;;;;;;11071:4;11057:11;;:18;;;;;;;;;;;;;;;;;;11105:12;11086:16;:31;;;;10414:711::o:0;4515:52::-;;;;:::o;5875:95::-;5928:7;4146:1;4202:2;:13;;;;:::i;:::-;4189:10;:26;;;;:::i;:::-;5948:14;;5875:95;:::o;6600:313::-;6698:4;6715:36;6725:6;6733:9;6744:6;6715:9;:36::i;:::-;6762:121;6771:6;6779:12;:10;:12::i;:::-;6793:89;6831:6;6793:89;;;;;;;;;;;;;;;;;:11;:19;6805:6;6793:19;;;;;;;;;;;;;;;:33;6813:12;:10;:12::i;:::-;6793:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6762:8;:121::i;:::-;6901:4;6894:11;;6600:313;;;;;:::o;5784:83::-;5825:5;4146:1;5843:16;;5784:83;:::o;11446:363::-;11510:10;;;;;;;;;;;11496:24;;:12;:10;:12::i;:::-;:24;;;11488:33;;;;;;11532:20;11553:24;11571:4;11553:9;:24::i;:::-;11532:45;;11604:1;11591:12;:14;:29;;;;;11609:11;;;;;;;;;;;11591:29;11588:88;;;11634:30;11651:12;11634:16;:30::i;:::-;11588:88;11686:18;11705:21;11686:40;;11751:1;11740:10;:12;11737:65;;;11766:24;11779:10;11766:12;:24::i;:::-;11737:65;11477:332;;11446:363::o;10147:159::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4146:1:::1;4202:2;:13;;;;:::i;:::-;4189:10;:26;;;;:::i;:::-;10200:12;:22;;;;4146:1;4202:2;:13;;;;:::i;:::-;4189:10;:26;;;;:::i;:::-;10233:14;:22;;;;10271:27;4146:1;4202:2;:13;;;;:::i;:::-;4189:10;:26;;;;:::i;:::-;10271:27;;;;;;:::i;:::-;;;;;;;;10147:159::o:0;5978:119::-;6044:7;6071:9;:18;6081:7;6071:18;;;;;;;;;;;;;;;;6064:25;;5978:119;;;:::o;2674:148::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2781:1:::1;2744:40;;2765:6;::::0;::::1;;;;;;;;2744:40;;;;;;;;;;;;2812:1;2795:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2674:148::o:0;4326:54::-;;;;:::o;11172:266::-;11270:10;;;;;;;;;;;11256:24;;:12;:10;:12::i;:::-;:24;;;11248:33;;;;;;11292:15;11310:63;11369:3;11310:54;11356:7;11317:8;11310:26;;;11345:4;11310:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;11292:81;;11391:8;11384:25;;;11410:10;;;;;;;;;;;11422:7;11384:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11237:201;11172:266;;:::o;2460:79::-;2498:7;2525:6;;;;;;;;;;;2518:13;;2460:79;:::o;4387:56::-;;;;:::o;5689:87::-;5728:13;5761:7;;;;;;;;;;;;;;;;;5754:14;;5689:87;:::o;6105:167::-;6183:4;6200:42;6210:12;:10;:12::i;:::-;6224:9;6235:6;6200:9;:42::i;:::-;6260:4;6253:11;;6105:167;;;;:::o;4450:58::-;;;;:::o;6280:143::-;6361:7;6388:11;:18;6400:5;6388:18;;;;;;;;;;;;;;;:27;6407:7;6388:27;;;;;;;;;;;;;;;;6381:34;;6280:143;;;;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;6921:335::-;7031:1;7014:19;;:5;:19;;;7006:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7112:1;7093:21;;:7;:21;;;7085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7194:6;7164:11;:18;7176:5;7164:18;;;;;;;;;;;;;;;:27;7183:7;7164:27;;;;;;;;;;;;;;;:36;;;;7232:7;7216:32;;7225:5;7216:32;;;7241:6;7216:32;;;;;;:::i;:::-;;;;;;;;6921:335;;;:::o;7264:2276::-;7368:1;7352:18;;:4;:18;;;7344:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7445:1;7431:16;;:2;:16;;;7423:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7515:1;7506:6;:10;7498:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7573:17;7607:11;;;;;;;;;;;:30;;;;;7630:7;:5;:7::i;:::-;7622:15;;:4;:15;;;;7607:30;:47;;;;;7647:7;:5;:7::i;:::-;7641:13;;:2;:13;;;;7607:47;:67;;;;;7664:10;;;;;;;;;;;7658:16;;:2;:16;;;;7607:67;7603:1581;;;7703:13;;;;;;;;;;;7695:21;;:4;:21;;;:55;;;;;7734:15;;;;;;;;;;;7720:30;;:2;:30;;;;7695:55;:83;;;;;7756:18;:22;7775:2;7756:22;;;;;;;;;;;;;;;;;;;;;;;;;7754:24;7695:83;7691:475;;;7818:12;;7808:6;:22;;7800:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7913:14;;7903:6;7887:13;7897:2;7887:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7879:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8014:18;;7995:16;;7980:12;:31;;;;:::i;:::-;:52;7977:144;;;8069:32;8097:3;8069:23;8080:11;;8069:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;8057:44;;7977:144;8139:9;;:11;;;;;;;;;:::i;:::-;;;;;;7691:475;8191:13;;;;;;;;;;;8185:19;;:2;:19;;;:43;;;;;8223:4;8208:20;;:4;:20;;;;8185:43;8182:226;;;8286:18;;8267:16;;8252:12;:31;;;;:::i;:::-;:52;8249:144;;;8341:32;8369:3;8341:23;8352:11;;8341:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;8329:44;;8249:144;8182:226;8424:28;8455:24;8473:4;8455:9;:24::i;:::-;8424:55;;8499:6;;;;;;;;;;;8498:7;:30;;;;;8515:13;;;;;;;;;;;8509:19;;:2;:19;;;8498:30;:45;;;;;8532:11;;;;;;;;;;;8498:45;:89;;;;;8570:17;;8547:20;:40;8498:89;:123;;;;;8603:18;;8591:9;;:30;8498:123;8494:679;;;8661:13;;8646:12;:28;8642:90;;;8711:1;8699:9;:13;;;;8642:90;8770:1;8758:9;;:13;8750:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8818:69;8835:51;8839:6;8847:38;8851:20;8873:11;;8847:3;:38::i;:::-;8835:3;:51::i;:::-;8818:16;:69::i;:::-;8906:26;8935:21;8906:50;;9000:1;8979:18;:22;8975:106;;;9026:35;9039:21;9026:12;:35::i;:::-;8975:106;9099:9;;:11;;;;;;;;;:::i;:::-;;;;;;9145:12;9129:13;:28;;;;8623:550;8494:679;7676:1508;7603:1581;9209:1;9199:9;:11;9196:161;;;9249:39;9278:9;9249;:24;9267:4;9249:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9224:9;:24;9242:4;9224:24;;;;;;;;;;;;;;;:64;;;;9329:4;9306:39;;9315:4;9306:39;;;9335:9;9306:39;;;;;;:::i;:::-;;;;;;;;9196:161;9383:27;9403:6;9383:9;:15;9393:4;9383:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9367:9;:15;9377:4;9367:15;;;;;;;;;;;;;;;:43;;;;9435:40;9453:21;9464:9;9453:6;:10;;:21;;;;:::i;:::-;9435:9;:13;9445:2;9435:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9421:9;:13;9431:2;9421:13;;;;;;;;;;;;;;;:54;;;;9506:2;9491:41;;9500:4;9491:41;;;9510:21;9521:9;9510:6;:10;;:21;;;;:::i;:::-;9491:41;;;;;;:::i;:::-;;;;;;;;7333:2207;7264:2276;;;:::o;1352:190::-;1438:7;1471:1;1466;:6;;1474:12;1458:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1498:9;1514:1;1510;:5;;;;:::i;:::-;1498:17;;1533:1;1526:8;;;1352:190;;;;;:::o;9656:483::-;5017:4;5008:6;;:13;;;;;;;;;;;;;;;;;;9734:21:::1;9772:1;9758:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9734:40;;9803:4;9785;9790:1;9785:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9829:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9819:4;9824:1;9819:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9862:62;9879:4;9894:15;;;;;;;;;;;9912:11;9862:8;:62::i;:::-;9935:15;;;;;;;;;;;:66;;;10016:11;10042:1;10058:4;10085;10105:15;9935:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9723:416;5053:5:::0;5044:6;;:14;;;;;;;;;;;;;;;;;;9656:483;:::o;10314:92::-;10371:10;;;;;;;;;;;:19;;:27;10391:6;10371:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10314:92;:::o;1550:246::-;1608:7;1637:1;1632;:6;1628:47;;1662:1;1655:8;;;;1628:47;1685:9;1701:1;1697;:5;;;;:::i;:::-;1685:17;;1730:1;1725;1721;:5;;;;:::i;:::-;:10;1713:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1787:1;1780:8;;;1550:246;;;;;:::o;1804:132::-;1862:7;1889:39;1893:1;1896;1889:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1882:46;;1804:132;;;;:::o;9550:98::-;9607:7;9634:1;9632;:3;9631:9;;9639:1;9631:9;;;9637:1;9631:9;9624:16;;9550:98;;;;:::o;1021:179::-;1079:7;1099:9;1115:1;1111;:5;;;;:::i;:::-;1099:17;;1140:1;1135;:6;;1127:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1191:1;1184:8;;;1021:179;;;;:::o;1208:136::-;1266:7;1293:43;1297:1;1300;1293:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1286:50;;1208:136;;;;:::o;1944:189::-;2030:7;2062:1;2058;:5;2065:12;2050:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2089:9;2105:1;2101;:5;;;;:::i;:::-;2089:17;;2124:1;2117:8;;;1944:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:173::-;7145:25;7141:1;7133:6;7129:14;7122:49;7005:173;:::o;7184:366::-;7326:3;7347:67;7411:2;7406:3;7347:67;:::i;:::-;7340:74;;7423:93;7512:3;7423:93;:::i;:::-;7541:2;7536:3;7532:12;7525:19;;7184:366;;;:::o;7556:419::-;7722:4;7760:2;7749:9;7745:18;7737:26;;7809:9;7803:4;7799:20;7795:1;7784:9;7780:17;7773:47;7837:131;7963:4;7837:131;:::i;:::-;7829:139;;7556:419;;;:::o;7981:180::-;8029:77;8026:1;8019:88;8126:4;8123:1;8116:15;8150:4;8147:1;8140:15;8167:102;8209:8;8256:5;8253:1;8249:13;8228:34;;8167:102;;;:::o;8275:848::-;8336:5;8343:4;8367:6;8358:15;;8391:5;8382:14;;8405:712;8426:1;8416:8;8413:15;8405:712;;;8521:4;8516:3;8512:14;8506:4;8503:24;8500:50;;;8530:18;;:::i;:::-;8500:50;8580:1;8570:8;8566:16;8563:451;;;8995:4;8988:5;8984:16;8975:25;;8563:451;9045:4;9039;9035:15;9027:23;;9075:32;9098:8;9075:32;:::i;:::-;9063:44;;8405:712;;;8275:848;;;;;;;:::o;9129:1073::-;9183:5;9374:8;9364:40;;9395:1;9386:10;;9397:5;;9364:40;9423:4;9413:36;;9440:1;9431:10;;9442:5;;9413:36;9509:4;9557:1;9552:27;;;;9593:1;9588:191;;;;9502:277;;9552:27;9570:1;9561:10;;9572:5;;;9588:191;9633:3;9623:8;9620:17;9617:43;;;9640:18;;:::i;:::-;9617:43;9689:8;9686:1;9682:16;9673:25;;9724:3;9717:5;9714:14;9711:40;;;9731:18;;:::i;:::-;9711:40;9764:5;;;9502:277;;9888:2;9878:8;9875:16;9869:3;9863:4;9860:13;9856:36;9838:2;9828:8;9825:16;9820:2;9814:4;9811:12;9807:35;9791:111;9788:246;;;9944:8;9938:4;9934:19;9925:28;;9979:3;9972:5;9969:14;9966:40;;;9986:18;;:::i;:::-;9966:40;10019:5;;9788:246;10059:42;10097:3;10087:8;10081:4;10078:1;10059:42;:::i;:::-;10044:57;;;;10133:4;10128:3;10124:14;10117:5;10114:25;10111:51;;;10142:18;;:::i;:::-;10111:51;10191:4;10184:5;10180:16;10171:25;;9129:1073;;;;;;:::o;10208:281::-;10266:5;10290:23;10308:4;10290:23;:::i;:::-;10282:31;;10334:25;10350:8;10334:25;:::i;:::-;10322:37;;10378:104;10415:66;10405:8;10399:4;10378:104;:::i;:::-;10369:113;;10208:281;;;;:::o;10495:410::-;10535:7;10558:20;10576:1;10558:20;:::i;:::-;10553:25;;10592:20;10610:1;10592:20;:::i;:::-;10587:25;;10647:1;10644;10640:9;10669:30;10687:11;10669:30;:::i;:::-;10658:41;;10848:1;10839:7;10835:15;10832:1;10829:22;10809:1;10802:9;10782:83;10759:139;;10878:18;;:::i;:::-;10759:139;10543:362;10495:410;;;;:::o;10911:143::-;10968:5;10999:6;10993:13;10984:22;;11015:33;11042:5;11015:33;:::i;:::-;10911:143;;;;:::o;11060:351::-;11130:6;11179:2;11167:9;11158:7;11154:23;11150:32;11147:119;;;11185:79;;:::i;:::-;11147:119;11305:1;11330:64;11386:7;11377:6;11366:9;11362:22;11330:64;:::i;:::-;11320:74;;11276:128;11060:351;;;;:::o;11417:332::-;11538:4;11576:2;11565:9;11561:18;11553:26;;11589:71;11657:1;11646:9;11642:17;11633:6;11589:71;:::i;:::-;11670:72;11738:2;11727:9;11723:18;11714:6;11670:72;:::i;:::-;11417:332;;;;;:::o;11755:85::-;11800:7;11829:5;11818:16;;11755:85;;;:::o;11846:60::-;11874:3;11895:5;11888:12;;11846:60;;;:::o;11912:158::-;11970:9;12003:61;12021:42;12030:32;12056:5;12030:32;:::i;:::-;12021:42;:::i;:::-;12003:61;:::i;:::-;11990:74;;11912:158;;;:::o;12076:147::-;12171:45;12210:5;12171:45;:::i;:::-;12166:3;12159:58;12076:147;;:::o;12229:807::-;12478:4;12516:3;12505:9;12501:19;12493:27;;12530:71;12598:1;12587:9;12583:17;12574:6;12530:71;:::i;:::-;12611:72;12679:2;12668:9;12664:18;12655:6;12611:72;:::i;:::-;12693:80;12769:2;12758:9;12754:18;12745:6;12693:80;:::i;:::-;12783;12859:2;12848:9;12844:18;12835:6;12783:80;:::i;:::-;12873:73;12941:3;12930:9;12926:19;12917:6;12873:73;:::i;:::-;12956;13024:3;13013:9;13009:19;13000:6;12956:73;:::i;:::-;12229:807;;;;;;;;;:::o;13042:143::-;13099:5;13130:6;13124:13;13115:22;;13146:33;13173:5;13146:33;:::i;:::-;13042:143;;;;:::o;13191:663::-;13279:6;13287;13295;13344:2;13332:9;13323:7;13319:23;13315:32;13312:119;;;13350:79;;:::i;:::-;13312:119;13470:1;13495:64;13551:7;13542:6;13531:9;13527:22;13495:64;:::i;:::-;13485:74;;13441:128;13608:2;13634:64;13690:7;13681:6;13670:9;13666:22;13634:64;:::i;:::-;13624:74;;13579:129;13747:2;13773:64;13829:7;13820:6;13809:9;13805:22;13773:64;:::i;:::-;13763:74;;13718:129;13191:663;;;;;:::o;13860:332::-;13981:4;14019:2;14008:9;14004:18;13996:26;;14032:71;14100:1;14089:9;14085:17;14076:6;14032:71;:::i;:::-;14113:72;14181:2;14170:9;14166:18;14157:6;14113:72;:::i;:::-;13860:332;;;;;:::o;14198:116::-;14268:21;14283:5;14268:21;:::i;:::-;14261:5;14258:32;14248:60;;14304:1;14301;14294:12;14248:60;14198:116;:::o;14320:137::-;14374:5;14405:6;14399:13;14390:22;;14421:30;14445:5;14421:30;:::i;:::-;14320:137;;;;:::o;14463:345::-;14530:6;14579:2;14567:9;14558:7;14554:23;14550:32;14547:119;;;14585:79;;:::i;:::-;14547:119;14705:1;14730:61;14783:7;14774:6;14763:9;14759:22;14730:61;:::i;:::-;14720:71;;14676:125;14463:345;;;;:::o;14814:351::-;14884:6;14933:2;14921:9;14912:7;14908:23;14904:32;14901:119;;;14939:79;;:::i;:::-;14901:119;15059:1;15084:64;15140:7;15131:6;15120:9;15116:22;15084:64;:::i;:::-;15074:74;;15030:128;14814:351;;;;:::o;15171:142::-;15221:9;15254:53;15272:34;15281:24;15299:5;15281:24;:::i;:::-;15272:34;:::i;:::-;15254:53;:::i;:::-;15241:66;;15171:142;;;:::o;15319:126::-;15369:9;15402:37;15433:5;15402:37;:::i;:::-;15389:50;;15319:126;;;:::o;15451:134::-;15509:9;15542:37;15573:5;15542:37;:::i;:::-;15529:50;;15451:134;;;:::o;15591:147::-;15686:45;15725:5;15686:45;:::i;:::-;15681:3;15674:58;15591:147;;:::o;15744:348::-;15873:4;15911:2;15900:9;15896:18;15888:26;;15924:79;16000:1;15989:9;15985:17;15976:6;15924:79;:::i;:::-;16013:72;16081:2;16070:9;16066:18;16057:6;16013:72;:::i;:::-;15744:348;;;;;:::o;16098:223::-;16238:34;16234:1;16226:6;16222:14;16215:58;16307:6;16302:2;16294:6;16290:15;16283:31;16098:223;:::o;16327:366::-;16469:3;16490:67;16554:2;16549:3;16490:67;:::i;:::-;16483:74;;16566:93;16655:3;16566:93;:::i;:::-;16684:2;16679:3;16675:12;16668:19;;16327:366;;;:::o;16699:419::-;16865:4;16903:2;16892:9;16888:18;16880:26;;16952:9;16946:4;16942:20;16938:1;16927:9;16923:17;16916:47;16980:131;17106:4;16980:131;:::i;:::-;16972:139;;16699:419;;;:::o;17124:221::-;17264:34;17260:1;17252:6;17248:14;17241:58;17333:4;17328:2;17320:6;17316:15;17309:29;17124:221;:::o;17351:366::-;17493:3;17514:67;17578:2;17573:3;17514:67;:::i;:::-;17507:74;;17590:93;17679:3;17590:93;:::i;:::-;17708:2;17703:3;17699:12;17692:19;;17351:366;;;:::o;17723:419::-;17889:4;17927:2;17916:9;17912:18;17904:26;;17976:9;17970:4;17966:20;17962:1;17951:9;17947:17;17940:47;18004:131;18130:4;18004:131;:::i;:::-;17996:139;;17723:419;;;:::o;18148:224::-;18288:34;18284:1;18276:6;18272:14;18265:58;18357:7;18352:2;18344:6;18340:15;18333:32;18148:224;:::o;18378:366::-;18520:3;18541:67;18605:2;18600:3;18541:67;:::i;:::-;18534:74;;18617:93;18706:3;18617:93;:::i;:::-;18735:2;18730:3;18726:12;18719:19;;18378:366;;;:::o;18750:419::-;18916:4;18954:2;18943:9;18939:18;18931:26;;19003:9;18997:4;18993:20;18989:1;18978:9;18974:17;18967:47;19031:131;19157:4;19031:131;:::i;:::-;19023:139;;18750:419;;;:::o;19175:222::-;19315:34;19311:1;19303:6;19299:14;19292:58;19384:5;19379:2;19371:6;19367:15;19360:30;19175:222;:::o;19403:366::-;19545:3;19566:67;19630:2;19625:3;19566:67;:::i;:::-;19559:74;;19642:93;19731:3;19642:93;:::i;:::-;19760:2;19755:3;19751:12;19744:19;;19403:366;;;:::o;19775:419::-;19941:4;19979:2;19968:9;19964:18;19956:26;;20028:9;20022:4;20018:20;20014:1;20003:9;19999:17;19992:47;20056:131;20182:4;20056:131;:::i;:::-;20048:139;;19775:419;;;:::o;20200:228::-;20340:34;20336:1;20328:6;20324:14;20317:58;20409:11;20404:2;20396:6;20392:15;20385:36;20200:228;:::o;20434:366::-;20576:3;20597:67;20661:2;20656:3;20597:67;:::i;:::-;20590:74;;20673:93;20762:3;20673:93;:::i;:::-;20791:2;20786:3;20782:12;20775:19;;20434:366;;;:::o;20806:419::-;20972:4;21010:2;20999:9;20995:18;20987:26;;21059:9;21053:4;21049:20;21045:1;21034:9;21030:17;21023:47;21087:131;21213:4;21087:131;:::i;:::-;21079:139;;20806:419;;;:::o;21231:175::-;21371:27;21367:1;21359:6;21355:14;21348:51;21231:175;:::o;21412:366::-;21554:3;21575:67;21639:2;21634:3;21575:67;:::i;:::-;21568:74;;21651:93;21740:3;21651:93;:::i;:::-;21769:2;21764:3;21760:12;21753:19;;21412:366;;;:::o;21784:419::-;21950:4;21988:2;21977:9;21973:18;21965:26;;22037:9;22031:4;22027:20;22023:1;22012:9;22008:17;22001:47;22065:131;22191:4;22065:131;:::i;:::-;22057:139;;21784:419;;;:::o;22209:191::-;22249:3;22268:20;22286:1;22268:20;:::i;:::-;22263:25;;22302:20;22320:1;22302:20;:::i;:::-;22297:25;;22345:1;22342;22338:9;22331:16;;22366:3;22363:1;22360:10;22357:36;;;22373:18;;:::i;:::-;22357:36;22209:191;;;;:::o;22406:176::-;22546:28;22542:1;22534:6;22530:14;22523:52;22406:176;:::o;22588:366::-;22730:3;22751:67;22815:2;22810:3;22751:67;:::i;:::-;22744:74;;22827:93;22916:3;22827:93;:::i;:::-;22945:2;22940:3;22936:12;22929:19;;22588:366;;;:::o;22960:419::-;23126:4;23164:2;23153:9;23149:18;23141:26;;23213:9;23207:4;23203:20;23199:1;23188:9;23184:17;23177:47;23241:131;23367:4;23241:131;:::i;:::-;23233:139;;22960:419;;;:::o;23385:194::-;23425:4;23445:20;23463:1;23445:20;:::i;:::-;23440:25;;23479:20;23497:1;23479:20;:::i;:::-;23474:25;;23523:1;23520;23516:9;23508:17;;23547:1;23541:4;23538:11;23535:37;;;23552:18;;:::i;:::-;23535:37;23385:194;;;;:::o;23585:233::-;23624:3;23647:24;23665:5;23647:24;:::i;:::-;23638:33;;23693:66;23686:5;23683:77;23680:103;;23763:18;;:::i;:::-;23680:103;23810:1;23803:5;23799:13;23792:20;;23585:233;;;:::o;23824:173::-;23964:25;23960:1;23952:6;23948:14;23941:49;23824:173;:::o;24003:366::-;24145:3;24166:67;24230:2;24225:3;24166:67;:::i;:::-;24159:74;;24242:93;24331:3;24242:93;:::i;:::-;24360:2;24355:3;24351:12;24344:19;;24003:366;;;:::o;24375:419::-;24541:4;24579:2;24568:9;24564:18;24556:26;;24628:9;24622:4;24618:20;24614:1;24603:9;24599:17;24592:47;24656:131;24782:4;24656:131;:::i;:::-;24648:139;;24375:419;;;:::o;24800:180::-;24848:77;24845:1;24838:88;24945:4;24942:1;24935:15;24969:4;24966:1;24959:15;24986:180;25034:77;25031:1;25024:88;25131:4;25128:1;25121:15;25155:4;25152:1;25145:15;25172:114;25239:6;25273:5;25267:12;25257:22;;25172:114;;;:::o;25292:184::-;25391:11;25425:6;25420:3;25413:19;25465:4;25460:3;25456:14;25441:29;;25292:184;;;;:::o;25482:132::-;25549:4;25572:3;25564:11;;25602:4;25597:3;25593:14;25585:22;;25482:132;;;:::o;25620:108::-;25697:24;25715:5;25697:24;:::i;:::-;25692:3;25685:37;25620:108;;:::o;25734:179::-;25803:10;25824:46;25866:3;25858:6;25824:46;:::i;:::-;25902:4;25897:3;25893:14;25879:28;;25734:179;;;;:::o;25919:113::-;25989:4;26021;26016:3;26012:14;26004:22;;25919:113;;;:::o;26068:732::-;26187:3;26216:54;26264:5;26216:54;:::i;:::-;26286:86;26365:6;26360:3;26286:86;:::i;:::-;26279:93;;26396:56;26446:5;26396:56;:::i;:::-;26475:7;26506:1;26491:284;26516:6;26513:1;26510:13;26491:284;;;26592:6;26586:13;26619:63;26678:3;26663:13;26619:63;:::i;:::-;26612:70;;26705:60;26758:6;26705:60;:::i;:::-;26695:70;;26551:224;26538:1;26535;26531:9;26526:14;;26491:284;;;26495:14;26791:3;26784:10;;26192:608;;;26068:732;;;;:::o;26806:831::-;27069:4;27107:3;27096:9;27092:19;27084:27;;27121:71;27189:1;27178:9;27174:17;27165:6;27121:71;:::i;:::-;27202:80;27278:2;27267:9;27263:18;27254:6;27202:80;:::i;:::-;27329:9;27323:4;27319:20;27314:2;27303:9;27299:18;27292:48;27357:108;27460:4;27451:6;27357:108;:::i;:::-;27349:116;;27475:72;27543:2;27532:9;27528:18;27519:6;27475:72;:::i;:::-;27557:73;27625:3;27614:9;27610:19;27601:6;27557:73;:::i;:::-;26806:831;;;;;;;;:::o;27643:180::-;27691:77;27688:1;27681:88;27788:4;27785:1;27778:15;27812:4;27809:1;27802:15;27829:185;27869:1;27886:20;27904:1;27886:20;:::i;:::-;27881:25;;27920:20;27938:1;27920:20;:::i;:::-;27915:25;;27959:1;27949:35;;27964:18;;:::i;:::-;27949:35;28006:1;28003;27999:9;27994:14;;27829:185;;;;:::o;28020:220::-;28160:34;28156:1;28148:6;28144:14;28137:58;28229:3;28224:2;28216:6;28212:15;28205:28;28020:220;:::o;28246:366::-;28388:3;28409:67;28473:2;28468:3;28409:67;:::i;:::-;28402:74;;28485:93;28574:3;28485:93;:::i;:::-;28603:2;28598:3;28594:12;28587:19;;28246:366;;;:::o;28618:419::-;28784:4;28822:2;28811:9;28807:18;28799:26;;28871:9;28865:4;28861:20;28857:1;28846:9;28842:17;28835:47;28899:131;29025:4;28899:131;:::i;:::-;28891:139;;28618:419;;;:::o;29043:177::-;29183:29;29179:1;29171:6;29167:14;29160:53;29043:177;:::o;29226:366::-;29368:3;29389:67;29453:2;29448:3;29389:67;:::i;:::-;29382:74;;29465:93;29554:3;29465:93;:::i;:::-;29583:2;29578:3;29574:12;29567:19;;29226:366;;;:::o;29598:419::-;29764:4;29802:2;29791:9;29787:18;29779:26;;29851:9;29845:4;29841:20;29837:1;29826:9;29822:17;29815:47;29879:131;30005:4;29879:131;:::i;:::-;29871:139;;29598:419;;;:::o

Swarm Source

ipfs://b56855f10e78dc5957f495366102ab9a959ef33b67f0fb68052dad04f37aa340
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.