ETH Price: $2,360.35 (+0.85%)

Token

MOGA (MOGA)
 

Overview

Max Total Supply

2,024,000,000 MOGA

Holders

184

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,771,715.884871429 MOGA

Value
$0.00
0x3506db71e58f2bcf083fedc06df768549ad70449
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:
Moga

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

https://t.me/MOGAERC20
https://moga.pro/
https://twitter.com/MogaERC

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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;
    address private _previousOwner;
    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 Moga is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 2024 * 10**6 * 10**9;
    uint256 private fee1=250;
    uint256 private fee2=250;
    uint256 private feeMax=400;
    string private constant _name = "MOGA";
    string private constant _symbol = "MOGA";
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 changeFees(uint16 _fee1,uint16 _fee2) external onlyOwner {
        
        require(_fee1 <= feeMax && _fee2 <= feeMax,"Cannot set fees above maximum");
        fee1 = _fee1;
        fee2 = _fee2;
    }

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

    }
   
    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");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }
        _transferStandard(from,to,amount);
    }

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

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _feeAddrWallet1);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[{"internalType":"uint16","name":"_fee1","type":"uint16"},{"internalType":"uint16","name":"_fee2","type":"uint16"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"}]

608060405260fa60095560fa600a55610190600b556200005160646200003d6002671c16b146c1640000620005db60201b62000f931790919060201c565b6200065e60201b6200100d1790919060201c565b600c55620000786103e8671c16b146c16400006200065e60201b6200100d1790919060201c565b600d556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000620000c3620006b060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550671c16b146c1640000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000204620006b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004109190620007b3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c09190620007b3565b6040518363ffffffff1660e01b8152600401620004df929190620007f6565b6020604051808303816000875af1158015620004ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005259190620007b3565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef671c16b146c1640000604051620005cd91906200083e565b60405180910390a362000a92565b6000808303620005ef576000905062000658565b60008284620005ff91906200088a565b905082848262000610919062000904565b1462000653576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064a90620009c3565b60405180910390fd5b809150505b92915050565b6000620006a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006e160201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000722919062000a6e565b60405180910390fd5b50600083856200073c919062000904565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200077b826200074e565b9050919050565b6200078d816200076e565b81146200079957600080fd5b50565b600081519050620007ad8162000782565b92915050565b600060208284031215620007cc57620007cb62000749565b5b6000620007dc848285016200079c565b91505092915050565b620007f0816200076e565b82525050565b60006040820190506200080d6000830185620007e5565b6200081c6020830184620007e5565b9392505050565b6000819050919050565b620008388162000823565b82525050565b60006020820190506200085560008301846200082d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008978262000823565b9150620008a48362000823565b9250828202620008b48162000823565b91508282048414831517620008ce57620008cd6200085b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009118262000823565b91506200091e8362000823565b925082620009315762000930620008d5565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620009ab6021836200093c565b9150620009b8826200094d565b604082019050919050565b60006020820190508181036000830152620009de816200099c565b9050919050565b600081519050919050565b60005b8381101562000a10578082015181840152602081019050620009f3565b60008484015250505050565b6000601f19601f8301169050919050565b600062000a3a82620009e5565b62000a4681856200093c565b935062000a58818560208601620009f0565b62000a638162000a1c565b840191505092915050565b6000602082019050818103600083015262000a8a818462000a2d565b905092915050565b6130548062000aa26000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610384578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee57806381377ead146103055780638da5cb5b1461032e57806395d89b41146103595761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b60405161014691906120fb565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906121c5565b610492565b6040516101839190612220565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae919061223b565b6104b0565b005b3480156101c157600080fd5b506101ca610634565b6040516101d79190612277565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612292565b610644565b6040516102149190612220565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061223b565b61071d565b005b34801561025257600080fd5b5061025b61080d565b6040516102689190612301565b60405180910390f35b34801561027d57600080fd5b506102986004803603810190610293919061231c565b610816565b005b3480156102a657600080fd5b506102af610881565b005b3480156102bd57600080fd5b506102d860048036038101906102d3919061223b565b6108f3565b6040516102e59190612277565b60405180910390f35b3480156102fa57600080fd5b5061030361093c565b005b34801561031157600080fd5b5061032c60048036038101906103279190612383565b610a8f565b005b34801561033a57600080fd5b50610343610b99565b60405161035091906123d2565b60405180910390f35b34801561036557600080fd5b5061036e610bc2565b60405161037b91906120fb565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a691906121c5565b610bff565b6040516103b89190612220565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190612535565b610c1d565b005b3480156103f657600080fd5b506103ff610d47565b005b34801561040d57600080fd5b50610416610dc1565b005b34801561042457600080fd5b5061043f600480360381019061043a919061257e565b610f0c565b60405161044c9190612277565b60405180910390f35b60606040518060400160405280600481526020017f4d4f474100000000000000000000000000000000000000000000000000000000815250905090565b60006104a661049f611057565b848461105f565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f1611057565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906123d2565b602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf91906125d3565b6040518363ffffffff1660e01b81526004016105ec92919061265f565b6020604051808303816000875af115801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f91906126b4565b505050565b6000671c16b146c1640000905090565b6000610651848484611228565b6107128461065d611057565b61070d85604051806060016040528060288152602001612ff760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c3611057565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118739092919063ffffffff16565b61105f565b600190509392505050565b610725611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a99061272d565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610857611057565b73ffffffffffffffffffffffffffffffffffffffff161461087757600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c2611057565b73ffffffffffffffffffffffffffffffffffffffff16146108e257600080fd5b60004790506108f0816118d7565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610944611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c89061272d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a97611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061272d565b60405180910390fd5b600b548261ffff1611158015610b405750600b548161ffff1611155b610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690612799565b60405180910390fd5b8161ffff166009819055508061ffff16600a819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d4f474100000000000000000000000000000000000000000000000000000000815250905090565b6000610c13610c0c611057565b8484611228565b6001905092915050565b610c25611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca99061272d565b60405180910390fd5b60005b8151811015610d4357600160056000848481518110610cd757610cd66127b9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d3b90612817565b915050610cb5565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d88611057565b73ffffffffffffffffffffffffffffffffffffffff1614610da857600080fd5b6000610db3306108f3565b9050610dbe81611943565b50565b610dc9611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061272d565b60405180910390fd5b601060149054906101000a900460ff1615610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d906128ab565b60405180910390fd5b610ec0610eb2306108f3565b47610ebb610b99565b611bbc565b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555061012c42610f0491906128cb565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808303610fa55760009050611007565b60008284610fb391906128ff565b9050828482610fc29190612970565b14611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990612a13565b60405180910390fd5b809150505b92915050565b600061104f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cd1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c590612aa5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490612b37565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121b9190612277565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90612bc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90612c5b565b60405180910390fd5b60008111611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612ced565b60405180910390fd5b60095460088190555061135a610b99565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c85750611398610b99565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561175357600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61147a57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115255750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561157b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611588575060075442105b1561163857600c5481111561159c57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115e757600080fd5b601e426115f491906128cb565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060159054906101000a900460ff161580156116a35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116bb5750601060169054906101000a900460ff165b80156117115750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611752576000611721306108f3565b9050600d548111156117505761173681611943565b6000479050600081111561174e5761174d476118d7565b5b505b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117fe5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118545750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186357600a546008819055505b61186e838383611d34565b505050565b60008383111582906118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b291906120fb565b60405180910390fd5b50600083856118ca9190612d0d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561193f573d6000803e3d6000fd5b5050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561197b5761197a6123f2565b5b6040519080825280602002602001820160405280156119a95781602001602082028036833780820191505090505b50905030816000815181106119c1576119c06127b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c9190612d56565b81600181518110611aa057611a9f6127b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b0730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b6b959493929190612e7c565b600060405180830381600087803b158015611b8557600080fd5b505af1158015611b99573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6001601060156101000a81548160ff021916908315150217905550611c0430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561105f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611c6b96959493929190612ed6565b60606040518083038185885af1158015611c89573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cae9190612f37565b5050506000601060156101000a81548160ff021916908315150217905550505050565b60008083118290611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f91906120fb565b60405180910390fd5b5060008385611d279190612970565b9050809150509392505050565b600080611d4083611f6f565b91509150611d9683600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc390919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e2b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200d90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ec081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f609190612277565b60405180910390a35050505050565b6000806000611f9d6103e8611f8f60085487610f9390919063ffffffff16565b61100d90919063ffffffff16565b90506000611fb48286611fc390919063ffffffff16565b90508082935093505050915091565b600061200583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611873565b905092915050565b600080828461201c91906128cb565b905083811015612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205890612fd6565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120a557808201518184015260208101905061208a565b60008484015250505050565b6000601f19601f8301169050919050565b60006120cd8261206b565b6120d78185612076565b93506120e7818560208601612087565b6120f0816120b1565b840191505092915050565b6000602082019050818103600083015261211581846120c2565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061215c82612131565b9050919050565b61216c81612151565b811461217757600080fd5b50565b60008135905061218981612163565b92915050565b6000819050919050565b6121a28161218f565b81146121ad57600080fd5b50565b6000813590506121bf81612199565b92915050565b600080604083850312156121dc576121db612127565b5b60006121ea8582860161217a565b92505060206121fb858286016121b0565b9150509250929050565b60008115159050919050565b61221a81612205565b82525050565b60006020820190506122356000830184612211565b92915050565b60006020828403121561225157612250612127565b5b600061225f8482850161217a565b91505092915050565b6122718161218f565b82525050565b600060208201905061228c6000830184612268565b92915050565b6000806000606084860312156122ab576122aa612127565b5b60006122b98682870161217a565b93505060206122ca8682870161217a565b92505060406122db868287016121b0565b9150509250925092565b600060ff82169050919050565b6122fb816122e5565b82525050565b600060208201905061231660008301846122f2565b92915050565b60006020828403121561233257612331612127565b5b6000612340848285016121b0565b91505092915050565b600061ffff82169050919050565b61236081612349565b811461236b57600080fd5b50565b60008135905061237d81612357565b92915050565b6000806040838503121561239a57612399612127565b5b60006123a88582860161236e565b92505060206123b98582860161236e565b9150509250929050565b6123cc81612151565b82525050565b60006020820190506123e760008301846123c3565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61242a826120b1565b810181811067ffffffffffffffff82111715612449576124486123f2565b5b80604052505050565b600061245c61211d565b90506124688282612421565b919050565b600067ffffffffffffffff821115612488576124876123f2565b5b602082029050602081019050919050565b600080fd5b60006124b16124ac8461246d565b612452565b905080838252602082019050602084028301858111156124d4576124d3612499565b5b835b818110156124fd57806124e9888261217a565b8452602084019350506020810190506124d6565b5050509392505050565b600082601f83011261251c5761251b6123ed565b5b813561252c84826020860161249e565b91505092915050565b60006020828403121561254b5761254a612127565b5b600082013567ffffffffffffffff8111156125695761256861212c565b5b61257584828501612507565b91505092915050565b6000806040838503121561259557612594612127565b5b60006125a38582860161217a565b92505060206125b48582860161217a565b9150509250929050565b6000815190506125cd81612199565b92915050565b6000602082840312156125e9576125e8612127565b5b60006125f7848285016125be565b91505092915050565b6000819050919050565b600061262561262061261b84612131565b612600565b612131565b9050919050565b60006126378261260a565b9050919050565b60006126498261262c565b9050919050565b6126598161263e565b82525050565b60006040820190506126746000830185612650565b6126816020830184612268565b9392505050565b61269181612205565b811461269c57600080fd5b50565b6000815190506126ae81612688565b92915050565b6000602082840312156126ca576126c9612127565b5b60006126d88482850161269f565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612717602083612076565b9150612722826126e1565b602082019050919050565b600060208201905081810360008301526127468161270a565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b6000612783601d83612076565b915061278e8261274d565b602082019050919050565b600060208201905081810360008301526127b281612776565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128228261218f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612854576128536127e8565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612895601783612076565b91506128a08261285f565b602082019050919050565b600060208201905081810360008301526128c481612888565b9050919050565b60006128d68261218f565b91506128e18361218f565b92508282019050808211156128f9576128f86127e8565b5b92915050565b600061290a8261218f565b91506129158361218f565b92508282026129238161218f565b9150828204841483151761293a576129396127e8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061297b8261218f565b91506129868361218f565b92508261299657612995612941565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006129fd602183612076565b9150612a08826129a1565b604082019050919050565b60006020820190508181036000830152612a2c816129f0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a8f602483612076565b9150612a9a82612a33565b604082019050919050565b60006020820190508181036000830152612abe81612a82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b21602283612076565b9150612b2c82612ac5565b604082019050919050565b60006020820190508181036000830152612b5081612b14565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612bb3602583612076565b9150612bbe82612b57565b604082019050919050565b60006020820190508181036000830152612be281612ba6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c45602383612076565b9150612c5082612be9565b604082019050919050565b60006020820190508181036000830152612c7481612c38565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cd7602983612076565b9150612ce282612c7b565b604082019050919050565b60006020820190508181036000830152612d0681612cca565b9050919050565b6000612d188261218f565b9150612d238361218f565b9250828203905081811115612d3b57612d3a6127e8565b5b92915050565b600081519050612d5081612163565b92915050565b600060208284031215612d6c57612d6b612127565b5b6000612d7a84828501612d41565b91505092915050565b6000819050919050565b6000612da8612da3612d9e84612d83565b612600565b61218f565b9050919050565b612db881612d8d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612df381612151565b82525050565b6000612e058383612dea565b60208301905092915050565b6000602082019050919050565b6000612e2982612dbe565b612e338185612dc9565b9350612e3e83612dda565b8060005b83811015612e6f578151612e568882612df9565b9750612e6183612e11565b925050600181019050612e42565b5085935050505092915050565b600060a082019050612e916000830188612268565b612e9e6020830187612daf565b8181036040830152612eb08186612e1e565b9050612ebf60608301856123c3565b612ecc6080830184612268565b9695505050505050565b600060c082019050612eeb60008301896123c3565b612ef86020830188612268565b612f056040830187612daf565b612f126060830186612daf565b612f1f60808301856123c3565b612f2c60a0830184612268565b979650505050505050565b600080600060608486031215612f5057612f4f612127565b5b6000612f5e868287016125be565b9350506020612f6f868287016125be565b9250506040612f80868287016125be565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fc0601b83612076565b9150612fcb82612f8a565b602082019050919050565b60006020820190508181036000830152612fef81612fb3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f84121d8bbc7d1cd197d57b56ec06d46b0ac09c13674ad4acba1968cff559ac764736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610384578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee57806381377ead146103055780638da5cb5b1461032e57806395d89b41146103595761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b60405161014691906120fb565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906121c5565b610492565b6040516101839190612220565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae919061223b565b6104b0565b005b3480156101c157600080fd5b506101ca610634565b6040516101d79190612277565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612292565b610644565b6040516102149190612220565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061223b565b61071d565b005b34801561025257600080fd5b5061025b61080d565b6040516102689190612301565b60405180910390f35b34801561027d57600080fd5b506102986004803603810190610293919061231c565b610816565b005b3480156102a657600080fd5b506102af610881565b005b3480156102bd57600080fd5b506102d860048036038101906102d3919061223b565b6108f3565b6040516102e59190612277565b60405180910390f35b3480156102fa57600080fd5b5061030361093c565b005b34801561031157600080fd5b5061032c60048036038101906103279190612383565b610a8f565b005b34801561033a57600080fd5b50610343610b99565b60405161035091906123d2565b60405180910390f35b34801561036557600080fd5b5061036e610bc2565b60405161037b91906120fb565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a691906121c5565b610bff565b6040516103b89190612220565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190612535565b610c1d565b005b3480156103f657600080fd5b506103ff610d47565b005b34801561040d57600080fd5b50610416610dc1565b005b34801561042457600080fd5b5061043f600480360381019061043a919061257e565b610f0c565b60405161044c9190612277565b60405180910390f35b60606040518060400160405280600481526020017f4d4f474100000000000000000000000000000000000000000000000000000000815250905090565b60006104a661049f611057565b848461105f565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f1611057565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906123d2565b602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf91906125d3565b6040518363ffffffff1660e01b81526004016105ec92919061265f565b6020604051808303816000875af115801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f91906126b4565b505050565b6000671c16b146c1640000905090565b6000610651848484611228565b6107128461065d611057565b61070d85604051806060016040528060288152602001612ff760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c3611057565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118739092919063ffffffff16565b61105f565b600190509392505050565b610725611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a99061272d565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610857611057565b73ffffffffffffffffffffffffffffffffffffffff161461087757600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c2611057565b73ffffffffffffffffffffffffffffffffffffffff16146108e257600080fd5b60004790506108f0816118d7565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610944611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c89061272d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a97611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b9061272d565b60405180910390fd5b600b548261ffff1611158015610b405750600b548161ffff1611155b610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690612799565b60405180910390fd5b8161ffff166009819055508061ffff16600a819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d4f474100000000000000000000000000000000000000000000000000000000815250905090565b6000610c13610c0c611057565b8484611228565b6001905092915050565b610c25611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca99061272d565b60405180910390fd5b60005b8151811015610d4357600160056000848481518110610cd757610cd66127b9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d3b90612817565b915050610cb5565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d88611057565b73ffffffffffffffffffffffffffffffffffffffff1614610da857600080fd5b6000610db3306108f3565b9050610dbe81611943565b50565b610dc9611057565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061272d565b60405180910390fd5b601060149054906101000a900460ff1615610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d906128ab565b60405180910390fd5b610ec0610eb2306108f3565b47610ebb610b99565b611bbc565b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555061012c42610f0491906128cb565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808303610fa55760009050611007565b60008284610fb391906128ff565b9050828482610fc29190612970565b14611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990612a13565b60405180910390fd5b809150505b92915050565b600061104f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cd1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c590612aa5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490612b37565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121b9190612277565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90612bc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90612c5b565b60405180910390fd5b60008111611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612ced565b60405180910390fd5b60095460088190555061135a610b99565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c85750611398610b99565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561175357600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61147a57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115255750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561157b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611588575060075442105b1561163857600c5481111561159c57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115e757600080fd5b601e426115f491906128cb565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060159054906101000a900460ff161580156116a35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116bb5750601060169054906101000a900460ff165b80156117115750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611752576000611721306108f3565b9050600d548111156117505761173681611943565b6000479050600081111561174e5761174d476118d7565b5b505b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117fe5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118545750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186357600a546008819055505b61186e838383611d34565b505050565b60008383111582906118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b291906120fb565b60405180910390fd5b50600083856118ca9190612d0d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561193f573d6000803e3d6000fd5b5050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561197b5761197a6123f2565b5b6040519080825280602002602001820160405280156119a95781602001602082028036833780820191505090505b50905030816000815181106119c1576119c06127b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c9190612d56565b81600181518110611aa057611a9f6127b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b0730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b6b959493929190612e7c565b600060405180830381600087803b158015611b8557600080fd5b505af1158015611b99573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6001601060156101000a81548160ff021916908315150217905550611c0430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561105f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611c6b96959493929190612ed6565b60606040518083038185885af1158015611c89573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cae9190612f37565b5050506000601060156101000a81548160ff021916908315150217905550505050565b60008083118290611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f91906120fb565b60405180910390fd5b5060008385611d279190612970565b9050809150509392505050565b600080611d4083611f6f565b91509150611d9683600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc390919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e2b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200d90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ec081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f609190612277565b60405180910390a35050505050565b6000806000611f9d6103e8611f8f60085487610f9390919063ffffffff16565b61100d90919063ffffffff16565b90506000611fb48286611fc390919063ffffffff16565b90508082935093505050915091565b600061200583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611873565b905092915050565b600080828461201c91906128cb565b905083811015612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205890612fd6565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120a557808201518184015260208101905061208a565b60008484015250505050565b6000601f19601f8301169050919050565b60006120cd8261206b565b6120d78185612076565b93506120e7818560208601612087565b6120f0816120b1565b840191505092915050565b6000602082019050818103600083015261211581846120c2565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061215c82612131565b9050919050565b61216c81612151565b811461217757600080fd5b50565b60008135905061218981612163565b92915050565b6000819050919050565b6121a28161218f565b81146121ad57600080fd5b50565b6000813590506121bf81612199565b92915050565b600080604083850312156121dc576121db612127565b5b60006121ea8582860161217a565b92505060206121fb858286016121b0565b9150509250929050565b60008115159050919050565b61221a81612205565b82525050565b60006020820190506122356000830184612211565b92915050565b60006020828403121561225157612250612127565b5b600061225f8482850161217a565b91505092915050565b6122718161218f565b82525050565b600060208201905061228c6000830184612268565b92915050565b6000806000606084860312156122ab576122aa612127565b5b60006122b98682870161217a565b93505060206122ca8682870161217a565b92505060406122db868287016121b0565b9150509250925092565b600060ff82169050919050565b6122fb816122e5565b82525050565b600060208201905061231660008301846122f2565b92915050565b60006020828403121561233257612331612127565b5b6000612340848285016121b0565b91505092915050565b600061ffff82169050919050565b61236081612349565b811461236b57600080fd5b50565b60008135905061237d81612357565b92915050565b6000806040838503121561239a57612399612127565b5b60006123a88582860161236e565b92505060206123b98582860161236e565b9150509250929050565b6123cc81612151565b82525050565b60006020820190506123e760008301846123c3565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61242a826120b1565b810181811067ffffffffffffffff82111715612449576124486123f2565b5b80604052505050565b600061245c61211d565b90506124688282612421565b919050565b600067ffffffffffffffff821115612488576124876123f2565b5b602082029050602081019050919050565b600080fd5b60006124b16124ac8461246d565b612452565b905080838252602082019050602084028301858111156124d4576124d3612499565b5b835b818110156124fd57806124e9888261217a565b8452602084019350506020810190506124d6565b5050509392505050565b600082601f83011261251c5761251b6123ed565b5b813561252c84826020860161249e565b91505092915050565b60006020828403121561254b5761254a612127565b5b600082013567ffffffffffffffff8111156125695761256861212c565b5b61257584828501612507565b91505092915050565b6000806040838503121561259557612594612127565b5b60006125a38582860161217a565b92505060206125b48582860161217a565b9150509250929050565b6000815190506125cd81612199565b92915050565b6000602082840312156125e9576125e8612127565b5b60006125f7848285016125be565b91505092915050565b6000819050919050565b600061262561262061261b84612131565b612600565b612131565b9050919050565b60006126378261260a565b9050919050565b60006126498261262c565b9050919050565b6126598161263e565b82525050565b60006040820190506126746000830185612650565b6126816020830184612268565b9392505050565b61269181612205565b811461269c57600080fd5b50565b6000815190506126ae81612688565b92915050565b6000602082840312156126ca576126c9612127565b5b60006126d88482850161269f565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612717602083612076565b9150612722826126e1565b602082019050919050565b600060208201905081810360008301526127468161270a565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b6000612783601d83612076565b915061278e8261274d565b602082019050919050565b600060208201905081810360008301526127b281612776565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128228261218f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612854576128536127e8565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612895601783612076565b91506128a08261285f565b602082019050919050565b600060208201905081810360008301526128c481612888565b9050919050565b60006128d68261218f565b91506128e18361218f565b92508282019050808211156128f9576128f86127e8565b5b92915050565b600061290a8261218f565b91506129158361218f565b92508282026129238161218f565b9150828204841483151761293a576129396127e8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061297b8261218f565b91506129868361218f565b92508261299657612995612941565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006129fd602183612076565b9150612a08826129a1565b604082019050919050565b60006020820190508181036000830152612a2c816129f0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a8f602483612076565b9150612a9a82612a33565b604082019050919050565b60006020820190508181036000830152612abe81612a82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b21602283612076565b9150612b2c82612ac5565b604082019050919050565b60006020820190508181036000830152612b5081612b14565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612bb3602583612076565b9150612bbe82612b57565b604082019050919050565b60006020820190508181036000830152612be281612ba6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c45602383612076565b9150612c5082612be9565b604082019050919050565b60006020820190508181036000830152612c7481612c38565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cd7602983612076565b9150612ce282612c7b565b604082019050919050565b60006020820190508181036000830152612d0681612cca565b9050919050565b6000612d188261218f565b9150612d238361218f565b9250828203905081811115612d3b57612d3a6127e8565b5b92915050565b600081519050612d5081612163565b92915050565b600060208284031215612d6c57612d6b612127565b5b6000612d7a84828501612d41565b91505092915050565b6000819050919050565b6000612da8612da3612d9e84612d83565b612600565b61218f565b9050919050565b612db881612d8d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612df381612151565b82525050565b6000612e058383612dea565b60208301905092915050565b6000602082019050919050565b6000612e2982612dbe565b612e338185612dc9565b9350612e3e83612dda565b8060005b83811015612e6f578151612e568882612df9565b9750612e6183612e11565b925050600181019050612e42565b5085935050505092915050565b600060a082019050612e916000830188612268565b612e9e6020830187612daf565b8181036040830152612eb08186612e1e565b9050612ebf60608301856123c3565b612ecc6080830184612268565b9695505050505050565b600060c082019050612eeb60008301896123c3565b612ef86020830188612268565b612f056040830187612daf565b612f126060830186612daf565b612f1f60808301856123c3565b612f2c60a0830184612268565b979650505050505050565b600080600060608486031215612f5057612f4f612127565b5b6000612f5e868287016125be565b9350506020612f6f868287016125be565b9250506040612f80868287016125be565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fc0601b83612076565b9150612fcb82612f8a565b602082019050919050565b60006020820190508181036000830152612fef81612fb3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f84121d8bbc7d1cd197d57b56ec06d46b0ac09c13674ad4acba1968cff559ac764736f6c63430008120033

Deployed Bytecode Sourcemap

3605:8153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5315:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6146:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11499:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5592:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6315:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10279:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5501:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6863:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11052:194;;;;;;;;;;;;;:::i;:::-;;5695:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2684:148;;;;;;;;;;;;;:::i;:::-;;6639:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2470:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5406:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10103:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10845:195;;;;;;;;;;;;;:::i;:::-;;9797:294;;;;;;;;;;;;;:::i;:::-;;5995:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5315:83;5352:13;5385:5;;;;;;;;;;;;;;;;;5378:12;;5315:83;:::o;6146:161::-;6221:4;6238:39;6247:12;:10;:12::i;:::-;6261:7;6270:6;6238:8;:39::i;:::-;6295:4;6288:11;;6146:161;;;;:::o;11499:256::-;11588:15;;;;;;;;;;;11572:31;;:12;:10;:12::i;:::-;:31;;;11564:40;;;;;;11615:20;11645:12;11615:43;;11669:13;:22;;;11692:15;;;;;;;;;;;11708:13;:23;;;11740:4;11708:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11669:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11553:202;11499:256;:::o;5592:95::-;5645:7;4058:20;5665:14;;5592:95;:::o;6315:313::-;6413:4;6430:36;6440:6;6448:9;6459:6;6430:9;:36::i;:::-;6477:121;6486:6;6494:12;:10;:12::i;:::-;6508:89;6546:6;6508:89;;;;;;;;;;;;;;;;;:11;:19;6520:6;6508:19;;;;;;;;;;;;;;;:33;6528:12;:10;:12::i;:::-;6508:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6477:8;:121::i;:::-;6616:4;6609:11;;6315:313;;;;;:::o;10279:88::-;2607:12;:10;:12::i;:::-;2597:22;;:6;;;;;;;;;;:22;;;2589:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10354:5:::1;10339:4;:12;10344:6;10339:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10279:88:::0;:::o;5501:83::-;5542:5;4425:1;5560:16;;5501:83;:::o;6863:142::-;6949:15;;;;;;;;;;;6933:31;;:12;:10;:12::i;:::-;:31;;;6925:40;;;;;;6989:6;6976:10;:19;;;;6863:142;:::o;11052:194::-;11118:15;;;;;;;;;;;11102:31;;:12;:10;:12::i;:::-;:31;;;11094:40;;;;;;11145:26;11174:21;11145:50;;11206:32;11219:18;11206:12;:32::i;:::-;11083:163;11052:194::o;5695:117::-;5761:7;5788;:16;5796:7;5788:16;;;;;;;;;;;;;;;;5781:23;;5695:117;;;:::o;2684:148::-;2607:12;:10;:12::i;:::-;2597:22;;:6;;;;;;;;;;:22;;;2589:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2791:1:::1;2754:40;;2775:6;::::0;::::1;;;;;;;;2754:40;;;;;;;;;;;;2822:1;2805:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2684:148::o:0;6639:216::-;2607:12;:10;:12::i;:::-;2597:22;;:6;;;;;;;;;;:22;;;2589:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6743:6:::1;;6734:5;:15;;;;:34;;;;;6762:6;;6753:5;:15;;;;6734:34;6726:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;6819:5;6812:12;;:4;:12;;;;6842:5;6835:12;;:4;:12;;;;6639:216:::0;;:::o;2470:79::-;2508:7;2535:6;;;;;;;;;;;2528:13;;2470:79;:::o;5406:87::-;5445:13;5478:7;;;;;;;;;;;;;;;;;5471:14;;5406:87;:::o;5820:167::-;5898:4;5915:42;5925:12;:10;:12::i;:::-;5939:9;5950:6;5915:9;:42::i;:::-;5975:4;5968:11;;5820:167;;;;:::o;10103:164::-;2607:12;:10;:12::i;:::-;2597:22;;:6;;;;;;;;;;:22;;;2589:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10177:6:::1;10172:88;10193:5;:12;10189:1;:16;10172:88;;;10244:4;10227;:14;10232:5;10238:1;10232:8;;;;;;;;:::i;:::-;;;;;;;;10227:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10207:3;;;;;:::i;:::-;;;;10172:88;;;;10103:164:::0;:::o;10845:195::-;10911:15;;;;;;;;;;;10895:31;;:12;:10;:12::i;:::-;:31;;;10887:40;;;;;;10938:23;10964:24;10982:4;10964:9;:24::i;:::-;10938:50;;10999:33;11016:15;10999:16;:33::i;:::-;10876:164;10845:195::o;9797:294::-;2607:12;:10;:12::i;:::-;2597:22;;:6;;;;;;;;;;:22;;;2589:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9861:11:::1;;;;;;;;;;;9860:12;9852:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9910:68;9923:24;9941:4;9923:9;:24::i;:::-;9948:21;9970:7;:5;:7::i;:::-;9910:12;:68::i;:::-;10003:4;9989:11;;:18;;;;;;;;;;;;;;;;;;10032:4;10018:11;;:18;;;;;;;;;;;;;;;;;;10073:9;10054:15;:29;;;;:::i;:::-;10047:4;:36;;;;9797:294::o:0;5995:143::-;6076:7;6103:11;:18;6115:5;6103:18;;;;;;;;;;;;;;;:27;6122:7;6103:27;;;;;;;;;;;;;;;;6096:34;;5995:143;;;;:::o;1523:246::-;1581:7;1610:1;1605;:6;1601:47;;1635:1;1628:8;;;;1601:47;1658:9;1674:1;1670;:5;;;;:::i;:::-;1658:17;;1703:1;1698;1694;:5;;;;:::i;:::-;:10;1686:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1760:1;1753:8;;;1523:246;;;;;:::o;1777:132::-;1835:7;1862:39;1866:1;1869;1862:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1855:46;;1777:132;;;;:::o;188:98::-;241:7;268:10;261:17;;188:98;:::o;7016:335::-;7126:1;7109:19;;:5;:19;;;7101:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7207:1;7188:21;;:7;:21;;;7180:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7289:6;7259:11;:18;7271:5;7259:18;;;;;;;;;;;;;;;:27;7278:7;7259:27;;;;;;;;;;;;;;;:36;;;;7327:7;7311:32;;7320:5;7311:32;;;7336:6;7311:32;;;;;;:::i;:::-;;;;;;;;7016:335;;;:::o;7359:1530::-;7463:1;7447:18;;:4;:18;;;7439:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7540:1;7526:16;;:2;:16;;;7518:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7610:1;7601:6;:10;7593:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7677:4;;7670;:11;;;;7704:7;:5;:7::i;:::-;7696:15;;:4;:15;;;;:32;;;;;7721:7;:5;:7::i;:::-;7715:13;;:2;:13;;;;7696:32;7692:1007;;;7754:4;:10;7759:4;7754:10;;;;;;;;;;;;;;;;;;;;;;;;;7753:11;:24;;;;;7769:4;:8;7774:2;7769:8;;;;;;;;;;;;;;;;;;;;;;;;;7768:9;7753:24;7745:33;;;;;;7805:13;;;;;;;;;;;7797:21;;:4;:21;;;:55;;;;;7836:15;;;;;;;;;;;7822:30;;:2;:30;;;;7797:55;:83;;;;;7858:18;:22;7877:2;7858:22;;;;;;;;;;;;;;;;;;;;;;;;;7856:24;7797:83;:111;;;;;7903:4;;7885:15;:22;7797:111;7793:333;;;7975:12;;7965:6;:22;;7957:31;;;;;;8030:15;8015:8;:12;8024:2;8015:12;;;;;;;;;;;;;;;;:30;8007:39;;;;;;8099:10;8080:15;:30;;;;:::i;:::-;8065:8;:12;8074:2;8065:12;;;;;;;;;;;;;;;:45;;;;7793:333;8159:6;;;;;;;;;;;8158:7;:32;;;;;8177:13;;;;;;;;;;;8169:21;;:4;:21;;;;8158:32;:47;;;;;8194:11;;;;;;;;;;;8158:47;:76;;;;;8210:18;:24;8229:4;8210:24;;;;;;;;;;;;;;;;;;;;;;;;;8209:25;8158:76;8154:534;;;8273:28;8304:24;8322:4;8304:9;:24::i;:::-;8273:55;;8373:10;;8350:20;:33;8347:326;;;8407:38;8424:20;8407:16;:38::i;:::-;8468:26;8497:21;8468:50;;8565:1;8544:18;:22;8541:113;;;8595:35;8608:21;8595:12;:35::i;:::-;8541:113;8384:289;8347:326;8236:452;8154:534;7692:1007;8719:13;;;;;;;;;;;8713:19;;:2;:19;;;:55;;;;;8752:15;;;;;;;;;;;8736:32;;:4;:32;;;;8713:55;:85;;;;;8774:18;:24;8793:4;8774:24;;;;;;;;;;;;;;;;;;;;;;;;;8772:26;8713:85;8709:129;;;8822:4;;8815;:11;;;;8709:129;8848:33;8866:4;8871:2;8874:6;8848:17;:33::i;:::-;7359:1530;;;:::o;1325:190::-;1411:7;1444:1;1439;:6;;1447:12;1431:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1471:9;1487:1;1483;:5;;;;:::i;:::-;1471:17;;1506:1;1499:8;;;1325:190;;;;;:::o;9688:97::-;9745:15;;;;;;;;;;;:24;;:32;9770:6;9745:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9688:97;:::o;8897:483::-;4709:4;4700:6;;:13;;;;;;;;;;;;;;;;;;8975:21:::1;9013:1;8999:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8975:40;;9044:4;9026;9031:1;9026:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9070:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9060:4;9065:1;9060:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9103:62;9120:4;9135:15;;;;;;;;;;;9153:11;9103:8;:62::i;:::-;9176:15;;;;;;;;;;;:66;;;9257:11;9283:1;9299:4;9326;9346:15;9176:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8964:416;4745:5:::0;4736:6;;:14;;;;;;;;;;;;;;;;;;8897:483;:::o;9388:288::-;4709:4;4700:6;;:13;;;;;;;;;;;;;;;;;;9494:60:::1;9511:4;9525:15;;;;;;;;;;;9542:11;9494:8;:60::i;:::-;9565:15;;;;;;;;;;;:31;;;9604:9;9623:4;9629:11;9641:1;9643::::0;9645:6:::1;9652:15;9565:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4745:5:::0;4736:6;;:14;;;;;;;;;;;;;;;;;;9388:288;;;:::o;1917:189::-;2003:7;2035:1;2031;:5;2038:12;2023:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2062:9;2078:1;2074;:5;;;;:::i;:::-;2062:17;;2097:1;2090:8;;;1917:189;;;;;:::o;10375:421::-;10474:22;10497:12;10513:20;10525:7;10513:11;:20::i;:::-;10473:60;;;;10562:28;10582:7;10562;:15;10570:6;10562:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10544:7;:15;10552:6;10544:15;;;;;;;;;;;;;;;:46;;;;10622:38;10645:14;10622:7;:18;10630:9;10622:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;10601:7;:18;10609:9;10601:18;;;;;;;;;;;;;;;:59;;;;10697:32;10724:4;10697:7;:22;10713:4;10697:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;10672:7;:22;10688:4;10672:22;;;;;;;;;;;;;;;:57;;;;10762:9;10745:43;;10754:6;10745:43;;;10773:14;10745:43;;;;;;:::i;:::-;;;;;;;;10462:334;;10375:421;;;:::o;11257:234::-;11317:7;11326;11346:12;11361:27;11383:4;11361:17;11373:4;;11361:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;11346:42;;11399:23;11425:17;11437:4;11425:7;:11;;:17;;;;:::i;:::-;11399:43;;11461:15;11478:4;11453:30;;;;;;11257:234;;;:::o;1181:136::-;1239:7;1266:43;1270:1;1273;1266:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1259:50;;1181:136;;;;:::o;994:179::-;1052:7;1072:9;1088:1;1084;:5;;;;:::i;:::-;1072:17;;1113:1;1108;:6;;1100:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1164:1;1157:8;;;994:179;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:89::-;5559:7;5599:6;5592:5;5588:18;5577:29;;5523:89;;;:::o;5618:120::-;5690:23;5707:5;5690:23;:::i;:::-;5683:5;5680:34;5670:62;;5728:1;5725;5718:12;5670:62;5618:120;:::o;5744:137::-;5789:5;5827:6;5814:20;5805:29;;5843:32;5869:5;5843:32;:::i;:::-;5744:137;;;;:::o;5887:470::-;5953:6;5961;6010:2;5998:9;5989:7;5985:23;5981:32;5978:119;;;6016:79;;:::i;:::-;5978:119;6136:1;6161:52;6205:7;6196:6;6185:9;6181:22;6161:52;:::i;:::-;6151:62;;6107:116;6262:2;6288:52;6332:7;6323:6;6312:9;6308:22;6288:52;:::i;:::-;6278:62;;6233:117;5887:470;;;;;:::o;6363:118::-;6450:24;6468:5;6450:24;:::i;:::-;6445:3;6438:37;6363:118;;:::o;6487:222::-;6580:4;6618:2;6607:9;6603:18;6595:26;;6631:71;6699:1;6688:9;6684:17;6675:6;6631:71;:::i;:::-;6487:222;;;;:::o;6715:117::-;6824:1;6821;6814:12;6838:180;6886:77;6883:1;6876:88;6983:4;6980:1;6973:15;7007:4;7004:1;6997:15;7024:281;7107:27;7129:4;7107:27;:::i;:::-;7099:6;7095:40;7237:6;7225:10;7222:22;7201:18;7189:10;7186:34;7183:62;7180:88;;;7248:18;;:::i;:::-;7180:88;7288:10;7284:2;7277:22;7067:238;7024:281;;:::o;7311:129::-;7345:6;7372:20;;:::i;:::-;7362:30;;7401:33;7429:4;7421:6;7401:33;:::i;:::-;7311:129;;;:::o;7446:311::-;7523:4;7613:18;7605:6;7602:30;7599:56;;;7635:18;;:::i;:::-;7599:56;7685:4;7677:6;7673:17;7665:25;;7745:4;7739;7735:15;7727:23;;7446:311;;;:::o;7763:117::-;7872:1;7869;7862:12;7903:710;7999:5;8024:81;8040:64;8097:6;8040:64;:::i;:::-;8024:81;:::i;:::-;8015:90;;8125:5;8154:6;8147:5;8140:21;8188:4;8181:5;8177:16;8170:23;;8241:4;8233:6;8229:17;8221:6;8217:30;8270:3;8262:6;8259:15;8256:122;;;8289:79;;:::i;:::-;8256:122;8404:6;8387:220;8421:6;8416:3;8413:15;8387:220;;;8496:3;8525:37;8558:3;8546:10;8525:37;:::i;:::-;8520:3;8513:50;8592:4;8587:3;8583:14;8576:21;;8463:144;8447:4;8442:3;8438:14;8431:21;;8387:220;;;8391:21;8005:608;;7903:710;;;;;:::o;8636:370::-;8707:5;8756:3;8749:4;8741:6;8737:17;8733:27;8723:122;;8764:79;;:::i;:::-;8723:122;8881:6;8868:20;8906:94;8996:3;8988:6;8981:4;8973:6;8969:17;8906:94;:::i;:::-;8897:103;;8713:293;8636:370;;;;:::o;9012:539::-;9096:6;9145:2;9133:9;9124:7;9120:23;9116:32;9113:119;;;9151:79;;:::i;:::-;9113:119;9299:1;9288:9;9284:17;9271:31;9329:18;9321:6;9318:30;9315:117;;;9351:79;;:::i;:::-;9315:117;9456:78;9526:7;9517:6;9506:9;9502:22;9456:78;:::i;:::-;9446:88;;9242:302;9012:539;;;;:::o;9557:474::-;9625:6;9633;9682:2;9670:9;9661:7;9657:23;9653:32;9650:119;;;9688:79;;:::i;:::-;9650:119;9808:1;9833:53;9878:7;9869:6;9858:9;9854:22;9833:53;:::i;:::-;9823:63;;9779:117;9935:2;9961:53;10006:7;9997:6;9986:9;9982:22;9961:53;:::i;:::-;9951:63;;9906:118;9557:474;;;;;:::o;10037:143::-;10094:5;10125:6;10119:13;10110:22;;10141:33;10168:5;10141:33;:::i;:::-;10037:143;;;;:::o;10186:351::-;10256:6;10305:2;10293:9;10284:7;10280:23;10276:32;10273:119;;;10311:79;;:::i;:::-;10273:119;10431:1;10456:64;10512:7;10503:6;10492:9;10488:22;10456:64;:::i;:::-;10446:74;;10402:128;10186:351;;;;:::o;10543:60::-;10571:3;10592:5;10585:12;;10543:60;;;:::o;10609:142::-;10659:9;10692:53;10710:34;10719:24;10737:5;10719:24;:::i;:::-;10710:34;:::i;:::-;10692:53;:::i;:::-;10679:66;;10609:142;;;:::o;10757:126::-;10807:9;10840:37;10871:5;10840:37;:::i;:::-;10827:50;;10757:126;;;:::o;10889:134::-;10947:9;10980:37;11011:5;10980:37;:::i;:::-;10967:50;;10889:134;;;:::o;11029:147::-;11124:45;11163:5;11124:45;:::i;:::-;11119:3;11112:58;11029:147;;:::o;11182:348::-;11311:4;11349:2;11338:9;11334:18;11326:26;;11362:79;11438:1;11427:9;11423:17;11414:6;11362:79;:::i;:::-;11451:72;11519:2;11508:9;11504:18;11495:6;11451:72;:::i;:::-;11182:348;;;;;:::o;11536:116::-;11606:21;11621:5;11606:21;:::i;:::-;11599:5;11596:32;11586:60;;11642:1;11639;11632:12;11586:60;11536:116;:::o;11658:137::-;11712:5;11743:6;11737:13;11728:22;;11759:30;11783:5;11759:30;:::i;:::-;11658:137;;;;:::o;11801:345::-;11868:6;11917:2;11905:9;11896:7;11892:23;11888:32;11885:119;;;11923:79;;:::i;:::-;11885:119;12043:1;12068:61;12121:7;12112:6;12101:9;12097:22;12068:61;:::i;:::-;12058:71;;12014:125;11801:345;;;;:::o;12152:182::-;12292:34;12288:1;12280:6;12276:14;12269:58;12152:182;:::o;12340:366::-;12482:3;12503:67;12567:2;12562:3;12503:67;:::i;:::-;12496:74;;12579:93;12668:3;12579:93;:::i;:::-;12697:2;12692:3;12688:12;12681:19;;12340:366;;;:::o;12712:419::-;12878:4;12916:2;12905:9;12901:18;12893:26;;12965:9;12959:4;12955:20;12951:1;12940:9;12936:17;12929:47;12993:131;13119:4;12993:131;:::i;:::-;12985:139;;12712:419;;;:::o;13137:179::-;13277:31;13273:1;13265:6;13261:14;13254:55;13137:179;:::o;13322:366::-;13464:3;13485:67;13549:2;13544:3;13485:67;:::i;:::-;13478:74;;13561:93;13650:3;13561:93;:::i;:::-;13679:2;13674:3;13670:12;13663:19;;13322:366;;;:::o;13694:419::-;13860:4;13898:2;13887:9;13883:18;13875:26;;13947:9;13941:4;13937:20;13933:1;13922:9;13918:17;13911:47;13975:131;14101:4;13975:131;:::i;:::-;13967:139;;13694:419;;;:::o;14119:180::-;14167:77;14164:1;14157:88;14264:4;14261:1;14254:15;14288:4;14285:1;14278:15;14305:180;14353:77;14350:1;14343:88;14450:4;14447:1;14440:15;14474:4;14471:1;14464:15;14491:233;14530:3;14553:24;14571:5;14553:24;:::i;:::-;14544:33;;14599:66;14592:5;14589:77;14586:103;;14669:18;;:::i;:::-;14586:103;14716:1;14709:5;14705:13;14698:20;;14491:233;;;:::o;14730:173::-;14870:25;14866:1;14858:6;14854:14;14847:49;14730:173;:::o;14909:366::-;15051:3;15072:67;15136:2;15131:3;15072:67;:::i;:::-;15065:74;;15148:93;15237:3;15148:93;:::i;:::-;15266:2;15261:3;15257:12;15250:19;;14909:366;;;:::o;15281:419::-;15447:4;15485:2;15474:9;15470:18;15462:26;;15534:9;15528:4;15524:20;15520:1;15509:9;15505:17;15498:47;15562:131;15688:4;15562:131;:::i;:::-;15554:139;;15281:419;;;:::o;15706:191::-;15746:3;15765:20;15783:1;15765:20;:::i;:::-;15760:25;;15799:20;15817:1;15799:20;:::i;:::-;15794:25;;15842:1;15839;15835:9;15828:16;;15863:3;15860:1;15857:10;15854:36;;;15870:18;;:::i;:::-;15854:36;15706:191;;;;:::o;15903:410::-;15943:7;15966:20;15984:1;15966:20;:::i;:::-;15961:25;;16000:20;16018:1;16000:20;:::i;:::-;15995:25;;16055:1;16052;16048:9;16077:30;16095:11;16077:30;:::i;:::-;16066:41;;16256:1;16247:7;16243:15;16240:1;16237:22;16217:1;16210:9;16190:83;16167:139;;16286:18;;:::i;:::-;16167:139;15951:362;15903:410;;;;:::o;16319:180::-;16367:77;16364:1;16357:88;16464:4;16461:1;16454:15;16488:4;16485:1;16478:15;16505:185;16545:1;16562:20;16580:1;16562:20;:::i;:::-;16557:25;;16596:20;16614:1;16596:20;:::i;:::-;16591:25;;16635:1;16625:35;;16640:18;;:::i;:::-;16625:35;16682:1;16679;16675:9;16670:14;;16505:185;;;;:::o;16696:220::-;16836:34;16832:1;16824:6;16820:14;16813:58;16905:3;16900:2;16892:6;16888:15;16881:28;16696:220;:::o;16922:366::-;17064:3;17085:67;17149:2;17144:3;17085:67;:::i;:::-;17078:74;;17161:93;17250:3;17161:93;:::i;:::-;17279:2;17274:3;17270:12;17263:19;;16922:366;;;:::o;17294:419::-;17460:4;17498:2;17487:9;17483:18;17475:26;;17547:9;17541:4;17537:20;17533:1;17522:9;17518:17;17511:47;17575:131;17701:4;17575:131;:::i;:::-;17567:139;;17294:419;;;:::o;17719:223::-;17859:34;17855:1;17847:6;17843:14;17836:58;17928:6;17923:2;17915:6;17911:15;17904:31;17719:223;:::o;17948:366::-;18090:3;18111:67;18175:2;18170:3;18111:67;:::i;:::-;18104:74;;18187:93;18276:3;18187:93;:::i;:::-;18305:2;18300:3;18296:12;18289:19;;17948:366;;;:::o;18320:419::-;18486:4;18524:2;18513:9;18509:18;18501:26;;18573:9;18567:4;18563:20;18559:1;18548:9;18544:17;18537:47;18601:131;18727:4;18601:131;:::i;:::-;18593:139;;18320:419;;;:::o;18745:221::-;18885:34;18881:1;18873:6;18869:14;18862:58;18954:4;18949:2;18941:6;18937:15;18930:29;18745:221;:::o;18972:366::-;19114:3;19135:67;19199:2;19194:3;19135:67;:::i;:::-;19128:74;;19211:93;19300:3;19211:93;:::i;:::-;19329:2;19324:3;19320:12;19313:19;;18972:366;;;:::o;19344:419::-;19510:4;19548:2;19537:9;19533:18;19525:26;;19597:9;19591:4;19587:20;19583:1;19572:9;19568:17;19561:47;19625:131;19751:4;19625:131;:::i;:::-;19617:139;;19344:419;;;:::o;19769:224::-;19909:34;19905:1;19897:6;19893:14;19886:58;19978:7;19973:2;19965:6;19961:15;19954:32;19769:224;:::o;19999:366::-;20141:3;20162:67;20226:2;20221:3;20162:67;:::i;:::-;20155:74;;20238:93;20327:3;20238:93;:::i;:::-;20356:2;20351:3;20347:12;20340:19;;19999:366;;;:::o;20371:419::-;20537:4;20575:2;20564:9;20560:18;20552:26;;20624:9;20618:4;20614:20;20610:1;20599:9;20595:17;20588:47;20652:131;20778:4;20652:131;:::i;:::-;20644:139;;20371:419;;;:::o;20796:222::-;20936:34;20932:1;20924:6;20920:14;20913:58;21005:5;21000:2;20992:6;20988:15;20981:30;20796:222;:::o;21024:366::-;21166:3;21187:67;21251:2;21246:3;21187:67;:::i;:::-;21180:74;;21263:93;21352:3;21263:93;:::i;:::-;21381:2;21376:3;21372:12;21365:19;;21024:366;;;:::o;21396:419::-;21562:4;21600:2;21589:9;21585:18;21577:26;;21649:9;21643:4;21639:20;21635:1;21624:9;21620:17;21613:47;21677:131;21803:4;21677:131;:::i;:::-;21669:139;;21396:419;;;:::o;21821:228::-;21961:34;21957:1;21949:6;21945:14;21938:58;22030:11;22025:2;22017:6;22013:15;22006:36;21821:228;:::o;22055:366::-;22197:3;22218:67;22282:2;22277:3;22218:67;:::i;:::-;22211:74;;22294:93;22383:3;22294:93;:::i;:::-;22412:2;22407:3;22403:12;22396:19;;22055:366;;;:::o;22427:419::-;22593:4;22631:2;22620:9;22616:18;22608:26;;22680:9;22674:4;22670:20;22666:1;22655:9;22651:17;22644:47;22708:131;22834:4;22708:131;:::i;:::-;22700:139;;22427:419;;;:::o;22852:194::-;22892:4;22912:20;22930:1;22912:20;:::i;:::-;22907:25;;22946:20;22964:1;22946:20;:::i;:::-;22941:25;;22990:1;22987;22983:9;22975:17;;23014:1;23008:4;23005:11;23002:37;;;23019:18;;:::i;:::-;23002:37;22852:194;;;;:::o;23052:143::-;23109:5;23140:6;23134:13;23125:22;;23156:33;23183:5;23156:33;:::i;:::-;23052:143;;;;:::o;23201:351::-;23271:6;23320:2;23308:9;23299:7;23295:23;23291:32;23288:119;;;23326:79;;:::i;:::-;23288:119;23446:1;23471:64;23527:7;23518:6;23507:9;23503:22;23471:64;:::i;:::-;23461:74;;23417:128;23201:351;;;;:::o;23558:85::-;23603:7;23632:5;23621:16;;23558:85;;;:::o;23649:158::-;23707:9;23740:61;23758:42;23767:32;23793:5;23767:32;:::i;:::-;23758:42;:::i;:::-;23740:61;:::i;:::-;23727:74;;23649:158;;;:::o;23813:147::-;23908:45;23947:5;23908:45;:::i;:::-;23903:3;23896:58;23813:147;;:::o;23966:114::-;24033:6;24067:5;24061:12;24051:22;;23966:114;;;:::o;24086:184::-;24185:11;24219:6;24214:3;24207:19;24259:4;24254:3;24250:14;24235:29;;24086:184;;;;:::o;24276:132::-;24343:4;24366:3;24358:11;;24396:4;24391:3;24387:14;24379:22;;24276:132;;;:::o;24414:108::-;24491:24;24509:5;24491:24;:::i;:::-;24486:3;24479:37;24414:108;;:::o;24528:179::-;24597:10;24618:46;24660:3;24652:6;24618:46;:::i;:::-;24696:4;24691:3;24687:14;24673:28;;24528:179;;;;:::o;24713:113::-;24783:4;24815;24810:3;24806:14;24798:22;;24713:113;;;:::o;24862:732::-;24981:3;25010:54;25058:5;25010:54;:::i;:::-;25080:86;25159:6;25154:3;25080:86;:::i;:::-;25073:93;;25190:56;25240:5;25190:56;:::i;:::-;25269:7;25300:1;25285:284;25310:6;25307:1;25304:13;25285:284;;;25386:6;25380:13;25413:63;25472:3;25457:13;25413:63;:::i;:::-;25406:70;;25499:60;25552:6;25499:60;:::i;:::-;25489:70;;25345:224;25332:1;25329;25325:9;25320:14;;25285:284;;;25289:14;25585:3;25578:10;;24986:608;;;24862:732;;;;:::o;25600:831::-;25863:4;25901:3;25890:9;25886:19;25878:27;;25915:71;25983:1;25972:9;25968:17;25959:6;25915:71;:::i;:::-;25996:80;26072:2;26061:9;26057:18;26048:6;25996:80;:::i;:::-;26123:9;26117:4;26113:20;26108:2;26097:9;26093:18;26086:48;26151:108;26254:4;26245:6;26151:108;:::i;:::-;26143:116;;26269:72;26337:2;26326:9;26322:18;26313:6;26269:72;:::i;:::-;26351:73;26419:3;26408:9;26404:19;26395:6;26351:73;:::i;:::-;25600:831;;;;;;;;:::o;26437:807::-;26686:4;26724:3;26713:9;26709:19;26701:27;;26738:71;26806:1;26795:9;26791:17;26782:6;26738:71;:::i;:::-;26819:72;26887:2;26876:9;26872:18;26863:6;26819:72;:::i;:::-;26901:80;26977:2;26966:9;26962:18;26953:6;26901:80;:::i;:::-;26991;27067:2;27056:9;27052:18;27043:6;26991:80;:::i;:::-;27081:73;27149:3;27138:9;27134:19;27125:6;27081:73;:::i;:::-;27164;27232:3;27221:9;27217:19;27208:6;27164:73;:::i;:::-;26437:807;;;;;;;;;:::o;27250:663::-;27338:6;27346;27354;27403:2;27391:9;27382:7;27378:23;27374:32;27371:119;;;27409:79;;:::i;:::-;27371:119;27529:1;27554:64;27610:7;27601:6;27590:9;27586:22;27554:64;:::i;:::-;27544:74;;27500:128;27667:2;27693:64;27749:7;27740:6;27729:9;27725:22;27693:64;:::i;:::-;27683:74;;27638:129;27806:2;27832:64;27888:7;27879:6;27868:9;27864:22;27832:64;:::i;:::-;27822:74;;27777:129;27250:663;;;;;:::o;27919:177::-;28059:29;28055:1;28047:6;28043:14;28036:53;27919:177;:::o;28102:366::-;28244:3;28265:67;28329:2;28324:3;28265:67;:::i;:::-;28258:74;;28341:93;28430:3;28341:93;:::i;:::-;28459:2;28454:3;28450:12;28443:19;;28102:366;;;:::o;28474:419::-;28640:4;28678:2;28667:9;28663:18;28655:26;;28727:9;28721:4;28717:20;28713:1;28702:9;28698:17;28691:47;28755:131;28881:4;28755:131;:::i;:::-;28747:139;;28474:419;;;:::o

Swarm Source

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