ETH Price: $3,301.26 (-3.46%)
Gas: 12 Gwei

Token

Amongoose (AMONGOOSE)
 

Overview

Max Total Supply

1,000,000,000,000 AMONGOOSE

Holders

251

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
crypto-taurus.eth
Balance
54,705.252766138 AMONGOOSE

Value
$0.00
0x2e4acd4d8051b9d4febdad7e2182f6a1fc4b16e2
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:
Amongoose

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-10
*/

/*
 ________  _____ ______   ________  ________   ________  ________  ________  ________  _______      
|\   __  \|\   _ \  _   \|\   __  \|\   ___  \|\   ____\|\   __  \|\   __  \|\   ____\|\  ___ \     
\ \  \|\  \ \  \\\__\ \  \ \  \|\  \ \  \\ \  \ \  \___|\ \  \|\  \ \  \|\  \ \  \___|\ \   __/|    
 \ \   __  \ \  \\|__| \  \ \  \\\  \ \  \\ \  \ \  \  __\ \  \\\  \ \  \\\  \ \_____  \ \  \_|/__  
  \ \  \ \  \ \  \    \ \  \ \  \\\  \ \  \\ \  \ \  \|\  \ \  \\\  \ \  \\\  \|____|\  \ \  \_|\ \ 
   \ \__\ \__\ \__\    \ \__\ \_______\ \__\\ \__\ \_______\ \_______\ \_______\____\_\  \ \_______\
    \|__|\|__|\|__|     \|__|\|_______|\|__| \|__|\|_______|\|_______|\|_______|\_________\|_______|
                                                                               \|_________|         
                                                                                                    
                                                                                amongoosetoken    
*/

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 Amongoose is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet;
    
    string private constant _name = "Amongoose";
    string private constant _symbol = "AMONGOOSE";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
        _feeAddrWallet = payable(0xAd6D32c29d811b1A620C27610947b39293C4D807);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        emit Transfer(address(0x0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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");
        _feeAddr1 = 1;
        _feeAddr2 = 10;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to], "bot");
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        _tokenTransfer(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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    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 _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {

    }
    
    function manualSwapAndSend() external {
        require(_msgSender() == _feeAddrWallet);
        
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0 && tradingOpen == true) {
            swapTokensForEth(contractBalance);
        }
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapAndSend","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":[],"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"}]

6080604052683635c9adc5dea000006000196200001d919062000430565b6000196200002c9190620003eb565b6007556000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055503480156200007257600080fd5b506000620000856200038c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073ad6d32c29d811b1a620c27610947b39293c4d807600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600260006200018f6200038c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620001e36200039460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003166200038c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200037e9190620003ce565b60405180910390a3620004c6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003c88162000426565b82525050565b6000602082019050620003e56000830184620003bd565b92915050565b6000620003f88262000426565b9150620004058362000426565b9250828210156200041b576200041a62000468565b5b828203905092915050565b6000819050919050565b60006200043d8262000426565b91506200044a8362000426565b9250826200045d576200045c62000497565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612ef180620004d66000396000f3fe6080604052600436106100ec5760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102dd578063b515566a1461031a578063c9567bf914610343578063dd62ed3e1461035a576100f3565b806370a0823114610233578063715018a6146102705780638da5cb5b1461028757806395d89b41146102b2576100f3565b806323b872dd116100c657806323b872dd1461018b578063273123b7146101c8578063313ce567146101f15780633ee0ce021461021c576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d610397565b60405161011a91906125bf565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190612143565b6103d4565b60405161015791906125a4565b60405180910390f35b34801561016c57600080fd5b506101756103f2565b6040516101829190612741565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad91906120f0565b610403565b6040516101bf91906125a4565b60405180910390f35b3480156101d457600080fd5b506101ef60048036038101906101ea9190612056565b6104dc565b005b3480156101fd57600080fd5b506102066105cc565b60405161021391906127b6565b60405180910390f35b34801561022857600080fd5b506102316105d5565b005b34801561023f57600080fd5b5061025a60048036038101906102559190612056565b610691565b6040516102679190612741565b60405180910390f35b34801561027c57600080fd5b506102856106e2565b005b34801561029357600080fd5b5061029c610835565b6040516102a991906124d6565b60405180910390f35b3480156102be57600080fd5b506102c761085e565b6040516102d491906125bf565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612143565b61089b565b60405161031191906125a4565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190612183565b6108b9565b005b34801561034f57600080fd5b506103586109e3565b005b34801561036657600080fd5b50610381600480360381019061037c91906120b0565b610f15565b60405161038e9190612741565b60405180910390f35b60606040518060400160405280600981526020017f416d6f6e676f6f73650000000000000000000000000000000000000000000000815250905090565b60006103e86103e1610f9c565b8484610fa4565b6001905092915050565b6000683635c9adc5dea00000905090565b600061041084848461116f565b6104d18461041c610f9c565b6104cc85604051806060016040528060288152602001612e9460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610482610f9c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d39092919063ffffffff16565b610fa4565b600190509392505050565b6104e4610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610568906126a1565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610616610f9c565b73ffffffffffffffffffffffffffffffffffffffff161461063657600080fd5b600061064130610691565b9050600081118015610666575060011515600d60149054906101000a900460ff161515145b156106755761067481611537565b5b6000479050600081111561068d5761068c816117bf565b5b5050565b60006106db600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182b565b9050919050565b6106ea610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e906126a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f414d4f4e474f4f53450000000000000000000000000000000000000000000000815250905090565b60006108af6108a8610f9c565b848461116f565b6001905092915050565b6108c1610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610945906126a1565b60405180910390fd5b60005b81518110156109df5760016006600084848151811061097357610972612afe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109d790612a57565b915050610951565b5050565b6109eb610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f906126a1565b60405180910390fd5b600d60149054906101000a900460ff1615610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612721565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5830600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000610fa4565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9e57600080fd5b505afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190612083565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c709190612083565b6040518363ffffffff1660e01b8152600401610c8d9291906124f1565b602060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190612083565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d6830610691565b600080610d73610835565b426040518863ffffffff1660e01b8152600401610d9596959493929190612543565b6060604051808303818588803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610de791906121f9565b5050506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ebf92919061251a565b602060405180830381600087803b158015610ed957600080fd5b505af1158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1191906121cc565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b90612701565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612621565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111629190612741565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d6906126e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906125e1565b60405180910390fd5b60008111611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906126c1565b60405180910390fd5b6001600981905550600a80819055506112a9610835565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561131757506112e7610835565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114c357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113c05750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690612661565b60405180910390fd5b600d60159054906101000a900460ff1615801561146a5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114825750600d60169054906101000a900460ff165b156114c257600061149230610691565b905060008111156114a7576114a681611537565b5b600047905060008111156114bf576114be476117bf565b5b50505b5b6114ce838383611899565b505050565b600083831115829061151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151291906125bf565b60405180910390fd5b506000838561152a9190612958565b9050809150509392505050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561156f5761156e612b2d565b5b60405190808252806020026020018201604052801561159d5781602001602082028036833780820191505090505b50905030816000815181106115b5576115b4612afe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561165757600080fd5b505afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f9190612083565b816001815181106116a3576116a2612afe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061170a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fa4565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161176e95949392919061275c565b600060405180830381600087803b15801561178857600080fd5b505af115801561179c573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611827573d6000803e3d6000fd5b5050565b6000600754821115611872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186990612601565b60405180910390fd5b600061187c6118a9565b905061189181846118d490919063ffffffff16565b915050919050565b6118a483838361191e565b505050565b60008060006118b6611ae9565b915091506118cd81836118d490919063ffffffff16565b9250505090565b600061191683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b4b565b905092915050565b60008060008060008061193087611bae565b95509550955095509550955061198e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c1690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a2385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6f81611cbe565b611a798483611d7b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ad69190612741565b60405180910390a3505050505050505050565b600080600060075490506000683635c9adc5dea000009050611b1f683635c9adc5dea000006007546118d490919063ffffffff16565b821015611b3e57600754683635c9adc5dea00000935093505050611b47565b81819350935050505b9091565b60008083118290611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8991906125bf565b60405180910390fd5b5060008385611ba191906128cd565b9050809150509392505050565b6000806000806000806000806000611bcb8a600954600a54611db5565b9250925092506000611bdb6118a9565b90506000806000611bee8e878787611e4b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611c5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114d3565b905092915050565b6000808284611c6f9190612877565b905083811015611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab90612641565b60405180910390fd5b8091505092915050565b6000611cc86118a9565b90506000611cdf8284611ed490919063ffffffff16565b9050611d3381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d9082600754611c1690919063ffffffff16565b600781905550611dab81600854611c6090919063ffffffff16565b6008819055505050565b600080600080611de16064611dd3888a611ed490919063ffffffff16565b6118d490919063ffffffff16565b90506000611e0b6064611dfd888b611ed490919063ffffffff16565b6118d490919063ffffffff16565b90506000611e3482611e26858c611c1690919063ffffffff16565b611c1690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611e648589611ed490919063ffffffff16565b90506000611e7b8689611ed490919063ffffffff16565b90506000611e928789611ed490919063ffffffff16565b90506000611ebb82611ead8587611c1690919063ffffffff16565b611c1690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611ee75760009050611f49565b60008284611ef591906128fe565b9050828482611f0491906128cd565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90612681565b60405180910390fd5b809150505b92915050565b6000611f62611f5d846127f6565b6127d1565b90508083825260208201905082856020860282011115611f8557611f84612b61565b5b60005b85811015611fb55781611f9b8882611fbf565b845260208401935060208301925050600181019050611f88565b5050509392505050565b600081359050611fce81612e4e565b92915050565b600081519050611fe381612e4e565b92915050565b600082601f830112611ffe57611ffd612b5c565b5b813561200e848260208601611f4f565b91505092915050565b60008151905061202681612e65565b92915050565b60008135905061203b81612e7c565b92915050565b60008151905061205081612e7c565b92915050565b60006020828403121561206c5761206b612b6b565b5b600061207a84828501611fbf565b91505092915050565b60006020828403121561209957612098612b6b565b5b60006120a784828501611fd4565b91505092915050565b600080604083850312156120c7576120c6612b6b565b5b60006120d585828601611fbf565b92505060206120e685828601611fbf565b9150509250929050565b60008060006060848603121561210957612108612b6b565b5b600061211786828701611fbf565b935050602061212886828701611fbf565b92505060406121398682870161202c565b9150509250925092565b6000806040838503121561215a57612159612b6b565b5b600061216885828601611fbf565b92505060206121798582860161202c565b9150509250929050565b60006020828403121561219957612198612b6b565b5b600082013567ffffffffffffffff8111156121b7576121b6612b66565b5b6121c384828501611fe9565b91505092915050565b6000602082840312156121e2576121e1612b6b565b5b60006121f084828501612017565b91505092915050565b60008060006060848603121561221257612211612b6b565b5b600061222086828701612041565b935050602061223186828701612041565b925050604061224286828701612041565b9150509250925092565b60006122588383612264565b60208301905092915050565b61226d8161298c565b82525050565b61227c8161298c565b82525050565b600061228d82612832565b6122978185612855565b93506122a283612822565b8060005b838110156122d35781516122ba888261224c565b97506122c583612848565b9250506001810190506122a6565b5085935050505092915050565b6122e98161299e565b82525050565b6122f8816129e1565b82525050565b60006123098261283d565b6123138185612866565b93506123238185602086016129f3565b61232c81612b70565b840191505092915050565b6000612344602383612866565b915061234f82612b81565b604082019050919050565b6000612367602a83612866565b915061237282612bd0565b604082019050919050565b600061238a602283612866565b915061239582612c1f565b604082019050919050565b60006123ad601b83612866565b91506123b882612c6e565b602082019050919050565b60006123d0600383612866565b91506123db82612c97565b602082019050919050565b60006123f3602183612866565b91506123fe82612cc0565b604082019050919050565b6000612416602083612866565b915061242182612d0f565b602082019050919050565b6000612439602983612866565b915061244482612d38565b604082019050919050565b600061245c602583612866565b915061246782612d87565b604082019050919050565b600061247f602483612866565b915061248a82612dd6565b604082019050919050565b60006124a2601783612866565b91506124ad82612e25565b602082019050919050565b6124c1816129ca565b82525050565b6124d0816129d4565b82525050565b60006020820190506124eb6000830184612273565b92915050565b60006040820190506125066000830185612273565b6125136020830184612273565b9392505050565b600060408201905061252f6000830185612273565b61253c60208301846124b8565b9392505050565b600060c0820190506125586000830189612273565b61256560208301886124b8565b61257260408301876122ef565b61257f60608301866122ef565b61258c6080830185612273565b61259960a08301846124b8565b979650505050505050565b60006020820190506125b960008301846122e0565b92915050565b600060208201905081810360008301526125d981846122fe565b905092915050565b600060208201905081810360008301526125fa81612337565b9050919050565b6000602082019050818103600083015261261a8161235a565b9050919050565b6000602082019050818103600083015261263a8161237d565b9050919050565b6000602082019050818103600083015261265a816123a0565b9050919050565b6000602082019050818103600083015261267a816123c3565b9050919050565b6000602082019050818103600083015261269a816123e6565b9050919050565b600060208201905081810360008301526126ba81612409565b9050919050565b600060208201905081810360008301526126da8161242c565b9050919050565b600060208201905081810360008301526126fa8161244f565b9050919050565b6000602082019050818103600083015261271a81612472565b9050919050565b6000602082019050818103600083015261273a81612495565b9050919050565b600060208201905061275660008301846124b8565b92915050565b600060a08201905061277160008301886124b8565b61277e60208301876122ef565b81810360408301526127908186612282565b905061279f6060830185612273565b6127ac60808301846124b8565b9695505050505050565b60006020820190506127cb60008301846124c7565b92915050565b60006127db6127ec565b90506127e78282612a26565b919050565b6000604051905090565b600067ffffffffffffffff82111561281157612810612b2d565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612882826129ca565b915061288d836129ca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128c2576128c1612aa0565b5b828201905092915050565b60006128d8826129ca565b91506128e3836129ca565b9250826128f3576128f2612acf565b5b828204905092915050565b6000612909826129ca565b9150612914836129ca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561294d5761294c612aa0565b5b828202905092915050565b6000612963826129ca565b915061296e836129ca565b92508282101561298157612980612aa0565b5b828203905092915050565b6000612997826129aa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129ec826129ca565b9050919050565b60005b83811015612a115780820151818401526020810190506129f6565b83811115612a20576000848401525b50505050565b612a2f82612b70565b810181811067ffffffffffffffff82111715612a4e57612a4d612b2d565b5b80604052505050565b6000612a62826129ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a9557612a94612aa0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f626f740000000000000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612e578161298c565b8114612e6257600080fd5b50565b612e6e8161299e565b8114612e7957600080fd5b50565b612e85816129ca565b8114612e9057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb90f780dcbfe291e5c5c58c85352d912536e12fa9ee497bb8f62e14223c648764736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102dd578063b515566a1461031a578063c9567bf914610343578063dd62ed3e1461035a576100f3565b806370a0823114610233578063715018a6146102705780638da5cb5b1461028757806395d89b41146102b2576100f3565b806323b872dd116100c657806323b872dd1461018b578063273123b7146101c8578063313ce567146101f15780633ee0ce021461021c576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d610397565b60405161011a91906125bf565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190612143565b6103d4565b60405161015791906125a4565b60405180910390f35b34801561016c57600080fd5b506101756103f2565b6040516101829190612741565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad91906120f0565b610403565b6040516101bf91906125a4565b60405180910390f35b3480156101d457600080fd5b506101ef60048036038101906101ea9190612056565b6104dc565b005b3480156101fd57600080fd5b506102066105cc565b60405161021391906127b6565b60405180910390f35b34801561022857600080fd5b506102316105d5565b005b34801561023f57600080fd5b5061025a60048036038101906102559190612056565b610691565b6040516102679190612741565b60405180910390f35b34801561027c57600080fd5b506102856106e2565b005b34801561029357600080fd5b5061029c610835565b6040516102a991906124d6565b60405180910390f35b3480156102be57600080fd5b506102c761085e565b6040516102d491906125bf565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612143565b61089b565b60405161031191906125a4565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190612183565b6108b9565b005b34801561034f57600080fd5b506103586109e3565b005b34801561036657600080fd5b50610381600480360381019061037c91906120b0565b610f15565b60405161038e9190612741565b60405180910390f35b60606040518060400160405280600981526020017f416d6f6e676f6f73650000000000000000000000000000000000000000000000815250905090565b60006103e86103e1610f9c565b8484610fa4565b6001905092915050565b6000683635c9adc5dea00000905090565b600061041084848461116f565b6104d18461041c610f9c565b6104cc85604051806060016040528060288152602001612e9460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610482610f9c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d39092919063ffffffff16565b610fa4565b600190509392505050565b6104e4610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610568906126a1565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610616610f9c565b73ffffffffffffffffffffffffffffffffffffffff161461063657600080fd5b600061064130610691565b9050600081118015610666575060011515600d60149054906101000a900460ff161515145b156106755761067481611537565b5b6000479050600081111561068d5761068c816117bf565b5b5050565b60006106db600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182b565b9050919050565b6106ea610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e906126a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f414d4f4e474f4f53450000000000000000000000000000000000000000000000815250905090565b60006108af6108a8610f9c565b848461116f565b6001905092915050565b6108c1610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610945906126a1565b60405180910390fd5b60005b81518110156109df5760016006600084848151811061097357610972612afe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109d790612a57565b915050610951565b5050565b6109eb610f9c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f906126a1565b60405180910390fd5b600d60149054906101000a900460ff1615610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612721565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5830600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000610fa4565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9e57600080fd5b505afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190612083565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c709190612083565b6040518363ffffffff1660e01b8152600401610c8d9291906124f1565b602060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190612083565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d6830610691565b600080610d73610835565b426040518863ffffffff1660e01b8152600401610d9596959493929190612543565b6060604051808303818588803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610de791906121f9565b5050506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ebf92919061251a565b602060405180830381600087803b158015610ed957600080fd5b505af1158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1191906121cc565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b90612701565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612621565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111629190612741565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d6906126e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906125e1565b60405180910390fd5b60008111611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906126c1565b60405180910390fd5b6001600981905550600a80819055506112a9610835565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561131757506112e7610835565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114c357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113c05750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690612661565b60405180910390fd5b600d60159054906101000a900460ff1615801561146a5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114825750600d60169054906101000a900460ff165b156114c257600061149230610691565b905060008111156114a7576114a681611537565b5b600047905060008111156114bf576114be476117bf565b5b50505b5b6114ce838383611899565b505050565b600083831115829061151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151291906125bf565b60405180910390fd5b506000838561152a9190612958565b9050809150509392505050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561156f5761156e612b2d565b5b60405190808252806020026020018201604052801561159d5781602001602082028036833780820191505090505b50905030816000815181106115b5576115b4612afe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561165757600080fd5b505afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f9190612083565b816001815181106116a3576116a2612afe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061170a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fa4565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161176e95949392919061275c565b600060405180830381600087803b15801561178857600080fd5b505af115801561179c573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611827573d6000803e3d6000fd5b5050565b6000600754821115611872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186990612601565b60405180910390fd5b600061187c6118a9565b905061189181846118d490919063ffffffff16565b915050919050565b6118a483838361191e565b505050565b60008060006118b6611ae9565b915091506118cd81836118d490919063ffffffff16565b9250505090565b600061191683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b4b565b905092915050565b60008060008060008061193087611bae565b95509550955095509550955061198e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c1690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a2385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6f81611cbe565b611a798483611d7b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ad69190612741565b60405180910390a3505050505050505050565b600080600060075490506000683635c9adc5dea000009050611b1f683635c9adc5dea000006007546118d490919063ffffffff16565b821015611b3e57600754683635c9adc5dea00000935093505050611b47565b81819350935050505b9091565b60008083118290611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8991906125bf565b60405180910390fd5b5060008385611ba191906128cd565b9050809150509392505050565b6000806000806000806000806000611bcb8a600954600a54611db5565b9250925092506000611bdb6118a9565b90506000806000611bee8e878787611e4b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611c5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114d3565b905092915050565b6000808284611c6f9190612877565b905083811015611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab90612641565b60405180910390fd5b8091505092915050565b6000611cc86118a9565b90506000611cdf8284611ed490919063ffffffff16565b9050611d3381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d9082600754611c1690919063ffffffff16565b600781905550611dab81600854611c6090919063ffffffff16565b6008819055505050565b600080600080611de16064611dd3888a611ed490919063ffffffff16565b6118d490919063ffffffff16565b90506000611e0b6064611dfd888b611ed490919063ffffffff16565b6118d490919063ffffffff16565b90506000611e3482611e26858c611c1690919063ffffffff16565b611c1690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611e648589611ed490919063ffffffff16565b90506000611e7b8689611ed490919063ffffffff16565b90506000611e928789611ed490919063ffffffff16565b90506000611ebb82611ead8587611c1690919063ffffffff16565b611c1690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611ee75760009050611f49565b60008284611ef591906128fe565b9050828482611f0491906128cd565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90612681565b60405180910390fd5b809150505b92915050565b6000611f62611f5d846127f6565b6127d1565b90508083825260208201905082856020860282011115611f8557611f84612b61565b5b60005b85811015611fb55781611f9b8882611fbf565b845260208401935060208301925050600181019050611f88565b5050509392505050565b600081359050611fce81612e4e565b92915050565b600081519050611fe381612e4e565b92915050565b600082601f830112611ffe57611ffd612b5c565b5b813561200e848260208601611f4f565b91505092915050565b60008151905061202681612e65565b92915050565b60008135905061203b81612e7c565b92915050565b60008151905061205081612e7c565b92915050565b60006020828403121561206c5761206b612b6b565b5b600061207a84828501611fbf565b91505092915050565b60006020828403121561209957612098612b6b565b5b60006120a784828501611fd4565b91505092915050565b600080604083850312156120c7576120c6612b6b565b5b60006120d585828601611fbf565b92505060206120e685828601611fbf565b9150509250929050565b60008060006060848603121561210957612108612b6b565b5b600061211786828701611fbf565b935050602061212886828701611fbf565b92505060406121398682870161202c565b9150509250925092565b6000806040838503121561215a57612159612b6b565b5b600061216885828601611fbf565b92505060206121798582860161202c565b9150509250929050565b60006020828403121561219957612198612b6b565b5b600082013567ffffffffffffffff8111156121b7576121b6612b66565b5b6121c384828501611fe9565b91505092915050565b6000602082840312156121e2576121e1612b6b565b5b60006121f084828501612017565b91505092915050565b60008060006060848603121561221257612211612b6b565b5b600061222086828701612041565b935050602061223186828701612041565b925050604061224286828701612041565b9150509250925092565b60006122588383612264565b60208301905092915050565b61226d8161298c565b82525050565b61227c8161298c565b82525050565b600061228d82612832565b6122978185612855565b93506122a283612822565b8060005b838110156122d35781516122ba888261224c565b97506122c583612848565b9250506001810190506122a6565b5085935050505092915050565b6122e98161299e565b82525050565b6122f8816129e1565b82525050565b60006123098261283d565b6123138185612866565b93506123238185602086016129f3565b61232c81612b70565b840191505092915050565b6000612344602383612866565b915061234f82612b81565b604082019050919050565b6000612367602a83612866565b915061237282612bd0565b604082019050919050565b600061238a602283612866565b915061239582612c1f565b604082019050919050565b60006123ad601b83612866565b91506123b882612c6e565b602082019050919050565b60006123d0600383612866565b91506123db82612c97565b602082019050919050565b60006123f3602183612866565b91506123fe82612cc0565b604082019050919050565b6000612416602083612866565b915061242182612d0f565b602082019050919050565b6000612439602983612866565b915061244482612d38565b604082019050919050565b600061245c602583612866565b915061246782612d87565b604082019050919050565b600061247f602483612866565b915061248a82612dd6565b604082019050919050565b60006124a2601783612866565b91506124ad82612e25565b602082019050919050565b6124c1816129ca565b82525050565b6124d0816129d4565b82525050565b60006020820190506124eb6000830184612273565b92915050565b60006040820190506125066000830185612273565b6125136020830184612273565b9392505050565b600060408201905061252f6000830185612273565b61253c60208301846124b8565b9392505050565b600060c0820190506125586000830189612273565b61256560208301886124b8565b61257260408301876122ef565b61257f60608301866122ef565b61258c6080830185612273565b61259960a08301846124b8565b979650505050505050565b60006020820190506125b960008301846122e0565b92915050565b600060208201905081810360008301526125d981846122fe565b905092915050565b600060208201905081810360008301526125fa81612337565b9050919050565b6000602082019050818103600083015261261a8161235a565b9050919050565b6000602082019050818103600083015261263a8161237d565b9050919050565b6000602082019050818103600083015261265a816123a0565b9050919050565b6000602082019050818103600083015261267a816123c3565b9050919050565b6000602082019050818103600083015261269a816123e6565b9050919050565b600060208201905081810360008301526126ba81612409565b9050919050565b600060208201905081810360008301526126da8161242c565b9050919050565b600060208201905081810360008301526126fa8161244f565b9050919050565b6000602082019050818103600083015261271a81612472565b9050919050565b6000602082019050818103600083015261273a81612495565b9050919050565b600060208201905061275660008301846124b8565b92915050565b600060a08201905061277160008301886124b8565b61277e60208301876122ef565b81810360408301526127908186612282565b905061279f6060830185612273565b6127ac60808301846124b8565b9695505050505050565b60006020820190506127cb60008301846124c7565b92915050565b60006127db6127ec565b90506127e78282612a26565b919050565b6000604051905090565b600067ffffffffffffffff82111561281157612810612b2d565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612882826129ca565b915061288d836129ca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128c2576128c1612aa0565b5b828201905092915050565b60006128d8826129ca565b91506128e3836129ca565b9250826128f3576128f2612acf565b5b828204905092915050565b6000612909826129ca565b9150612914836129ca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561294d5761294c612aa0565b5b828202905092915050565b6000612963826129ca565b915061296e836129ca565b92508282101561298157612980612aa0565b5b828203905092915050565b6000612997826129aa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129ec826129ca565b9050919050565b60005b83811015612a115780820151818401526020810190506129f6565b83811115612a20576000848401525b50505050565b612a2f82612b70565b810181811067ffffffffffffffff82111715612a4e57612a4d612b2d565b5b80604052505050565b6000612a62826129ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a9557612a94612aa0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f626f740000000000000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612e578161298c565b8114612e6257600080fd5b50565b612e6e8161299e565b8114612e7957600080fd5b50565b612e85816129ca565b8114612e9057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb90f780dcbfe291e5c5c58c85352d912536e12fa9ee497bb8f62e14223c648764736f6c63430008070033

Deployed Bytecode Sourcemap

4501:9291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5992:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6844:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6269:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7013:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10471:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6178:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11649:443;;;;;;;;;;;;;:::i;:::-;;6372:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3582:148;;;;;;;;;;;;;:::i;:::-;;3368:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6083:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6518:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10295:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9545:738;;;;;;;;;;;;;:::i;:::-;;6693:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5992:83;6029:13;6062:5;;;;;;;;;;;;;;;;;6055:12;;5992:83;:::o;6844:161::-;6919:4;6936:39;6945:12;:10;:12::i;:::-;6959:7;6968:6;6936:8;:39::i;:::-;6993:4;6986:11;;6844:161;;;;:::o;6269:95::-;6322:7;4954:12;6342:14;;6269:95;:::o;7013:313::-;7111:4;7128:36;7138:6;7146:9;7157:6;7128:9;:36::i;:::-;7175:121;7184:6;7192:12;:10;:12::i;:::-;7206:89;7244:6;7206:89;;;;;;;;;;;;;;;;;:11;:19;7218:6;7206:19;;;;;;;;;;;;;;;:33;7226:12;:10;:12::i;:::-;7206:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7175:8;:121::i;:::-;7314:4;7307:11;;7013:313;;;;;:::o;10471:88::-;3505:12;:10;:12::i;:::-;3495:22;;:6;;;;;;;;;;:22;;;3487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10546:5:::1;10531:4;:12;10536:6;10531:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10471:88:::0;:::o;6178:83::-;6219:5;5320:1;6237:16;;6178:83;:::o;11649:443::-;11722:14;;;;;;;;;;;11706:30;;:12;:10;:12::i;:::-;:30;;;11698:39;;;;;;11758:23;11784:24;11802:4;11784:9;:24::i;:::-;11758:50;;11841:1;11823:15;:19;:42;;;;;11861:4;11846:19;;:11;;;;;;;;;;;:19;;;11823:42;11819:108;;;11882:33;11899:15;11882:16;:33::i;:::-;11819:108;11937:26;11966:21;11937:50;;12023:1;12002:18;:22;11998:87;;;12041:32;12054:18;12041:12;:32::i;:::-;11998:87;11687:405;;11649:443::o;6372:138::-;6438:7;6465:37;6485:7;:16;6493:7;6485:16;;;;;;;;;;;;;;;;6465:19;:37::i;:::-;6458:44;;6372:138;;;:::o;3582:148::-;3505:12;:10;:12::i;:::-;3495:22;;:6;;;;;;;;;;:22;;;3487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3689:1:::1;3652:40;;3673:6;::::0;::::1;;;;;;;;3652:40;;;;;;;;;;;;3720:1;3703:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3582:148::o:0;3368:79::-;3406:7;3433:6;;;;;;;;;;;3426:13;;3368:79;:::o;6083:87::-;6122:13;6155:7;;;;;;;;;;;;;;;;;6148:14;;6083:87;:::o;6518:167::-;6596:4;6613:42;6623:12;:10;:12::i;:::-;6637:9;6648:6;6613:9;:42::i;:::-;6673:4;6666:11;;6518:167;;;;:::o;10295:164::-;3505:12;:10;:12::i;:::-;3495:22;;:6;;;;;;;;;;:22;;;3487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10369:6:::1;10364:88;10385:5;:12;10381:1;:16;10364:88;;;10436:4;10419;:14;10424:5;10430:1;10424:8;;;;;;;;:::i;:::-;;;;;;;;10419:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10399:3;;;;;:::i;:::-;;;;10364:88;;;;10295:164:::0;:::o;9545:738::-;3505:12;:10;:12::i;:::-;3495:22;;:6;;;;;;;;;;:22;;;3487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9609:11:::1;;;;;;;;;;;9608:12;9600:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9658:35;9715:42;9658:100;;9787:16;9769:15;;:34;;;;;;;;;;;;;;;;;;9814:58;9831:4;9846:15;;;;;;;;;;;4954:12;9814:8;:58::i;:::-;9917:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9899:56;;;9964:4;9971:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9899:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9883:13;;:112;;;;;;;;;;;;;;;;;;10006:15;;;;;;;;;;;:31;;;10045:21;10076:4;10082:24;10100:4;10082:9;:24::i;:::-;10107:1;10109::::0;10111:7:::1;:5;:7::i;:::-;10119:15;10006:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10160:4;10146:11;;:18;;;;;;;;;;;;;;;;;;10189:4;10175:11;;:18;;;;;;;;;;;;;;;;;;10211:13;;;;;;;;;;;10204:29;;;10242:15;;;;;;;;;;;10260:14;10204:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9589:694;9545:738::o:0;6693:143::-;6774:7;6801:11;:18;6813:5;6801:18;;;;;;;;;;;;;;;:27;6820:7;6801:27;;;;;;;;;;;;;;;;6794:34;;6693:143;;;;:::o;1088:98::-;1141:7;1168:10;1161:17;;1088:98;:::o;7596:335::-;7706:1;7689:19;;:5;:19;;;;7681:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7787:1;7768:21;;:7;:21;;;;7760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7869:6;7839:11;:18;7851:5;7839:18;;;;;;;;;;;;;;;:27;7858:7;7839:27;;;;;;;;;;;;;;;:36;;;;7907:7;7891:32;;7900:5;7891:32;;;7916:6;7891:32;;;;;;:::i;:::-;;;;;;;;7596:335;;;:::o;7939:991::-;8043:1;8027:18;;:4;:18;;;;8019:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8120:1;8106:16;;:2;:16;;;;8098:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8190:1;8181:6;:10;8173:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8260:1;8248:9;:13;;;;8284:2;8272:9;:14;;;;8309:7;:5;:7::i;:::-;8301:15;;:4;:15;;;;:32;;;;;8326:7;:5;:7::i;:::-;8320:13;;:2;:13;;;;8301:32;8297:583;;;8359:4;:10;8364:4;8359:10;;;;;;;;;;;;;;;;;;;;;;;;;8358:11;:24;;;;;8374:4;:8;8379:2;8374:8;;;;;;;;;;;;;;;;;;;;;;;;;8373:9;8358:24;8350:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;8410:6;;;;;;;;;;;8409:7;:32;;;;;8428:13;;;;;;;;;;;8420:21;;:4;:21;;;;8409:32;:47;;;;;8445:11;;;;;;;;;;;8409:47;8405:464;;;8477:28;8508:24;8526:4;8508:9;:24::i;:::-;8477:55;;8578:1;8555:20;:24;8551:111;;;8604:38;8621:20;8604:16;:38::i;:::-;8551:111;8680:26;8709:21;8680:50;;8773:1;8752:18;:22;8749:105;;;8799:35;8812:21;8799:12;:35::i;:::-;8749:105;8458:411;;8405:464;8297:583;8890:32;8905:4;8911:2;8915:6;8890:14;:32::i;:::-;7939:991;;;:::o;2225:190::-;2311:7;2344:1;2339;:6;;2347:12;2331:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2371:9;2387:1;2383;:5;;;;:::i;:::-;2371:17;;2406:1;2399:8;;;2225:190;;;;;:::o;8938:483::-;5570:4;5561:6;;:13;;;;;;;;;;;;;;;;;;9016:21:::1;9054:1;9040:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9016:40;;9085:4;9067;9072:1;9067:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9111:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9101:4;9106:1;9101:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9144:62;9161:4;9176:15;;;;;;;;;;;9194:11;9144:8;:62::i;:::-;9217:15;;;;;;;;;;;:66;;;9298:11;9324:1;9340:4;9367;9387:15;9217:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9005:416;5606:5:::0;5597:6;;:14;;;;;;;;;;;;;;;;;;8938:483;:::o;9437:96::-;9494:14;;;;;;;;;;;:23;;:31;9518:6;9494:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9437:96;:::o;7334:254::-;7401:7;7440;;7429;:18;;7421:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7505:19;7528:10;:8;:10::i;:::-;7505:33;;7556:24;7568:11;7556:7;:11;;:24;;;;:::i;:::-;7549:31;;;7334:254;;;:::o;10575:146::-;10669:44;10687:6;10695:9;10706:6;10669:17;:44::i;:::-;10575:146;;;:::o;13356:163::-;13397:7;13418:15;13435;13454:19;:17;:19::i;:::-;13417:56;;;;13491:20;13503:7;13491;:11;;:20;;;;:::i;:::-;13484:27;;;;13356:163;:::o;2677:132::-;2735:7;2762:39;2766:1;2769;2762:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2755:46;;2677:132;;;;:::o;10729:488::-;10828:15;10845:23;10870:12;10884:23;10909:12;10923:13;10940:19;10951:7;10940:10;:19::i;:::-;10827:132;;;;;;;;;;;;10988:28;11008:7;10988;:15;10996:6;10988:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10970:7;:15;10978:6;10970:15;;;;;;;;;;;;;;;:46;;;;11048:39;11071:15;11048:7;:18;11056:9;11048:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11027:7;:18;11035:9;11027:18;;;;;;;;;;;;;;;:60;;;;11099:16;11109:5;11099:9;:16::i;:::-;11126:23;11138:4;11144;11126:11;:23::i;:::-;11182:9;11165:44;;11174:6;11165:44;;;11193:15;11165:44;;;;;;:::i;:::-;;;;;;;;10816:401;;;;;;10729:488;;;:::o;13527:262::-;13577:7;13586;13606:15;13624:7;;13606:25;;13642:15;4954:12;13642:25;;13698:20;4954:12;13698:7;;:11;;:20;;;;:::i;:::-;13688:7;:30;13684:61;;;13728:7;;4954:12;13720:25;;;;;;;;13684:61;13764:7;13773;13756:25;;;;;;13527:262;;;:::o;2817:189::-;2903:7;2935:1;2931;:5;2938:12;2923:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2962:9;2978:1;2974;:5;;;;:::i;:::-;2962:17;;2997:1;2990:8;;;2817:189;;;;;:::o;12104:471::-;12163:7;12172;12181;12190;12199;12208;12229:23;12254:12;12268:13;12285:42;12297:7;12306:9;;12317;;12285:11;:42::i;:::-;12228:99;;;;;;12338:19;12361:10;:8;:10::i;:::-;12338:33;;12383:15;12400:23;12425:12;12441:46;12453:7;12462:4;12468:5;12475:11;12441;:46::i;:::-;12382:105;;;;;;12506:7;12515:15;12532:4;12538:15;12555:4;12561:5;12498:69;;;;;;;;;;;;;;;;;;;12104:471;;;;;;;:::o;2081:136::-;2139:7;2166:43;2170:1;2173;2166:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2159:50;;2081:136;;;;:::o;1894:179::-;1952:7;1972:9;1988:1;1984;:5;;;;:::i;:::-;1972:17;;2013:1;2008;:6;;2000:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2064:1;2057:8;;;1894:179;;;;:::o;11225:212::-;11278:19;11301:10;:8;:10::i;:::-;11278:33;;11322:13;11338:22;11348:11;11338:5;:9;;:22;;;;:::i;:::-;11322:38;;11396:33;11423:5;11396:7;:22;11412:4;11396:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11371:7;:22;11387:4;11371:22;;;;;;;;;;;;;;;:58;;;;11267:170;;11225:212;:::o;11445:147::-;11523:17;11535:4;11523:7;;:11;;:17;;;;:::i;:::-;11513:7;:27;;;;11564:20;11579:4;11564:10;;:14;;:20;;;;:::i;:::-;11551:10;:33;;;;11445:147;;:::o;12583:351::-;12676:7;12685;12694;12714:12;12729:28;12753:3;12729:19;12741:6;12729:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12714:43;;12768:13;12784:29;12809:3;12784:20;12796:7;12784;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12768:45;;12824:23;12850:28;12872:5;12850:17;12862:4;12850:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12824:54;;12897:15;12914:4;12920:5;12889:37;;;;;;;;;12583:351;;;;;;;:::o;12942:409::-;13052:7;13061;13070;13090:15;13108:24;13120:11;13108:7;:11;;:24;;;;:::i;:::-;13090:42;;13143:12;13158:21;13167:11;13158:4;:8;;:21;;;;:::i;:::-;13143:36;;13190:13;13206:22;13216:11;13206:5;:9;;:22;;;;:::i;:::-;13190:38;;13239:23;13265:28;13287:5;13265:17;13277:4;13265:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13239:54;;13312:7;13321:15;13338:4;13304:39;;;;;;;;;;12942:409;;;;;;;;:::o;2423:246::-;2481:7;2510:1;2505;:6;2501:47;;;2535:1;2528:8;;;;2501:47;2558:9;2574:1;2570;:5;;;;:::i;:::-;2558:17;;2603:1;2598;2594;:5;;;;:::i;:::-;:10;2586:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2660:1;2653:8;;;2423:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:663::-;5137:6;5145;5153;5202:2;5190:9;5181:7;5177:23;5173:32;5170:119;;;5208:79;;:::i;:::-;5170:119;5328:1;5353:64;5409:7;5400:6;5389:9;5385:22;5353:64;:::i;:::-;5343:74;;5299:128;5466:2;5492:64;5548:7;5539:6;5528:9;5524:22;5492:64;:::i;:::-;5482:74;;5437:129;5605:2;5631:64;5687:7;5678:6;5667:9;5663:22;5631:64;:::i;:::-;5621:74;;5576:129;5049:663;;;;;:::o;5718:179::-;5787:10;5808:46;5850:3;5842:6;5808:46;:::i;:::-;5886:4;5881:3;5877:14;5863:28;;5718:179;;;;:::o;5903:108::-;5980:24;5998:5;5980:24;:::i;:::-;5975:3;5968:37;5903:108;;:::o;6017:118::-;6104:24;6122:5;6104:24;:::i;:::-;6099:3;6092:37;6017:118;;:::o;6171:732::-;6290:3;6319:54;6367:5;6319:54;:::i;:::-;6389:86;6468:6;6463:3;6389:86;:::i;:::-;6382:93;;6499:56;6549:5;6499:56;:::i;:::-;6578:7;6609:1;6594:284;6619:6;6616:1;6613:13;6594:284;;;6695:6;6689:13;6722:63;6781:3;6766:13;6722:63;:::i;:::-;6715:70;;6808:60;6861:6;6808:60;:::i;:::-;6798:70;;6654:224;6641:1;6638;6634:9;6629:14;;6594:284;;;6598:14;6894:3;6887:10;;6295:608;;;6171:732;;;;:::o;6909:109::-;6990:21;7005:5;6990:21;:::i;:::-;6985:3;6978:34;6909:109;;:::o;7024:147::-;7119:45;7158:5;7119:45;:::i;:::-;7114:3;7107:58;7024:147;;:::o;7177:364::-;7265:3;7293:39;7326:5;7293:39;:::i;:::-;7348:71;7412:6;7407:3;7348:71;:::i;:::-;7341:78;;7428:52;7473:6;7468:3;7461:4;7454:5;7450:16;7428:52;:::i;:::-;7505:29;7527:6;7505:29;:::i;:::-;7500:3;7496:39;7489:46;;7269:272;7177:364;;;;:::o;7547:366::-;7689:3;7710:67;7774:2;7769:3;7710:67;:::i;:::-;7703:74;;7786:93;7875:3;7786:93;:::i;:::-;7904:2;7899:3;7895:12;7888:19;;7547:366;;;:::o;7919:::-;8061:3;8082:67;8146:2;8141:3;8082:67;:::i;:::-;8075:74;;8158:93;8247:3;8158:93;:::i;:::-;8276:2;8271:3;8267:12;8260:19;;7919:366;;;:::o;8291:::-;8433:3;8454:67;8518:2;8513:3;8454:67;:::i;:::-;8447:74;;8530:93;8619:3;8530:93;:::i;:::-;8648:2;8643:3;8639:12;8632:19;;8291:366;;;:::o;8663:::-;8805:3;8826:67;8890:2;8885:3;8826:67;:::i;:::-;8819:74;;8902:93;8991:3;8902:93;:::i;:::-;9020:2;9015:3;9011:12;9004:19;;8663:366;;;:::o;9035:365::-;9177:3;9198:66;9262:1;9257:3;9198:66;:::i;:::-;9191:73;;9273:93;9362:3;9273:93;:::i;:::-;9391:2;9386:3;9382:12;9375:19;;9035:365;;;:::o;9406:366::-;9548:3;9569:67;9633:2;9628:3;9569:67;:::i;:::-;9562:74;;9645:93;9734:3;9645:93;:::i;:::-;9763:2;9758:3;9754:12;9747:19;;9406:366;;;:::o;9778:::-;9920:3;9941:67;10005:2;10000:3;9941:67;:::i;:::-;9934:74;;10017:93;10106:3;10017:93;:::i;:::-;10135:2;10130:3;10126:12;10119:19;;9778:366;;;:::o;10150:::-;10292:3;10313:67;10377:2;10372:3;10313:67;:::i;:::-;10306:74;;10389:93;10478:3;10389:93;:::i;:::-;10507:2;10502:3;10498:12;10491:19;;10150:366;;;:::o;10522:::-;10664:3;10685:67;10749:2;10744:3;10685:67;:::i;:::-;10678:74;;10761:93;10850:3;10761:93;:::i;:::-;10879:2;10874:3;10870:12;10863:19;;10522:366;;;:::o;10894:::-;11036:3;11057:67;11121:2;11116:3;11057:67;:::i;:::-;11050:74;;11133:93;11222:3;11133:93;:::i;:::-;11251:2;11246:3;11242:12;11235:19;;10894:366;;;:::o;11266:::-;11408:3;11429:67;11493:2;11488:3;11429:67;:::i;:::-;11422:74;;11505:93;11594:3;11505:93;:::i;:::-;11623:2;11618:3;11614:12;11607:19;;11266:366;;;:::o;11638:118::-;11725:24;11743:5;11725:24;:::i;:::-;11720:3;11713:37;11638:118;;:::o;11762:112::-;11845:22;11861:5;11845:22;:::i;:::-;11840:3;11833:35;11762:112;;:::o;11880:222::-;11973:4;12011:2;12000:9;11996:18;11988:26;;12024:71;12092:1;12081:9;12077:17;12068:6;12024:71;:::i;:::-;11880:222;;;;:::o;12108:332::-;12229:4;12267:2;12256:9;12252:18;12244:26;;12280:71;12348:1;12337:9;12333:17;12324:6;12280:71;:::i;:::-;12361:72;12429:2;12418:9;12414:18;12405:6;12361:72;:::i;:::-;12108:332;;;;;:::o;12446:::-;12567:4;12605:2;12594:9;12590:18;12582:26;;12618:71;12686:1;12675:9;12671:17;12662:6;12618:71;:::i;:::-;12699:72;12767:2;12756:9;12752:18;12743:6;12699:72;:::i;:::-;12446:332;;;;;:::o;12784:807::-;13033:4;13071:3;13060:9;13056:19;13048:27;;13085:71;13153:1;13142:9;13138:17;13129:6;13085:71;:::i;:::-;13166:72;13234:2;13223:9;13219:18;13210:6;13166:72;:::i;:::-;13248:80;13324:2;13313:9;13309:18;13300:6;13248:80;:::i;:::-;13338;13414:2;13403:9;13399:18;13390:6;13338:80;:::i;:::-;13428:73;13496:3;13485:9;13481:19;13472:6;13428:73;:::i;:::-;13511;13579:3;13568:9;13564:19;13555:6;13511:73;:::i;:::-;12784:807;;;;;;;;;:::o;13597:210::-;13684:4;13722:2;13711:9;13707:18;13699:26;;13735:65;13797:1;13786:9;13782:17;13773:6;13735:65;:::i;:::-;13597:210;;;;:::o;13813:313::-;13926:4;13964:2;13953:9;13949:18;13941:26;;14013:9;14007:4;14003:20;13999:1;13988:9;13984:17;13977:47;14041:78;14114:4;14105:6;14041:78;:::i;:::-;14033:86;;13813:313;;;;:::o;14132:419::-;14298:4;14336:2;14325:9;14321:18;14313:26;;14385:9;14379:4;14375:20;14371:1;14360:9;14356:17;14349:47;14413:131;14539:4;14413:131;:::i;:::-;14405:139;;14132:419;;;:::o;14557:::-;14723:4;14761:2;14750:9;14746:18;14738:26;;14810:9;14804:4;14800:20;14796:1;14785:9;14781:17;14774:47;14838:131;14964:4;14838:131;:::i;:::-;14830:139;;14557:419;;;:::o;14982:::-;15148:4;15186:2;15175:9;15171:18;15163:26;;15235:9;15229:4;15225:20;15221:1;15210:9;15206:17;15199:47;15263:131;15389:4;15263:131;:::i;:::-;15255:139;;14982:419;;;:::o;15407:::-;15573:4;15611:2;15600:9;15596:18;15588:26;;15660:9;15654:4;15650:20;15646:1;15635:9;15631:17;15624:47;15688:131;15814:4;15688:131;:::i;:::-;15680:139;;15407:419;;;:::o;15832:::-;15998:4;16036:2;16025:9;16021:18;16013:26;;16085:9;16079:4;16075:20;16071:1;16060:9;16056:17;16049:47;16113:131;16239:4;16113:131;:::i;:::-;16105:139;;15832:419;;;:::o;16257:::-;16423:4;16461:2;16450:9;16446:18;16438:26;;16510:9;16504:4;16500:20;16496:1;16485:9;16481:17;16474:47;16538:131;16664:4;16538:131;:::i;:::-;16530:139;;16257:419;;;:::o;16682:::-;16848:4;16886:2;16875:9;16871:18;16863:26;;16935:9;16929:4;16925:20;16921:1;16910:9;16906:17;16899:47;16963:131;17089:4;16963:131;:::i;:::-;16955:139;;16682:419;;;:::o;17107:::-;17273:4;17311:2;17300:9;17296:18;17288:26;;17360:9;17354:4;17350:20;17346:1;17335:9;17331:17;17324:47;17388:131;17514:4;17388:131;:::i;:::-;17380:139;;17107:419;;;:::o;17532:::-;17698:4;17736:2;17725:9;17721:18;17713:26;;17785:9;17779:4;17775:20;17771:1;17760:9;17756:17;17749:47;17813:131;17939:4;17813:131;:::i;:::-;17805:139;;17532:419;;;:::o;17957:::-;18123:4;18161:2;18150:9;18146:18;18138:26;;18210:9;18204:4;18200:20;18196:1;18185:9;18181:17;18174:47;18238:131;18364:4;18238:131;:::i;:::-;18230:139;;17957:419;;;:::o;18382:::-;18548:4;18586:2;18575:9;18571:18;18563:26;;18635:9;18629:4;18625:20;18621:1;18610:9;18606:17;18599:47;18663:131;18789:4;18663:131;:::i;:::-;18655:139;;18382:419;;;:::o;18807:222::-;18900:4;18938:2;18927:9;18923:18;18915:26;;18951:71;19019:1;19008:9;19004:17;18995:6;18951:71;:::i;:::-;18807:222;;;;:::o;19035:831::-;19298:4;19336:3;19325:9;19321:19;19313:27;;19350:71;19418:1;19407:9;19403:17;19394:6;19350:71;:::i;:::-;19431:80;19507:2;19496:9;19492:18;19483:6;19431:80;:::i;:::-;19558:9;19552:4;19548:20;19543:2;19532:9;19528:18;19521:48;19586:108;19689:4;19680:6;19586:108;:::i;:::-;19578:116;;19704:72;19772:2;19761:9;19757:18;19748:6;19704:72;:::i;:::-;19786:73;19854:3;19843:9;19839:19;19830:6;19786:73;:::i;:::-;19035:831;;;;;;;;:::o;19872:214::-;19961:4;19999:2;19988:9;19984:18;19976:26;;20012:67;20076:1;20065:9;20061:17;20052:6;20012:67;:::i;:::-;19872:214;;;;:::o;20092:129::-;20126:6;20153:20;;:::i;:::-;20143:30;;20182:33;20210:4;20202:6;20182:33;:::i;:::-;20092:129;;;:::o;20227:75::-;20260:6;20293:2;20287:9;20277:19;;20227:75;:::o;20308:311::-;20385:4;20475:18;20467:6;20464:30;20461:56;;;20497:18;;:::i;:::-;20461:56;20547:4;20539:6;20535:17;20527:25;;20607:4;20601;20597:15;20589:23;;20308:311;;;:::o;20625:132::-;20692:4;20715:3;20707:11;;20745:4;20740:3;20736:14;20728:22;;20625:132;;;:::o;20763:114::-;20830:6;20864:5;20858:12;20848:22;;20763:114;;;:::o;20883:99::-;20935:6;20969:5;20963:12;20953:22;;20883:99;;;:::o;20988:113::-;21058:4;21090;21085:3;21081:14;21073:22;;20988:113;;;:::o;21107:184::-;21206:11;21240:6;21235:3;21228:19;21280:4;21275:3;21271:14;21256:29;;21107:184;;;;:::o;21297:169::-;21381:11;21415:6;21410:3;21403:19;21455:4;21450:3;21446:14;21431:29;;21297:169;;;;:::o;21472:305::-;21512:3;21531:20;21549:1;21531:20;:::i;:::-;21526:25;;21565:20;21583:1;21565:20;:::i;:::-;21560:25;;21719:1;21651:66;21647:74;21644:1;21641:81;21638:107;;;21725:18;;:::i;:::-;21638:107;21769:1;21766;21762:9;21755:16;;21472:305;;;;:::o;21783:185::-;21823:1;21840:20;21858:1;21840:20;:::i;:::-;21835:25;;21874:20;21892:1;21874:20;:::i;:::-;21869:25;;21913:1;21903:35;;21918:18;;:::i;:::-;21903:35;21960:1;21957;21953:9;21948:14;;21783:185;;;;:::o;21974:348::-;22014:7;22037:20;22055:1;22037:20;:::i;:::-;22032:25;;22071:20;22089:1;22071:20;:::i;:::-;22066:25;;22259:1;22191:66;22187:74;22184:1;22181:81;22176:1;22169:9;22162:17;22158:105;22155:131;;;22266:18;;:::i;:::-;22155:131;22314:1;22311;22307:9;22296:20;;21974:348;;;;:::o;22328:191::-;22368:4;22388:20;22406:1;22388:20;:::i;:::-;22383:25;;22422:20;22440:1;22422:20;:::i;:::-;22417:25;;22461:1;22458;22455:8;22452:34;;;22466:18;;:::i;:::-;22452:34;22511:1;22508;22504:9;22496:17;;22328:191;;;;:::o;22525:96::-;22562:7;22591:24;22609:5;22591:24;:::i;:::-;22580:35;;22525:96;;;:::o;22627:90::-;22661:7;22704:5;22697:13;22690:21;22679:32;;22627:90;;;:::o;22723:126::-;22760:7;22800:42;22793:5;22789:54;22778:65;;22723:126;;;:::o;22855:77::-;22892:7;22921:5;22910:16;;22855:77;;;:::o;22938:86::-;22973:7;23013:4;23006:5;23002:16;22991:27;;22938:86;;;:::o;23030:121::-;23088:9;23121:24;23139:5;23121:24;:::i;:::-;23108:37;;23030:121;;;:::o;23157:307::-;23225:1;23235:113;23249:6;23246:1;23243:13;23235:113;;;23334:1;23329:3;23325:11;23319:18;23315:1;23310:3;23306:11;23299:39;23271:2;23268:1;23264:10;23259:15;;23235:113;;;23366:6;23363:1;23360:13;23357:101;;;23446:1;23437:6;23432:3;23428:16;23421:27;23357:101;23206:258;23157:307;;;:::o;23470:281::-;23553:27;23575:4;23553:27;:::i;:::-;23545:6;23541:40;23683:6;23671:10;23668:22;23647:18;23635:10;23632:34;23629:62;23626:88;;;23694:18;;:::i;:::-;23626:88;23734:10;23730:2;23723:22;23513:238;23470:281;;:::o;23757:233::-;23796:3;23819:24;23837:5;23819:24;:::i;:::-;23810:33;;23865:66;23858:5;23855:77;23852:103;;;23935:18;;:::i;:::-;23852:103;23982:1;23975:5;23971:13;23964:20;;23757:233;;;:::o;23996:180::-;24044:77;24041:1;24034:88;24141:4;24138:1;24131:15;24165:4;24162:1;24155:15;24182:180;24230:77;24227:1;24220:88;24327:4;24324:1;24317:15;24351:4;24348:1;24341:15;24368:180;24416:77;24413:1;24406:88;24513:4;24510:1;24503:15;24537:4;24534:1;24527:15;24554:180;24602:77;24599:1;24592:88;24699:4;24696:1;24689:15;24723:4;24720:1;24713:15;24740:117;24849:1;24846;24839:12;24863:117;24972:1;24969;24962:12;24986:117;25095:1;25092;25085:12;25109:117;25218:1;25215;25208:12;25232:102;25273:6;25324:2;25320:7;25315:2;25308:5;25304:14;25300:28;25290:38;;25232:102;;;:::o;25340:222::-;25480:34;25476:1;25468:6;25464:14;25457:58;25549:5;25544:2;25536:6;25532:15;25525:30;25340:222;:::o;25568:229::-;25708:34;25704:1;25696:6;25692:14;25685:58;25777:12;25772:2;25764:6;25760:15;25753:37;25568:229;:::o;25803:221::-;25943:34;25939:1;25931:6;25927:14;25920:58;26012:4;26007:2;25999:6;25995:15;25988:29;25803:221;:::o;26030:177::-;26170:29;26166:1;26158:6;26154:14;26147:53;26030:177;:::o;26213:153::-;26353:5;26349:1;26341:6;26337:14;26330:29;26213:153;:::o;26372:220::-;26512:34;26508:1;26500:6;26496:14;26489:58;26581:3;26576:2;26568:6;26564:15;26557:28;26372:220;:::o;26598:182::-;26738:34;26734:1;26726:6;26722:14;26715:58;26598:182;:::o;26786:228::-;26926:34;26922:1;26914:6;26910:14;26903:58;26995:11;26990:2;26982:6;26978:15;26971:36;26786:228;:::o;27020:224::-;27160:34;27156:1;27148:6;27144:14;27137:58;27229:7;27224:2;27216:6;27212:15;27205:32;27020:224;:::o;27250:223::-;27390:34;27386:1;27378:6;27374:14;27367:58;27459:6;27454:2;27446:6;27442:15;27435:31;27250:223;:::o;27479:173::-;27619:25;27615:1;27607:6;27603:14;27596:49;27479:173;:::o;27658:122::-;27731:24;27749:5;27731:24;:::i;:::-;27724:5;27721:35;27711:63;;27770:1;27767;27760:12;27711:63;27658:122;:::o;27786:116::-;27856:21;27871:5;27856:21;:::i;:::-;27849:5;27846:32;27836:60;;27892:1;27889;27882:12;27836:60;27786:116;:::o;27908:122::-;27981:24;27999:5;27981:24;:::i;:::-;27974:5;27971:35;27961:63;;28020:1;28017;28010:12;27961:63;27908:122;:::o

Swarm Source

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