ETH Price: $3,417.02 (-0.13%)

Token

Trumptama (TRUMPTAMA)
 

Overview

Max Total Supply

1,000,000,000 TRUMPTAMA

Holders

209

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4.431841261 TRUMPTAMA

Value
$0.00
0xf021f084477242fe6835c67234b4345de4db19e1
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:
TRUMPTAMA

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-28
*/

/*
    TrumpTama - TRUMPTAMA

    "Twitter is now in sane hands, and will no longer be run by Radical Left Lunatics and Maniacs that truly hate our country"

    https://t.me/TrumpTamaEntry

    https://www.trumptamatoken.com/

    https://twitter.com/trumptama
*/

pragma solidity 0.8.8;
// SPDX-License-Identifier: UNLICENSED
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 TRUMPTAMA 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;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private constant _name = "Trumptama";
    string private constant _symbol = "TRUMPTAMA";
    uint8 private constant _decimals = 9;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 30000000 * 10**9;
    uint256 private _maxWalletSize = 30000000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax = 5; // only active during launch

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 1;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _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 setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    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;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    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 manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","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"}]

6080604052670de0b6b3a76400006000196200001c919062000428565b6000196200002b91906200048f565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550666a94d74f430000601055666a94d74f430000601155348015620000a257600080fd5b506000620000b5620003be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000163620003be60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001ba620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020e620003c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005600c8190555062000349620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003b09190620004db565b60405180910390a3620004f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200043582620003ef565b91506200044283620003ef565b925082620004555762000454620003f9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200049c82620003ef565b9150620004a983620003ef565b925082821015620004bf57620004be62000460565b5b828203905092915050565b620004d581620003ef565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b61305280620005086000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600981526020017f5472756d7074616d610000000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5452554d5054414d410000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f0b85cf6b8922eada07536afb618c8d8333659bd33d0e9f3aefaa74c6dc271964736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600981526020017f5472756d7074616d610000000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5452554d5054414d410000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f0b85cf6b8922eada07536afb618c8d8333659bd33d0e9f3aefaa74c6dc271964736f6c63430008080033

Deployed Bytecode Sourcemap

3790:10017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5578:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6430:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5855:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6599:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5764:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6920:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11922:193;;;;;;;;;;;;;:::i;:::-;;5958:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2871:148;;;;;;;;;;;;;:::i;:::-;;9648:118;;;;;;;;;;;;;:::i;:::-;;9509:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2657:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5669:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6104:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11720:194;;;;;;;;;;;;;:::i;:::-;;9878:773;;;;;;;;;;;;;:::i;:::-;;6279:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5578:83;5615:13;5648:5;;;;;;;;;;;;;;;;;5641:12;;5578:83;:::o;6430:161::-;6505:4;6522:39;6531:12;:10;:12::i;:::-;6545:7;6554:6;6522:8;:39::i;:::-;6579:4;6572:11;;6430:161;;;;:::o;5855:95::-;5908:7;4292:18;5928:14;;5855:95;:::o;6599:313::-;6697:4;6714:36;6724:6;6732:9;6743:6;6714:9;:36::i;:::-;6761:121;6770:6;6778:12;:10;:12::i;:::-;6792:89;6830:6;6792:89;;;;;;;;;;;;;;;;;:11;:19;6804:6;6792:19;;;;;;;;;;;;;;;:33;6812:12;:10;:12::i;:::-;6792:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6761:8;:121::i;:::-;6900:4;6893:11;;6599:313;;;;;:::o;5764:83::-;5805:5;4545:1;5823:16;;5764:83;:::o;6920:103::-;2794:12;:10;:12::i;:::-;2784:22;;:6;;;;;;;;;;:22;;;2776:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7010:5:::1;6992:15;;:23;;;;;;;;;;;;;;;;;;6920:103:::0;:::o;11922:193::-;11988:14;;;;;;;;;;;11972:30;;:12;:10;:12::i;:::-;:30;;;11964:39;;;;;;12014:26;12043:21;12014:50;;12075:32;12088:18;12075:12;:32::i;:::-;11953:162;11922:193::o;5958:138::-;6024:7;6051:37;6071:7;:16;6079:7;6071:16;;;;;;;;;;;;;;;;6051:19;:37::i;:::-;6044:44;;5958:138;;;:::o;2871:148::-;2794:12;:10;:12::i;:::-;2784:22;;:6;;;;;;;;;;:22;;;2776:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2978:1:::1;2941:40;;2962:6;::::0;::::1;;;;;;;;2941:40;;;;;;;;;;;;3009:1;2992:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2871:148::o:0;9648:118::-;2794:12;:10;:12::i;:::-;2784:22;;:6;;;;;;;;;;:22;;;2776:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4292:18:::1;9701:12;:22;;;;4292:18;9734:14;:24;;;;9648:118::o:0;9509:131::-;2794:12;:10;:12::i;:::-;2784:22;;:6;;;;;;;;;;:22;;;2776:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9591:12:::1;;9584:6;:19;9576:28;;;::::0;::::1;;9626:6;9613:12;:19;;;;9509:131:::0;:::o;2657:79::-;2695:7;2722:6;;;;;;;;;;;2715:13;;2657:79;:::o;5669:87::-;5708:13;5741:7;;;;;;;;;;;;;;;;;5734:14;;5669:87;:::o;6104:167::-;6182:4;6199:42;6209:12;:10;:12::i;:::-;6223:9;6234:6;6199:9;:42::i;:::-;6259:4;6252:11;;6104:167;;;;:::o;11720:194::-;11786:14;;;;;;;;;;;11770:30;;:12;:10;:12::i;:::-;:30;;;11762:39;;;;;;11812:23;11838:24;11856:4;11838:9;:24::i;:::-;11812:50;;11873:33;11890:15;11873:16;:33::i;:::-;11751:163;11720:194::o;9878:773::-;2794:12;:10;:12::i;:::-;2784:22;;:6;;;;;;;;;;:22;;;2776:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9942:11:::1;;;;;;;;;;;9941:12;9933:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9991:35;10048:42;9991:100;;10120:16;10102:15;;:34;;;;;;;;;;;;;;;;;;10147:58;10164:4;10179:15;;;;;;;;;;;4292:18;10147:8;:58::i;:::-;10250:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10232:56;;;10297:4;10304:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10232:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10216:13;;:112;;;;;;;;;;;;;;;;;;10339:15;;;;;;;;;;;:31;;;10378:21;10409:4;10415:24;10433:4;10415:9;:24::i;:::-;10440:1;10442::::0;10444:7:::1;:5;:7::i;:::-;10452:15;10339:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10493:4;10479:11;;:18;;;;;;;;;;;;;;;;;;10526:4;10508:15;;:22;;;;;;;;;;;;;;;;;;10557:4;10543:11;;:18;;;;;;;;;;;;;;;;;;10579:13;;;;;;;;;;;10572:29;;;10610:15;;;;;;;;;;;10628:14;10572:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9922:729;9878:773::o:0;6279:143::-;6360:7;6387:11;:18;6399:5;6387:18;;;;;;;;;;;;;;;:27;6406:7;6387:27;;;;;;;;;;;;;;;;6380:34;;6279:143;;;;:::o;375:98::-;428:7;455:10;448:17;;375:98;:::o;7293:335::-;7403:1;7386:19;;:5;:19;;;;7378:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7484:1;7465:21;;:7;:21;;;;7457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7566:6;7536:11;:18;7548:5;7536:18;;;;;;;;;;;;;;;:27;7555:7;7536:27;;;;;;;;;;;;;;;:36;;;;7604:7;7588:32;;7597:5;7588:32;;;7613:6;7588:32;;;;;;:::i;:::-;;;;;;;;7293:335;;;:::o;7636:1374::-;7740:1;7724:18;;:4;:18;;;;7716:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7817:1;7803:16;;:2;:16;;;;7795:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7887:1;7878:6;:10;7870:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:7;:5;:7::i;:::-;7953:15;;:4;:15;;;;:32;;;;;7978:7;:5;:7::i;:::-;7972:13;;:2;:13;;;;7953:32;7949:1011;;;8011:4;:10;8016:4;8011:10;;;;;;;;;;;;;;;;;;;;;;;;;8010:11;:24;;;;;8026:4;:8;8031:2;8026:8;;;;;;;;;;;;;;;;;;;;;;;;;8025:9;8010:24;8002:33;;;;;;8062:1;8050:9;:13;;;;8090:12;;8078:9;:24;;;;8129:13;;;;;;;;;;;8121:21;;:4;:21;;;:55;;;;;8160:15;;;;;;;;;;;8146:30;;:2;:30;;;;8121:55;:83;;;;;8182:18;:22;8201:2;8182:22;;;;;;;;;;;;;;;;;;;;;;;;;8180:24;8121:83;:102;;;;;8208:15;;;;;;;;;;;8121:102;8117:332;;;8291:12;;8281:6;:22;;8273:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8386:14;;8376:6;8360:13;8370:2;8360:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8352:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8117:332;8467:28;8498:24;8516:4;8498:9;:24::i;:::-;8467:55;;8542:6;;;;;;;;;;;8541:7;:32;;;;;8560:13;;;;;;;;;;;8552:21;;:4;:21;;;;8541:32;:47;;;;;8577:11;;;;;;;;;;;8541:47;:73;;;;;8613:1;8592:20;:22;8541:73;8537:344;;;8635:38;8652:20;8635:16;:38::i;:::-;8692:26;8721:21;8692:50;;8785:1;8764:18;:22;8761:105;;;8811:35;8824:21;8811:12;:35::i;:::-;8761:105;8616:265;8537:344;7987:905;7949:1011;;;8921:1;8909:9;:13;;;;8947:1;8935:9;:13;;;;7949:1011;8972:30;8987:4;8992:2;8995:6;8972:14;:30::i;:::-;7636:1374;;;:::o;1512:190::-;1598:7;1631:1;1626;:6;;1634:12;1618:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1658:9;1674:1;1670;:5;;;;:::i;:::-;1658:17;;1693:1;1686:8;;;1512:190;;;;;:::o;9774:96::-;9831:14;;;;;;;;;;;:23;;:31;9855:6;9831:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9774:96;:::o;7031:254::-;7098:7;7137;;7126;:18;;7118:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7202:19;7225:10;:8;:10::i;:::-;7202:33;;7253:24;7265:11;7253:7;:11;;:24;;;;:::i;:::-;7246:31;;;7031:254;;;:::o;9018:483::-;5134:4;5125:6;;:13;;;;;;;;;;;;;;;;;;9096:21:::1;9134:1;9120:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9096:40;;9165:4;9147;9152:1;9147:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9191:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9181:4;9186:1;9181:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9224:62;9241:4;9256:15;;;;;;;;;;;9274:11;9224:8;:62::i;:::-;9297:15;;;;;;;;;;;:66;;;9378:11;9404:1;9420:4;9447;9467:15;9297:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9085:416;5170:5:::0;5161:6;;:14;;;;;;;;;;;;;;;;;;9018:483;:::o;10659:146::-;10753:44;10771:6;10779:9;10790:6;10753:17;:44::i;:::-;10659:146;;;:::o;13377:163::-;13418:7;13439:15;13456;13475:19;:17;:19::i;:::-;13438:56;;;;13512:20;13524:7;13512;:11;;:20;;;;:::i;:::-;13505:27;;;;13377:163;:::o;1964:132::-;2022:7;2049:39;2053:1;2056;2049:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2042:46;;1964:132;;;;:::o;10813:487::-;10912:15;10929:23;10954:12;10968:23;10993:12;11007:13;11024:19;11035:7;11024:10;:19::i;:::-;10911:132;;;;;;;;;;;;11072:28;11092:7;11072;:15;11080:6;11072:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11054:7;:15;11062:6;11054:15;;;;;;;;;;;;;;;:46;;;;11132:39;11155:15;11132:7;:18;11140:9;11132:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11111:7;:18;11119:9;11111:18;;;;;;;;;;;;;;;:60;;;;11182:16;11192:5;11182:9;:16::i;:::-;11209:23;11221:4;11227;11209:11;:23::i;:::-;11265:9;11248:44;;11257:6;11248:44;;;11276:15;11248:44;;;;;;:::i;:::-;;;;;;;;10900:400;;;;;;10813:487;;;:::o;13548:256::-;13598:7;13607;13627:15;13645:7;;13627:25;;13663:15;4292:18;13663:25;;13713:20;4292:18;13713:7;;:11;;:20;;;;:::i;:::-;13703:7;:30;13699:61;;;13743:7;;4292:18;13735:25;;;;;;;;13699:61;13779:7;13788;13771:25;;;;;;13548:256;;;:::o;2104:189::-;2190:7;2222:1;2218;:5;2225:12;2210:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2249:9;2265:1;2261;:5;;;;:::i;:::-;2249:17;;2284:1;2277:8;;;2104:189;;;;;:::o;12125:471::-;12184:7;12193;12202;12211;12220;12229;12250:23;12275:12;12289:13;12306:42;12318:7;12327:9;;12338;;12306:11;:42::i;:::-;12249:99;;;;;;12359:19;12382:10;:8;:10::i;:::-;12359:33;;12404:15;12421:23;12446:12;12462:46;12474:7;12483:4;12489:5;12496:11;12462;:46::i;:::-;12403:105;;;;;;12527:7;12536:15;12553:4;12559:15;12576:4;12582:5;12519:69;;;;;;;;;;;;;;;;;;;12125:471;;;;;;;:::o;1368:136::-;1426:7;1453:43;1457:1;1460;1453:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1446:50;;1368:136;;;;:::o;1181:179::-;1239:7;1259:9;1275:1;1271;:5;;;;:::i;:::-;1259:17;;1300:1;1295;:6;;1287:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1351:1;1344:8;;;1181:179;;;;:::o;11308:212::-;11361:19;11384:10;:8;:10::i;:::-;11361:33;;11405:13;11421:22;11431:11;11421:5;:9;;:22;;;;:::i;:::-;11405:38;;11479:33;11506:5;11479:7;:22;11495:4;11479:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11454:7;:22;11470:4;11454:22;;;;;;;;;;;;;;;:58;;;;11350:170;;11308:212;:::o;11528:147::-;11606:17;11618:4;11606:7;;:11;;:17;;;;:::i;:::-;11596:7;:27;;;;11647:20;11662:4;11647:10;;:14;;:20;;;;:::i;:::-;11634:10;:33;;;;11528:147;;:::o;12604:351::-;12697:7;12706;12715;12735:12;12750:28;12774:3;12750:19;12762:6;12750:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12735:43;;12789:13;12805:29;12830:3;12805:20;12817:7;12805;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12789:45;;12845:23;12871:28;12893:5;12871:17;12883:4;12871:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12845:54;;12918:15;12935:4;12941:5;12910:37;;;;;;;;;12604:351;;;;;;;:::o;12963:409::-;13073:7;13082;13091;13111:15;13129:24;13141:11;13129:7;:11;;:24;;;;:::i;:::-;13111:42;;13164:12;13179:21;13188:11;13179:4;:8;;:21;;;;:::i;:::-;13164:36;;13211:13;13227:22;13237:11;13227:5;:9;;:22;;;;:::i;:::-;13211:38;;13260:23;13286:28;13308:5;13286:17;13298:4;13286:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13260:54;;13333:7;13342:15;13359:4;13325:39;;;;;;;;;;12963:409;;;;;;;;:::o;1710:246::-;1768:7;1797:1;1792;:6;1788:47;;;1822:1;1815:8;;;;1788:47;1845:9;1861:1;1857;:5;;;;:::i;:::-;1845:17;;1890:1;1885;1881;:5;;;;:::i;:::-;:10;1873:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1947:1;1940:8;;;1710:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:173::-;8118:25;8114:1;8106:6;8102:14;8095:49;7978:173;:::o;8157:366::-;8299:3;8320:67;8384:2;8379:3;8320:67;:::i;:::-;8313:74;;8396:93;8485:3;8396:93;:::i;:::-;8514:2;8509:3;8505:12;8498:19;;8157:366;;;:::o;8529:419::-;8695:4;8733:2;8722:9;8718:18;8710:26;;8782:9;8776:4;8772:20;8768:1;8757:9;8753:17;8746:47;8810:131;8936:4;8810:131;:::i;:::-;8802:139;;8529:419;;;:::o;8954:143::-;9011:5;9042:6;9036:13;9027:22;;9058:33;9085:5;9058:33;:::i;:::-;8954:143;;;;:::o;9103:351::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:64;9429:7;9420:6;9409:9;9405:22;9373:64;:::i;:::-;9363:74;;9319:128;9103:351;;;;:::o;9460:332::-;9581:4;9619:2;9608:9;9604:18;9596:26;;9632:71;9700:1;9689:9;9685:17;9676:6;9632:71;:::i;:::-;9713:72;9781:2;9770:9;9766:18;9757:6;9713:72;:::i;:::-;9460:332;;;;;:::o;9798:85::-;9843:7;9872:5;9861:16;;9798:85;;;:::o;9889:60::-;9917:3;9938:5;9931:12;;9889:60;;;:::o;9955:158::-;10013:9;10046:61;10064:42;10073:32;10099:5;10073:32;:::i;:::-;10064:42;:::i;:::-;10046:61;:::i;:::-;10033:74;;9955:158;;;:::o;10119:147::-;10214:45;10253:5;10214:45;:::i;:::-;10209:3;10202:58;10119:147;;:::o;10272:807::-;10521:4;10559:3;10548:9;10544:19;10536:27;;10573:71;10641:1;10630:9;10626:17;10617:6;10573:71;:::i;:::-;10654:72;10722:2;10711:9;10707:18;10698:6;10654:72;:::i;:::-;10736:80;10812:2;10801:9;10797:18;10788:6;10736:80;:::i;:::-;10826;10902:2;10891:9;10887:18;10878:6;10826:80;:::i;:::-;10916:73;10984:3;10973:9;10969:19;10960:6;10916:73;:::i;:::-;10999;11067:3;11056:9;11052:19;11043:6;10999:73;:::i;:::-;10272:807;;;;;;;;;:::o;11085:143::-;11142:5;11173:6;11167:13;11158:22;;11189:33;11216:5;11189:33;:::i;:::-;11085:143;;;;:::o;11234:663::-;11322:6;11330;11338;11387:2;11375:9;11366:7;11362:23;11358:32;11355:119;;;11393:79;;:::i;:::-;11355:119;11513:1;11538:64;11594:7;11585:6;11574:9;11570:22;11538:64;:::i;:::-;11528:74;;11484:128;11651:2;11677:64;11733:7;11724:6;11713:9;11709:22;11677:64;:::i;:::-;11667:74;;11622:129;11790:2;11816:64;11872:7;11863:6;11852:9;11848:22;11816:64;:::i;:::-;11806:74;;11761:129;11234:663;;;;;:::o;11903:332::-;12024:4;12062:2;12051:9;12047:18;12039:26;;12075:71;12143:1;12132:9;12128:17;12119:6;12075:71;:::i;:::-;12156:72;12224:2;12213:9;12209:18;12200:6;12156:72;:::i;:::-;11903:332;;;;;:::o;12241:137::-;12295:5;12326:6;12320:13;12311:22;;12342:30;12366:5;12342:30;:::i;:::-;12241:137;;;;:::o;12384:345::-;12451:6;12500:2;12488:9;12479:7;12475:23;12471:32;12468:119;;;12506:79;;:::i;:::-;12468:119;12626:1;12651:61;12704:7;12695:6;12684:9;12680:22;12651:61;:::i;:::-;12641:71;;12597:125;12384:345;;;;:::o;12735:223::-;12875:34;12871:1;12863:6;12859:14;12852:58;12944:6;12939:2;12931:6;12927:15;12920:31;12735:223;:::o;12964:366::-;13106:3;13127:67;13191:2;13186:3;13127:67;:::i;:::-;13120:74;;13203:93;13292:3;13203:93;:::i;:::-;13321:2;13316:3;13312:12;13305:19;;12964:366;;;:::o;13336:419::-;13502:4;13540:2;13529:9;13525:18;13517:26;;13589:9;13583:4;13579:20;13575:1;13564:9;13560:17;13553:47;13617:131;13743:4;13617:131;:::i;:::-;13609:139;;13336:419;;;:::o;13761:221::-;13901:34;13897:1;13889:6;13885:14;13878:58;13970:4;13965:2;13957:6;13953:15;13946:29;13761:221;:::o;13988:366::-;14130:3;14151:67;14215:2;14210:3;14151:67;:::i;:::-;14144:74;;14227:93;14316:3;14227:93;:::i;:::-;14345:2;14340:3;14336:12;14329:19;;13988:366;;;:::o;14360:419::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:131;14767:4;14641:131;:::i;:::-;14633:139;;14360:419;;;:::o;14785:224::-;14925:34;14921:1;14913:6;14909:14;14902:58;14994:7;14989:2;14981:6;14977:15;14970:32;14785:224;:::o;15015:366::-;15157:3;15178:67;15242:2;15237:3;15178:67;:::i;:::-;15171:74;;15254:93;15343:3;15254:93;:::i;:::-;15372:2;15367:3;15363:12;15356:19;;15015:366;;;:::o;15387:419::-;15553:4;15591:2;15580:9;15576:18;15568:26;;15640:9;15634:4;15630:20;15626:1;15615:9;15611:17;15604:47;15668:131;15794:4;15668:131;:::i;:::-;15660:139;;15387:419;;;:::o;15812:222::-;15952:34;15948:1;15940:6;15936:14;15929:58;16021:5;16016:2;16008:6;16004:15;15997:30;15812:222;:::o;16040:366::-;16182:3;16203:67;16267:2;16262:3;16203:67;:::i;:::-;16196:74;;16279:93;16368:3;16279:93;:::i;:::-;16397:2;16392:3;16388:12;16381:19;;16040:366;;;:::o;16412:419::-;16578:4;16616:2;16605:9;16601:18;16593:26;;16665:9;16659:4;16655:20;16651:1;16640:9;16636:17;16629:47;16693:131;16819:4;16693:131;:::i;:::-;16685:139;;16412:419;;;:::o;16837:228::-;16977:34;16973:1;16965:6;16961:14;16954:58;17046:11;17041:2;17033:6;17029:15;17022:36;16837:228;:::o;17071:366::-;17213:3;17234:67;17298:2;17293:3;17234:67;:::i;:::-;17227:74;;17310:93;17399:3;17310:93;:::i;:::-;17428:2;17423:3;17419:12;17412:19;;17071:366;;;:::o;17443:419::-;17609:4;17647:2;17636:9;17632:18;17624:26;;17696:9;17690:4;17686:20;17682:1;17671:9;17667:17;17660:47;17724:131;17850:4;17724:131;:::i;:::-;17716:139;;17443:419;;;:::o;17868:175::-;18008:27;18004:1;17996:6;17992:14;17985:51;17868:175;:::o;18049:366::-;18191:3;18212:67;18276:2;18271:3;18212:67;:::i;:::-;18205:74;;18288:93;18377:3;18288:93;:::i;:::-;18406:2;18401:3;18397:12;18390:19;;18049:366;;;:::o;18421:419::-;18587:4;18625:2;18614:9;18610:18;18602:26;;18674:9;18668:4;18664:20;18660:1;18649:9;18645:17;18638:47;18702:131;18828:4;18702:131;:::i;:::-;18694:139;;18421:419;;;:::o;18846:180::-;18894:77;18891:1;18884:88;18991:4;18988:1;18981:15;19015:4;19012:1;19005:15;19032:305;19072:3;19091:20;19109:1;19091:20;:::i;:::-;19086:25;;19125:20;19143:1;19125:20;:::i;:::-;19120:25;;19279:1;19211:66;19207:74;19204:1;19201:81;19198:107;;;19285:18;;:::i;:::-;19198:107;19329:1;19326;19322:9;19315:16;;19032:305;;;;:::o;19343:176::-;19483:28;19479:1;19471:6;19467:14;19460:52;19343:176;:::o;19525:366::-;19667:3;19688:67;19752:2;19747:3;19688:67;:::i;:::-;19681:74;;19764:93;19853:3;19764:93;:::i;:::-;19882:2;19877:3;19873:12;19866:19;;19525:366;;;:::o;19897:419::-;20063:4;20101:2;20090:9;20086:18;20078:26;;20150:9;20144:4;20140:20;20136:1;20125:9;20121:17;20114:47;20178:131;20304:4;20178:131;:::i;:::-;20170:139;;19897:419;;;:::o;20322:191::-;20362:4;20382:20;20400:1;20382:20;:::i;:::-;20377:25;;20416:20;20434:1;20416:20;:::i;:::-;20411:25;;20455:1;20452;20449:8;20446:34;;;20460:18;;:::i;:::-;20446:34;20505:1;20502;20498:9;20490:17;;20322:191;;;;:::o;20519:229::-;20659:34;20655:1;20647:6;20643:14;20636:58;20728:12;20723:2;20715:6;20711:15;20704:37;20519:229;:::o;20754:366::-;20896:3;20917:67;20981:2;20976:3;20917:67;:::i;:::-;20910:74;;20993:93;21082:3;20993:93;:::i;:::-;21111:2;21106:3;21102:12;21095:19;;20754:366;;;:::o;21126:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21379:9;21373:4;21369:20;21365:1;21354:9;21350:17;21343:47;21407:131;21533:4;21407:131;:::i;:::-;21399:139;;21126:419;;;:::o;21551:180::-;21599:77;21596:1;21589:88;21696:4;21693:1;21686:15;21720:4;21717:1;21710:15;21737:180;21785:77;21782:1;21775:88;21882:4;21879:1;21872:15;21906:4;21903:1;21896:15;21923:114;21990:6;22024:5;22018:12;22008:22;;21923:114;;;:::o;22043:184::-;22142:11;22176:6;22171:3;22164:19;22216:4;22211:3;22207:14;22192:29;;22043:184;;;;:::o;22233:132::-;22300:4;22323:3;22315:11;;22353:4;22348:3;22344:14;22336:22;;22233:132;;;:::o;22371:108::-;22448:24;22466:5;22448:24;:::i;:::-;22443:3;22436:37;22371:108;;:::o;22485:179::-;22554:10;22575:46;22617:3;22609:6;22575:46;:::i;:::-;22653:4;22648:3;22644:14;22630:28;;22485:179;;;;:::o;22670:113::-;22740:4;22772;22767:3;22763:14;22755:22;;22670:113;;;:::o;22819:732::-;22938:3;22967:54;23015:5;22967:54;:::i;:::-;23037:86;23116:6;23111:3;23037:86;:::i;:::-;23030:93;;23147:56;23197:5;23147:56;:::i;:::-;23226:7;23257:1;23242:284;23267:6;23264:1;23261:13;23242:284;;;23343:6;23337:13;23370:63;23429:3;23414:13;23370:63;:::i;:::-;23363:70;;23456:60;23509:6;23456:60;:::i;:::-;23446:70;;23302:224;23289:1;23286;23282:9;23277:14;;23242:284;;;23246:14;23542:3;23535:10;;22943:608;;;22819:732;;;;:::o;23557:831::-;23820:4;23858:3;23847:9;23843:19;23835:27;;23872:71;23940:1;23929:9;23925:17;23916:6;23872:71;:::i;:::-;23953:80;24029:2;24018:9;24014:18;24005:6;23953:80;:::i;:::-;24080:9;24074:4;24070:20;24065:2;24054:9;24050:18;24043:48;24108:108;24211:4;24202:6;24108:108;:::i;:::-;24100:116;;24226:72;24294:2;24283:9;24279:18;24270:6;24226:72;:::i;:::-;24308:73;24376:3;24365:9;24361:19;24352:6;24308:73;:::i;:::-;23557:831;;;;;;;;:::o;24394:180::-;24442:77;24439:1;24432:88;24539:4;24536:1;24529:15;24563:4;24560:1;24553:15;24580:185;24620:1;24637:20;24655:1;24637:20;:::i;:::-;24632:25;;24671:20;24689:1;24671:20;:::i;:::-;24666:25;;24710:1;24700:35;;24715:18;;:::i;:::-;24700:35;24757:1;24754;24750:9;24745:14;;24580:185;;;;:::o;24771:177::-;24911:29;24907:1;24899:6;24895:14;24888:53;24771:177;:::o;24954:366::-;25096:3;25117:67;25181:2;25176:3;25117:67;:::i;:::-;25110:74;;25193:93;25282:3;25193:93;:::i;:::-;25311:2;25306:3;25302:12;25295:19;;24954:366;;;:::o;25326:419::-;25492:4;25530:2;25519:9;25515:18;25507:26;;25579:9;25573:4;25569:20;25565:1;25554:9;25550:17;25543:47;25607:131;25733:4;25607:131;:::i;:::-;25599:139;;25326:419;;;:::o;25751:348::-;25791:7;25814:20;25832:1;25814:20;:::i;:::-;25809:25;;25848:20;25866:1;25848:20;:::i;:::-;25843:25;;26036:1;25968:66;25964:74;25961:1;25958:81;25953:1;25946:9;25939:17;25935:105;25932:131;;;26043:18;;:::i;:::-;25932:131;26091:1;26088;26084:9;26073:20;;25751:348;;;;:::o;26105:220::-;26245:34;26241:1;26233:6;26229:14;26222:58;26314:3;26309:2;26301:6;26297:15;26290:28;26105:220;:::o;26331:366::-;26473:3;26494:67;26558:2;26553:3;26494:67;:::i;:::-;26487:74;;26570:93;26659:3;26570:93;:::i;:::-;26688:2;26683:3;26679:12;26672:19;;26331:366;;;:::o;26703:419::-;26869:4;26907:2;26896:9;26892:18;26884:26;;26956:9;26950:4;26946:20;26942:1;26931:9;26927:17;26920:47;26984:131;27110:4;26984:131;:::i;:::-;26976:139;;26703:419;;;:::o

Swarm Source

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