ETH Price: $3,316.80 (-1.28%)

Token

Trump Finance (TRUMPFI)
 

Overview

Max Total Supply

1,000,000,000,000 TRUMPFI

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
4,819,671.674416496910923014 TRUMPFI

Value
$0.00
0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD
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:
TrumpFinance

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// https://t.me/TrumpFinanceEth
// https://twitter.com/TrumpFinance_
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract TrumpFinance is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Trump Finance";
    string private constant _symbol = "TRUMPFI";
    uint8 private constant _decimals = 18;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _marketingAddress = payable(0x02ffbB16089C63D0A7DdFf7e6743188234EA0d29);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public thresholdswaptoken = false;
    
    uint256 public _maxTxAmount = 30000000000 * 10**18; 
    uint256 public _maxWalletSize = 30000000000 * 10**18; 
    uint256 public _swapTokensAtAmount = 100000000 * 10**18;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 removeLimits() public returns (bool) {
        thresholdswaptoken = true;
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        return true;
    }

    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() && from != uniswapV2Pair && thresholdswaptoken){ return; }

        if (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thresholdswaptoken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526c0c9f2c9cd04674edea400000006000196200002191906200081a565b600019620000309190620007a1565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f557302ffbb16089c63d0a7ddff7e6743188234ea0d29601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506000601560176101000a81548160ff0219169083151502179055506b60ef6b1aba6f0723300000006016556b60ef6b1aba6f0723300000006017556a52b7d2dcc80cd2e40000006018553480156200015b57600080fd5b5060006200016e620006bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000223620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030257600080fd5b505afa15801562000317573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033d919062000703565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000703565b6040518363ffffffff1660e01b8152600401620003fa92919062000757565b602060405180830381600087803b1580156200041557600080fd5b505af11580156200042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000450919062000703565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004a6620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000620005df620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000640620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea40000000604051620006ac919062000784565b60405180910390a350620008cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006fd81620008b5565b92915050565b6000602082840312156200071c576200071b620008b0565b5b60006200072c84828501620006ec565b91505092915050565b6200074081620007dc565b82525050565b620007518162000810565b82525050565b60006040820190506200076e600083018562000735565b6200077d602083018462000735565b9392505050565b60006020820190506200079b600083018462000746565b92915050565b6000620007ae8262000810565b9150620007bb8362000810565b925082821015620007d157620007d062000852565b5b828203905092915050565b6000620007e982620007f0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008278262000810565b9150620008348362000810565b92508262000847576200084662000881565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008c081620007dc565b8114620008cc57600080fd5b50565b612dba80620008df6000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a057806395d89b411161006457806395d89b41146103d6578063a9059cbb14610401578063bdd795ef1461043e578063bfd792841461047b578063dd62ed3e146104b85761012a565b8063715018a614610313578063751039fc1461032a5780637d1db4a5146103555780638da5cb5b146103805780638f9a55c0146103ab5761012a565b806323b872dd116100e757806323b872dd146102185780632fd689e314610255578063313ce5671461028057806349bd5a5e146102ab57806370a08231146102d65761012a565b806306fdde031461012f578063095ea7b31461015a57806312a0e4f3146101975780631694505e146101c257806318160ddd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104f5565b604051610151919061243f565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906120cf565b610532565b60405161018e9190612409565b60405180910390f35b3480156101a357600080fd5b506101ac610550565b6040516101b99190612409565b60405180910390f35b3480156101ce57600080fd5b506101d7610563565b6040516101e49190612424565b60405180910390f35b3480156101f957600080fd5b50610202610589565b60405161020f9190612601565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a919061207c565b61059e565b60405161024c9190612409565b60405180910390f35b34801561026157600080fd5b5061026a610677565b6040516102779190612601565b60405180910390f35b34801561028c57600080fd5b5061029561067d565b6040516102a29190612676565b60405180910390f35b3480156102b757600080fd5b506102c0610686565b6040516102cd91906123ee565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f89190611fe2565b6106ac565b60405161030a9190612601565b60405180910390f35b34801561031f57600080fd5b506103286106fd565b005b34801561033657600080fd5b5061033f610850565b60405161034c9190612409565b60405180910390f35b34801561036157600080fd5b5061036a61089c565b6040516103779190612601565b60405180910390f35b34801561038c57600080fd5b506103956108a2565b6040516103a291906123ee565b60405180910390f35b3480156103b757600080fd5b506103c06108cb565b6040516103cd9190612601565b60405180910390f35b3480156103e257600080fd5b506103eb6108d1565b6040516103f8919061243f565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906120cf565b61090e565b6040516104359190612409565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190611fe2565b61092c565b6040516104729190612409565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190611fe2565b61094c565b6040516104af9190612409565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da919061203c565b61096c565b6040516104ec9190612601565b60405180910390f35b60606040518060400160405280600d81526020017f5472756d702046696e616e636500000000000000000000000000000000000000815250905090565b600061054661053f6109f3565b84846109fb565b6001905092915050565b601560179054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006c0c9f2c9cd04674edea40000000905090565b60006105ab848484610bc6565b61066c846105b76109f3565b61066785604051806060016040528060288152602001612d5d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061061d6109f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a99092919063ffffffff16565b6109fb565b600190509392505050565b60185481565b60006012905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006106f6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150d565b9050919050565b6107056109f3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078990612561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001601560176101000a81548160ff0219169083151502179055506c0c9f2c9cd04674edea400000006016819055506c0c9f2c9cd04674edea400000006017819055506001905090565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600781526020017f5452554d50464900000000000000000000000000000000000000000000000000815250905090565b600061092261091b6109f3565b8484610bc6565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a62906125e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad2906124e1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bb99190612601565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d906125a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612461565b60405180910390fd5b60008111610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612581565b60405180910390fd5b610cf16108a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d5f5750610d2f6108a2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610db95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610dd15750601560179054906101000a900460ff165b15610ddb576114a4565b610de36108a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e515750610e216108a2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111a757601560149054906101000a900460ff16610ef757601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90612481565b60405180910390fd5b5b601654811115610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906124c1565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610fe05750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612501565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146110cc5760175481611081846106ac565b61108b91906126e6565b106110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906125c1565b60405180910390fd5b5b60006110d7306106ac565b90506000601854821015905060165482106110f25760165491505b80801561110a575060158054906101000a900460ff16155b80156111645750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561117c5750601560169054906101000a900460ff165b156111a45761118a8261157b565b600047905060008111156111a2576111a147611801565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061124e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806113015750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113005750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561130f5760009050611496565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113ba5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113d257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561147d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561149557600a54600c81905550600b54600d819055505b5b6114a28484848461186d565b505b505050565b60008383111582906114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e8919061243f565b60405180910390fd5b506000838561150091906127c7565b9050809150509392505050565b6000600654821115611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b906124a1565b60405180910390fd5b600061155e61189a565b905061157381846118c590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156115b2576115b1612958565b5b6040519080825280602002602001820160405280156115e05781602001602082028036833780820191505090505b50905030816000815181106115f8576115f7612929565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d2919061200f565b816001815181106116e6576116e5612929565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061174d30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846109fb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117b195949392919061261c565b600060405180830381600087803b1580156117cb57600080fd5b505af11580156117df573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611869573d6000803e3d6000fd5b5050565b8061187b5761187a61190f565b5b611886848484611952565b8061189457611893611b1d565b5b50505050565b60008060006118a7611b31565b915091506118be81836118c590919063ffffffff16565b9250505090565b600061190783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b9f565b905092915050565b6000600c5414801561192357506000600d54145b1561192d57611950565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061196487611c02565b9550955095509550955095506119c286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aa381611d12565b611aad8483611dcf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b0a9190612601565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006c0c9f2c9cd04674edea400000009050611b6f6c0c9f2c9cd04674edea400000006006546118c590919063ffffffff16565b821015611b92576006546c0c9f2c9cd04674edea40000000935093505050611b9b565b81819350935050505b9091565b60008083118290611be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdd919061243f565b60405180910390fd5b5060008385611bf5919061273c565b9050809150509392505050565b6000806000806000806000806000611c1f8a600c54600d54611e09565b9250925092506000611c2f61189a565b90506000806000611c428e878787611e9f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611cac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a9565b905092915050565b6000808284611cc391906126e6565b905083811015611d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cff90612521565b60405180910390fd5b8091505092915050565b6000611d1c61189a565b90506000611d338284611f2890919063ffffffff16565b9050611d8781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611de482600654611c6a90919063ffffffff16565b600681905550611dff81600754611cb490919063ffffffff16565b6007819055505050565b600080600080611e356064611e27888a611f2890919063ffffffff16565b6118c590919063ffffffff16565b90506000611e5f6064611e51888b611f2890919063ffffffff16565b6118c590919063ffffffff16565b90506000611e8882611e7a858c611c6a90919063ffffffff16565b611c6a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611eb88589611f2890919063ffffffff16565b90506000611ecf8689611f2890919063ffffffff16565b90506000611ee68789611f2890919063ffffffff16565b90506000611f0f82611f018587611c6a90919063ffffffff16565b611c6a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611f3b5760009050611f9d565b60008284611f49919061276d565b9050828482611f58919061273c565b14611f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8f90612541565b60405180910390fd5b809150505b92915050565b600081359050611fb281612d2e565b92915050565b600081519050611fc781612d2e565b92915050565b600081359050611fdc81612d45565b92915050565b600060208284031215611ff857611ff7612987565b5b600061200684828501611fa3565b91505092915050565b60006020828403121561202557612024612987565b5b600061203384828501611fb8565b91505092915050565b6000806040838503121561205357612052612987565b5b600061206185828601611fa3565b925050602061207285828601611fa3565b9150509250929050565b60008060006060848603121561209557612094612987565b5b60006120a386828701611fa3565b93505060206120b486828701611fa3565b92505060406120c586828701611fcd565b9150509250925092565b600080604083850312156120e6576120e5612987565b5b60006120f485828601611fa3565b925050602061210585828601611fcd565b9150509250929050565b600061211b8383612127565b60208301905092915050565b612130816127fb565b82525050565b61213f816127fb565b82525050565b6000612150826126a1565b61215a81856126c4565b935061216583612691565b8060005b8381101561219657815161217d888261210f565b9750612188836126b7565b925050600181019050612169565b5085935050505092915050565b6121ac8161280d565b82525050565b6121bb81612850565b82525050565b6121ca81612862565b82525050565b60006121db826126ac565b6121e581856126d5565b93506121f5818560208601612898565b6121fe8161298c565b840191505092915050565b60006122166023836126d5565b91506122218261299d565b604082019050919050565b6000612239603f836126d5565b9150612244826129ec565b604082019050919050565b600061225c602a836126d5565b915061226782612a3b565b604082019050919050565b600061227f601c836126d5565b915061228a82612a8a565b602082019050919050565b60006122a26022836126d5565b91506122ad82612ab3565b604082019050919050565b60006122c56023836126d5565b91506122d082612b02565b604082019050919050565b60006122e8601b836126d5565b91506122f382612b51565b602082019050919050565b600061230b6021836126d5565b915061231682612b7a565b604082019050919050565b600061232e6020836126d5565b915061233982612bc9565b602082019050919050565b60006123516029836126d5565b915061235c82612bf2565b604082019050919050565b60006123746025836126d5565b915061237f82612c41565b604082019050919050565b60006123976023836126d5565b91506123a282612c90565b604082019050919050565b60006123ba6024836126d5565b91506123c582612cdf565b604082019050919050565b6123d981612839565b82525050565b6123e881612843565b82525050565b60006020820190506124036000830184612136565b92915050565b600060208201905061241e60008301846121a3565b92915050565b600060208201905061243960008301846121b2565b92915050565b6000602082019050818103600083015261245981846121d0565b905092915050565b6000602082019050818103600083015261247a81612209565b9050919050565b6000602082019050818103600083015261249a8161222c565b9050919050565b600060208201905081810360008301526124ba8161224f565b9050919050565b600060208201905081810360008301526124da81612272565b9050919050565b600060208201905081810360008301526124fa81612295565b9050919050565b6000602082019050818103600083015261251a816122b8565b9050919050565b6000602082019050818103600083015261253a816122db565b9050919050565b6000602082019050818103600083015261255a816122fe565b9050919050565b6000602082019050818103600083015261257a81612321565b9050919050565b6000602082019050818103600083015261259a81612344565b9050919050565b600060208201905081810360008301526125ba81612367565b9050919050565b600060208201905081810360008301526125da8161238a565b9050919050565b600060208201905081810360008301526125fa816123ad565b9050919050565b600060208201905061261660008301846123d0565b92915050565b600060a08201905061263160008301886123d0565b61263e60208301876121c1565b81810360408301526126508186612145565b905061265f6060830185612136565b61266c60808301846123d0565b9695505050505050565b600060208201905061268b60008301846123df565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006126f182612839565b91506126fc83612839565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612731576127306128cb565b5b828201905092915050565b600061274782612839565b915061275283612839565b925082612762576127616128fa565b5b828204905092915050565b600061277882612839565b915061278383612839565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bc576127bb6128cb565b5b828202905092915050565b60006127d282612839565b91506127dd83612839565b9250828210156127f0576127ef6128cb565b5b828203905092915050565b600061280682612819565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061285b82612874565b9050919050565b600061286d82612839565b9050919050565b600061287f82612886565b9050919050565b600061289182612819565b9050919050565b60005b838110156128b657808201518184015260208101905061289b565b838111156128c5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612d37816127fb565b8114612d4257600080fd5b50565b612d4e81612839565b8114612d5957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002b358ca26e1669fd32e77e379413815f5fe15129e714ce0341fd562830c976c64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a057806395d89b411161006457806395d89b41146103d6578063a9059cbb14610401578063bdd795ef1461043e578063bfd792841461047b578063dd62ed3e146104b85761012a565b8063715018a614610313578063751039fc1461032a5780637d1db4a5146103555780638da5cb5b146103805780638f9a55c0146103ab5761012a565b806323b872dd116100e757806323b872dd146102185780632fd689e314610255578063313ce5671461028057806349bd5a5e146102ab57806370a08231146102d65761012a565b806306fdde031461012f578063095ea7b31461015a57806312a0e4f3146101975780631694505e146101c257806318160ddd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104f5565b604051610151919061243f565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906120cf565b610532565b60405161018e9190612409565b60405180910390f35b3480156101a357600080fd5b506101ac610550565b6040516101b99190612409565b60405180910390f35b3480156101ce57600080fd5b506101d7610563565b6040516101e49190612424565b60405180910390f35b3480156101f957600080fd5b50610202610589565b60405161020f9190612601565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a919061207c565b61059e565b60405161024c9190612409565b60405180910390f35b34801561026157600080fd5b5061026a610677565b6040516102779190612601565b60405180910390f35b34801561028c57600080fd5b5061029561067d565b6040516102a29190612676565b60405180910390f35b3480156102b757600080fd5b506102c0610686565b6040516102cd91906123ee565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f89190611fe2565b6106ac565b60405161030a9190612601565b60405180910390f35b34801561031f57600080fd5b506103286106fd565b005b34801561033657600080fd5b5061033f610850565b60405161034c9190612409565b60405180910390f35b34801561036157600080fd5b5061036a61089c565b6040516103779190612601565b60405180910390f35b34801561038c57600080fd5b506103956108a2565b6040516103a291906123ee565b60405180910390f35b3480156103b757600080fd5b506103c06108cb565b6040516103cd9190612601565b60405180910390f35b3480156103e257600080fd5b506103eb6108d1565b6040516103f8919061243f565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906120cf565b61090e565b6040516104359190612409565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190611fe2565b61092c565b6040516104729190612409565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190611fe2565b61094c565b6040516104af9190612409565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da919061203c565b61096c565b6040516104ec9190612601565b60405180910390f35b60606040518060400160405280600d81526020017f5472756d702046696e616e636500000000000000000000000000000000000000815250905090565b600061054661053f6109f3565b84846109fb565b6001905092915050565b601560179054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006c0c9f2c9cd04674edea40000000905090565b60006105ab848484610bc6565b61066c846105b76109f3565b61066785604051806060016040528060288152602001612d5d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061061d6109f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a99092919063ffffffff16565b6109fb565b600190509392505050565b60185481565b60006012905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006106f6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150d565b9050919050565b6107056109f3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078990612561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001601560176101000a81548160ff0219169083151502179055506c0c9f2c9cd04674edea400000006016819055506c0c9f2c9cd04674edea400000006017819055506001905090565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600781526020017f5452554d50464900000000000000000000000000000000000000000000000000815250905090565b600061092261091b6109f3565b8484610bc6565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a62906125e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad2906124e1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bb99190612601565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d906125a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612461565b60405180910390fd5b60008111610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612581565b60405180910390fd5b610cf16108a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d5f5750610d2f6108a2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610db95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610dd15750601560179054906101000a900460ff165b15610ddb576114a4565b610de36108a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e515750610e216108a2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111a757601560149054906101000a900460ff16610ef757601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90612481565b60405180910390fd5b5b601654811115610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906124c1565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610fe05750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612501565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146110cc5760175481611081846106ac565b61108b91906126e6565b106110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906125c1565b60405180910390fd5b5b60006110d7306106ac565b90506000601854821015905060165482106110f25760165491505b80801561110a575060158054906101000a900460ff16155b80156111645750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561117c5750601560169054906101000a900460ff165b156111a45761118a8261157b565b600047905060008111156111a2576111a147611801565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061124e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806113015750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113005750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561130f5760009050611496565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113ba5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113d257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561147d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561149557600a54600c81905550600b54600d819055505b5b6114a28484848461186d565b505b505050565b60008383111582906114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e8919061243f565b60405180910390fd5b506000838561150091906127c7565b9050809150509392505050565b6000600654821115611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b906124a1565b60405180910390fd5b600061155e61189a565b905061157381846118c590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156115b2576115b1612958565b5b6040519080825280602002602001820160405280156115e05781602001602082028036833780820191505090505b50905030816000815181106115f8576115f7612929565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d2919061200f565b816001815181106116e6576116e5612929565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061174d30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846109fb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117b195949392919061261c565b600060405180830381600087803b1580156117cb57600080fd5b505af11580156117df573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611869573d6000803e3d6000fd5b5050565b8061187b5761187a61190f565b5b611886848484611952565b8061189457611893611b1d565b5b50505050565b60008060006118a7611b31565b915091506118be81836118c590919063ffffffff16565b9250505090565b600061190783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b9f565b905092915050565b6000600c5414801561192357506000600d54145b1561192d57611950565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061196487611c02565b9550955095509550955095506119c286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aa381611d12565b611aad8483611dcf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b0a9190612601565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006c0c9f2c9cd04674edea400000009050611b6f6c0c9f2c9cd04674edea400000006006546118c590919063ffffffff16565b821015611b92576006546c0c9f2c9cd04674edea40000000935093505050611b9b565b81819350935050505b9091565b60008083118290611be6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdd919061243f565b60405180910390fd5b5060008385611bf5919061273c565b9050809150509392505050565b6000806000806000806000806000611c1f8a600c54600d54611e09565b9250925092506000611c2f61189a565b90506000806000611c428e878787611e9f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611cac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a9565b905092915050565b6000808284611cc391906126e6565b905083811015611d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cff90612521565b60405180910390fd5b8091505092915050565b6000611d1c61189a565b90506000611d338284611f2890919063ffffffff16565b9050611d8781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611de482600654611c6a90919063ffffffff16565b600681905550611dff81600754611cb490919063ffffffff16565b6007819055505050565b600080600080611e356064611e27888a611f2890919063ffffffff16565b6118c590919063ffffffff16565b90506000611e5f6064611e51888b611f2890919063ffffffff16565b6118c590919063ffffffff16565b90506000611e8882611e7a858c611c6a90919063ffffffff16565b611c6a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611eb88589611f2890919063ffffffff16565b90506000611ecf8689611f2890919063ffffffff16565b90506000611ee68789611f2890919063ffffffff16565b90506000611f0f82611f018587611c6a90919063ffffffff16565b611c6a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611f3b5760009050611f9d565b60008284611f49919061276d565b9050828482611f58919061273c565b14611f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8f90612541565b60405180910390fd5b809150505b92915050565b600081359050611fb281612d2e565b92915050565b600081519050611fc781612d2e565b92915050565b600081359050611fdc81612d45565b92915050565b600060208284031215611ff857611ff7612987565b5b600061200684828501611fa3565b91505092915050565b60006020828403121561202557612024612987565b5b600061203384828501611fb8565b91505092915050565b6000806040838503121561205357612052612987565b5b600061206185828601611fa3565b925050602061207285828601611fa3565b9150509250929050565b60008060006060848603121561209557612094612987565b5b60006120a386828701611fa3565b93505060206120b486828701611fa3565b92505060406120c586828701611fcd565b9150509250925092565b600080604083850312156120e6576120e5612987565b5b60006120f485828601611fa3565b925050602061210585828601611fcd565b9150509250929050565b600061211b8383612127565b60208301905092915050565b612130816127fb565b82525050565b61213f816127fb565b82525050565b6000612150826126a1565b61215a81856126c4565b935061216583612691565b8060005b8381101561219657815161217d888261210f565b9750612188836126b7565b925050600181019050612169565b5085935050505092915050565b6121ac8161280d565b82525050565b6121bb81612850565b82525050565b6121ca81612862565b82525050565b60006121db826126ac565b6121e581856126d5565b93506121f5818560208601612898565b6121fe8161298c565b840191505092915050565b60006122166023836126d5565b91506122218261299d565b604082019050919050565b6000612239603f836126d5565b9150612244826129ec565b604082019050919050565b600061225c602a836126d5565b915061226782612a3b565b604082019050919050565b600061227f601c836126d5565b915061228a82612a8a565b602082019050919050565b60006122a26022836126d5565b91506122ad82612ab3565b604082019050919050565b60006122c56023836126d5565b91506122d082612b02565b604082019050919050565b60006122e8601b836126d5565b91506122f382612b51565b602082019050919050565b600061230b6021836126d5565b915061231682612b7a565b604082019050919050565b600061232e6020836126d5565b915061233982612bc9565b602082019050919050565b60006123516029836126d5565b915061235c82612bf2565b604082019050919050565b60006123746025836126d5565b915061237f82612c41565b604082019050919050565b60006123976023836126d5565b91506123a282612c90565b604082019050919050565b60006123ba6024836126d5565b91506123c582612cdf565b604082019050919050565b6123d981612839565b82525050565b6123e881612843565b82525050565b60006020820190506124036000830184612136565b92915050565b600060208201905061241e60008301846121a3565b92915050565b600060208201905061243960008301846121b2565b92915050565b6000602082019050818103600083015261245981846121d0565b905092915050565b6000602082019050818103600083015261247a81612209565b9050919050565b6000602082019050818103600083015261249a8161222c565b9050919050565b600060208201905081810360008301526124ba8161224f565b9050919050565b600060208201905081810360008301526124da81612272565b9050919050565b600060208201905081810360008301526124fa81612295565b9050919050565b6000602082019050818103600083015261251a816122b8565b9050919050565b6000602082019050818103600083015261253a816122db565b9050919050565b6000602082019050818103600083015261255a816122fe565b9050919050565b6000602082019050818103600083015261257a81612321565b9050919050565b6000602082019050818103600083015261259a81612344565b9050919050565b600060208201905081810360008301526125ba81612367565b9050919050565b600060208201905081810360008301526125da8161238a565b9050919050565b600060208201905081810360008301526125fa816123ad565b9050919050565b600060208201905061261660008301846123d0565b92915050565b600060a08201905061263160008301886123d0565b61263e60208301876121c1565b81810360408301526126508186612145565b905061265f6060830185612136565b61266c60808301846123d0565b9695505050505050565b600060208201905061268b60008301846123df565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006126f182612839565b91506126fc83612839565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612731576127306128cb565b5b828201905092915050565b600061274782612839565b915061275283612839565b925082612762576127616128fa565b5b828204905092915050565b600061277882612839565b915061278383612839565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bc576127bb6128cb565b5b828202905092915050565b60006127d282612839565b91506127dd83612839565b9250828210156127f0576127ef6128cb565b5b828203905092915050565b600061280682612819565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061285b82612874565b9050919050565b600061286d82612839565b9050919050565b600061287f82612886565b9050919050565b600061289182612819565b9050919050565b60005b838110156128b657808201518184015260208101905061289b565b838111156128c5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612d37816127fb565b8114612d4257600080fd5b50565b612d4e81612839565b8114612d5957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002b358ca26e1669fd32e77e379413815f5fe15129e714ce0341fd562830c976c64736f6c63430008070033

Deployed Bytecode Sourcemap

3887:11953:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6493:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5265:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6770:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7619:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5633:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6679:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5313:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6873:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1628:148;;;;;;;;;;;;;:::i;:::-;;9145:180;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5515:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1414:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6584:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7019:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5051:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5008:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7226:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6493:83;6530:13;6563:5;;;;;;;;;;;;;;;;;6556:12;;6493:83;:::o;7418:193::-;7520:4;7542:39;7551:12;:10;:12::i;:::-;7565:7;7574:6;7542:8;:39::i;:::-;7599:4;7592:11;;7418:193;;;;:::o;5464:38::-;;;;;;;;;;;;;:::o;5265:41::-;;;;;;;;;;;;;:::o;6770:95::-;6823:7;4451:22;6843:14;;6770:95;:::o;7619:446::-;7751:4;7768:36;7778:6;7786:9;7797:6;7768:9;:36::i;:::-;7815:220;7838:6;7859:12;:10;:12::i;:::-;7886:138;7942:6;7886:138;;;;;;;;;;;;;;;;;:11;:19;7898:6;7886:19;;;;;;;;;;;;;;;:33;7906:12;:10;:12::i;:::-;7886:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7815:8;:220::i;:::-;8053:4;8046:11;;7619:446;;;;;:::o;5633:55::-;;;;:::o;6679:83::-;6720:5;4124:2;6738:16;;6679:83;:::o;5313:28::-;;;;;;;;;;;;;:::o;6873:138::-;6939:7;6966:37;6986:7;:16;6994:7;6986:16;;;;;;;;;;;;;;;;6966:19;:37::i;:::-;6959:44;;6873:138;;;:::o;1628:148::-;1551:12;:10;:12::i;:::-;1541:22;;:6;;;;;;;;;;:22;;;1533:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1735:1:::1;1698:40;;1719:6;::::0;::::1;;;;;;;;1698:40;;;;;;;;;;;;1766:1;1749:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1628:148::o:0;9145:180::-;9185:4;9223;9202:18;;:25;;;;;;;;;;;;;;;;;;4451:22;9238:12;:22;;;;4451;9271:14;:24;;;;9313:4;9306:11;;9145:180;:::o;5515:50::-;;;;:::o;1414:79::-;1452:7;1479:6;;;;;;;;;;;1472:13;;1414:79;:::o;5573:52::-;;;;:::o;6584:87::-;6623:13;6656:7;;;;;;;;;;;;;;;;;6649:14;;6584:87;:::o;7019:199::-;7124:4;7146:42;7156:12;:10;:12::i;:::-;7170:9;7181:6;7146:9;:42::i;:::-;7206:4;7199:11;;7019:199;;;;:::o;5051:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5008:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;7226:184::-;7343:7;7375:11;:18;7387:5;7375:18;;;;;;;;;;;;;;;:27;7394:7;7375:27;;;;;;;;;;;;;;;;7368:34;;7226:184;;;;:::o;173:98::-;226:7;253:10;246:17;;173:98;:::o;8768:369::-;8912:1;8895:19;;:5;:19;;;;8887:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8993:1;8974:21;;:7;:21;;;;8966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9075:6;9045:11;:18;9057:5;9045:18;;;;;;;;;;;;;;;:27;9064:7;9045:27;;;;;;;;;;;;;;;:36;;;;9113:7;9097:32;;9106:5;9097:32;;;9122:6;9097:32;;;;;;:::i;:::-;;;;;;;;8768:369;;;:::o;9333:2478::-;9471:1;9455:18;;:4;:18;;;;9447:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9548:1;9534:16;;:2;:16;;;;9526:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9618:1;9609:6;:10;9601:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9689:7;:5;:7::i;:::-;9681:15;;:4;:15;;;;:32;;;;;9706:7;:5;:7::i;:::-;9700:13;;:2;:13;;;;9681:32;:57;;;;;9725:13;;;;;;;;;;;9717:21;;:4;:21;;;;9681:57;:79;;;;;9742:18;;;;;;;;;;;9681:79;9678:94;;;9763:7;;9678:94;9796:7;:5;:7::i;:::-;9788:15;;:4;:15;;;;:32;;;;;9813:7;:5;:7::i;:::-;9807:13;;:2;:13;;;;9788:32;9784:1265;;;9889:11;;;;;;;;;;;9884:144;;9929:9;:15;9939:4;9929:15;;;;;;;;;;;;;;;;;;;;;;;;;9921:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9884:144;10076:12;;10066:6;:22;;10058:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10145:4;:10;10150:4;10145:10;;;;;;;;;;;;;;;;;;;;;;;;;10144:11;:24;;;;;10160:4;:8;10165:2;10160:8;;;;;;;;;;;;;;;;;;;;;;;;;10159:9;10144:24;10136:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10246:13;;;;;;;;;;;10240:19;;:2;:19;;;10237:146;;10313:14;;10304:6;10288:13;10298:2;10288:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10280:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10237:146;10411:28;10442:24;10460:4;10442:9;:24::i;:::-;10411:55;;10481:12;10520:19;;10496:20;:43;;10481:58;;10583:12;;10559:20;:36;10556:124;;10652:12;;10629:35;;10556:124;10712:7;:18;;;;;10724:6;;;;;;;;;;10723:7;10712:18;:43;;;;;10742:13;;;;;;;;;;;10734:21;;:4;:21;;;;10712:43;:58;;;;;10759:11;;;;;;;;;;;10712:58;10708:330;;;10791:38;10808:20;10791:16;:38::i;:::-;10848:26;10877:21;10848:50;;10942:1;10921:18;:22;10917:106;;;10968:35;10981:21;10968:12;:35::i;:::-;10917:106;10772:266;10708:330;9822:1227;;9784:1265;11069:12;11084:4;11069:19;;11133:18;:24;11152:4;11133:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11161:18;:22;11180:2;11161:22;;;;;;;;;;;;;;;;;;;;;;;;;11133:50;11132:102;;;;11197:13;;;;;;;;;;;11189:21;;:4;:21;;;;:44;;;;;11220:13;;;;;;;;;;;11214:19;;:2;:19;;;;11189:44;11132:102;11128:622;;;11261:5;11251:15;;11128:622;;;11356:13;;;;;;;;;;;11348:21;;:4;:21;;;:55;;;;;11387:15;;;;;;;;;;;11373:30;;:2;:30;;;;11348:55;11345:162;;;11436:14;;11424:9;:26;;;;11479:12;;11469:7;:22;;;;11345:162;11570:13;;;;;;;;;;;11564:19;;:2;:19;;;:55;;;;;11603:15;;;;;;;;;;;11587:32;;:4;:32;;;;11564:55;11560:165;;;11652:15;;11640:9;:27;;;;11696:13;;11686:7;:23;;;;11560:165;11128:622;11762:41;11777:4;11783:2;11787:6;11795:7;11762:14;:41::i;:::-;9436:2375;9333:2478;;;;:::o;2138:224::-;2258:7;2291:1;2286;:6;;2294:12;2278:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2318:9;2334:1;2330;:5;;;;:::i;:::-;2318:17;;2353:1;2346:8;;;2138:224;;;;;:::o;8073:323::-;8168:7;8226;;8215;:18;;8193:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8314:19;8336:10;:8;:10::i;:::-;8314:32;;8364:24;8376:11;8364:7;:11;;:24;;;;:::i;:::-;8357:31;;;8073:323;;;:::o;11819:483::-;5791:4;5782:6;;:13;;;;;;;;;;;;;;;;;;11897:21:::1;11935:1;11921:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11897:40;;11966:4;11948;11953:1;11948:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11992:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11982:4;11987:1;11982:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12025:62;12042:4;12057:15;;;;;;;;;;;12075:11;12025:8;:62::i;:::-;12098:15;;;;;;;;;;;:66;;;12179:11;12205:1;12221:4;12248;12268:15;12098:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11886:416;5827:5:::0;5818:6;;:14;;;;;;;;;;;;;;;;;;11819:483;:::o;12310:99::-;12367:17;;;;;;;;;;;:26;;:34;12394:6;12367:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12310:99;:::o;12417:282::-;12573:7;12568:28;;12582:14;:12;:14::i;:::-;12568:28;12607:44;12625:6;12633:9;12644:6;12607:17;:44::i;:::-;12667:7;12662:29;;12676:15;:13;:15::i;:::-;12662:29;12417:282;;;;:::o;15392:166::-;15434:7;15455:15;15472;15491:19;:17;:19::i;:::-;15454:56;;;;15530:20;15542:7;15530;:11;;:20;;;;:::i;:::-;15523:27;;;;15392:166;:::o;2624:132::-;2682:7;2709:39;2713:1;2716;2709:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2702:46;;2624:132;;;;:::o;8404:231::-;8464:1;8451:9;;:14;:30;;;;;8480:1;8469:7;;:12;8451:30;8447:43;;;8483:7;;8447:43;8526:9;;8506:17;:29;;;;8564:7;;8546:15;:25;;;;8604:1;8592:9;:13;;;;8626:1;8616:7;:11;;;;8404:231;:::o;12707:610::-;12854:15;12884:23;12922:12;12949:23;12987:12;13014:13;13041:19;13052:7;13041:10;:19::i;:::-;12839:221;;;;;;;;;;;;13089:28;13109:7;13089;:15;13097:6;13089:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13071:7;:15;13079:6;13071:15;;;;;;;;;;;;;;;:46;;;;13149:39;13172:15;13149:7;:18;13157:9;13149:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13128:7;:18;13136:9;13128:18;;;;;;;;;;;;;;;:60;;;;13199:16;13209:5;13199:9;:16::i;:::-;13226:23;13238:4;13244;13226:11;:23::i;:::-;13282:9;13265:44;;13274:6;13265:44;;;13293:15;13265:44;;;;;;:::i;:::-;;;;;;;;12828:489;;;;;;12707:610;;;:::o;8643:117::-;8699:17;;8687:9;:29;;;;8737:15;;8727:7;:25;;;;8643:117::o;15566:263::-;15617:7;15626;15646:15;15664:7;;15646:25;;15682:15;4451:22;15682:25;;15732:20;4451:22;15732:7;;:11;;:20;;;;:::i;:::-;15722:7;:30;15718:61;;;15762:7;;4451:22;15754:25;;;;;;;;15718:61;15804:7;15813;15796:25;;;;;;15566:263;;;:::o;2764:223::-;2884:7;2916:1;2912;:5;2919:12;2904:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2943:9;2959:1;2955;:5;;;;:::i;:::-;2943:17;;2978:1;2971:8;;;2764:223;;;;;:::o;13736:625::-;13836:7;13858;13880;13902;13924;13946;13982:23;14007:12;14021:13;14051:40;14063:7;14072:9;;14083:7;;14051:11;:40::i;:::-;13981:110;;;;;;14102:19;14124:10;:8;:10::i;:::-;14102:32;;14146:15;14163:23;14188:12;14217:46;14229:7;14238:4;14244:5;14251:11;14217;:46::i;:::-;14145:118;;;;;;14292:7;14301:15;14318:4;14324:15;14341:4;14347:5;14284:69;;;;;;;;;;;;;;;;;;;13736:625;;;;;;;:::o;1994:136::-;2052:7;2079:43;2083:1;2086;2079:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2072:50;;1994:136;;;;:::o;1807:179::-;1865:7;1885:9;1901:1;1897;:5;;;;:::i;:::-;1885:17;;1926:1;1921;:6;;1913:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1977:1;1970:8;;;1807:179;;;;:::o;13325:211::-;13378:19;13400:10;:8;:10::i;:::-;13378:32;;13421:13;13437:22;13447:11;13437:5;:9;;:22;;;;:::i;:::-;13421:38;;13495:33;13522:5;13495:7;:22;13511:4;13495:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13470:7;:22;13486:4;13470:22;;;;;;;;;;;;;;;:58;;;;13367:169;;13325:211;:::o;13544:147::-;13622:17;13634:4;13622:7;;:11;;:17;;;;:::i;:::-;13612:7;:27;;;;13663:20;13678:4;13663:10;;:14;;:20;;;;:::i;:::-;13650:10;:33;;;;13544:147;;:::o;14369:471::-;14538:7;14560;14582;14617:12;14632:30;14658:3;14632:21;14644:8;14632:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14617:45;;14673:13;14689:28;14713:3;14689:19;14701:6;14689:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14673:44;;14728:23;14754:28;14776:5;14754:17;14766:4;14754:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14728:54;;14803:15;14820:4;14826:5;14795:37;;;;;;;;;14369:471;;;;;;;:::o;14848:536::-;15042:7;15064;15086;15121:15;15139:24;15151:11;15139:7;:11;;:24;;;;:::i;:::-;15121:42;;15174:12;15189:21;15198:11;15189:4;:8;;:21;;;;:::i;:::-;15174:36;;15221:13;15237:22;15247:11;15237:5;:9;;:22;;;;:::i;:::-;15221:38;;15270:23;15296:28;15318:5;15296:17;15308:4;15296:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15270:54;;15345:7;15354:15;15371:4;15337:39;;;;;;;;;;14848:536;;;;;;;;:::o;2370:246::-;2428:7;2457:1;2452;:6;2448:47;;;2482:1;2475:8;;;;2448:47;2505:9;2521:1;2517;:5;;;;:::i;:::-;2505:17;;2550:1;2545;2541;:5;;;;:::i;:::-;:10;2533:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2607:1;2600:8;;;2370:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;301:139;;;;:::o;446:329::-;505:6;554:2;542:9;533:7;529:23;525:32;522:119;;;560:79;;:::i;:::-;522:119;680:1;705:53;750:7;741:6;730:9;726:22;705:53;:::i;:::-;695:63;;651:117;446:329;;;;:::o;781:351::-;851:6;900:2;888:9;879:7;875:23;871:32;868:119;;;906:79;;:::i;:::-;868:119;1026:1;1051:64;1107:7;1098:6;1087:9;1083:22;1051:64;:::i;:::-;1041:74;;997:128;781:351;;;;:::o;1138:474::-;1206:6;1214;1263:2;1251:9;1242:7;1238:23;1234:32;1231:119;;;1269:79;;:::i;:::-;1231:119;1389:1;1414:53;1459:7;1450:6;1439:9;1435:22;1414:53;:::i;:::-;1404:63;;1360:117;1516:2;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1487:118;1138:474;;;;;:::o;1618:619::-;1695:6;1703;1711;1760:2;1748:9;1739:7;1735:23;1731:32;1728:119;;;1766:79;;:::i;:::-;1728:119;1886:1;1911:53;1956:7;1947:6;1936:9;1932:22;1911:53;:::i;:::-;1901:63;;1857:117;2013:2;2039:53;2084:7;2075:6;2064:9;2060:22;2039:53;:::i;:::-;2029:63;;1984:118;2141:2;2167:53;2212:7;2203:6;2192:9;2188:22;2167:53;:::i;:::-;2157:63;;2112:118;1618:619;;;;;:::o;2243:474::-;2311:6;2319;2368:2;2356:9;2347:7;2343:23;2339:32;2336:119;;;2374:79;;:::i;:::-;2336:119;2494:1;2519:53;2564:7;2555:6;2544:9;2540:22;2519:53;:::i;:::-;2509:63;;2465:117;2621:2;2647:53;2692:7;2683:6;2672:9;2668:22;2647:53;:::i;:::-;2637:63;;2592:118;2243:474;;;;;:::o;2723:179::-;2792:10;2813:46;2855:3;2847:6;2813:46;:::i;:::-;2891:4;2886:3;2882:14;2868:28;;2723:179;;;;:::o;2908:108::-;2985:24;3003:5;2985:24;:::i;:::-;2980:3;2973:37;2908:108;;:::o;3022:118::-;3109:24;3127:5;3109:24;:::i;:::-;3104:3;3097:37;3022:118;;:::o;3176:732::-;3295:3;3324:54;3372:5;3324:54;:::i;:::-;3394:86;3473:6;3468:3;3394:86;:::i;:::-;3387:93;;3504:56;3554:5;3504:56;:::i;:::-;3583:7;3614:1;3599:284;3624:6;3621:1;3618:13;3599:284;;;3700:6;3694:13;3727:63;3786:3;3771:13;3727:63;:::i;:::-;3720:70;;3813:60;3866:6;3813:60;:::i;:::-;3803:70;;3659:224;3646:1;3643;3639:9;3634:14;;3599:284;;;3603:14;3899:3;3892:10;;3300:608;;;3176:732;;;;:::o;3914:109::-;3995:21;4010:5;3995:21;:::i;:::-;3990:3;3983:34;3914:109;;:::o;4029:183::-;4142:63;4199:5;4142:63;:::i;:::-;4137:3;4130:76;4029:183;;:::o;4218:147::-;4313:45;4352:5;4313:45;:::i;:::-;4308:3;4301:58;4218:147;;:::o;4371:364::-;4459:3;4487:39;4520:5;4487:39;:::i;:::-;4542:71;4606:6;4601:3;4542:71;:::i;:::-;4535:78;;4622:52;4667:6;4662:3;4655:4;4648:5;4644:16;4622:52;:::i;:::-;4699:29;4721:6;4699:29;:::i;:::-;4694:3;4690:39;4683:46;;4463:272;4371:364;;;;:::o;4741:366::-;4883:3;4904:67;4968:2;4963:3;4904:67;:::i;:::-;4897:74;;4980:93;5069:3;4980:93;:::i;:::-;5098:2;5093:3;5089:12;5082:19;;4741:366;;;:::o;5113:::-;5255:3;5276:67;5340:2;5335:3;5276:67;:::i;:::-;5269:74;;5352:93;5441:3;5352:93;:::i;:::-;5470:2;5465:3;5461:12;5454:19;;5113:366;;;:::o;5485:::-;5627:3;5648:67;5712:2;5707:3;5648:67;:::i;:::-;5641:74;;5724:93;5813:3;5724:93;:::i;:::-;5842:2;5837:3;5833:12;5826:19;;5485:366;;;:::o;5857:::-;5999:3;6020:67;6084:2;6079:3;6020:67;:::i;:::-;6013:74;;6096:93;6185:3;6096:93;:::i;:::-;6214:2;6209:3;6205:12;6198:19;;5857:366;;;:::o;6229:::-;6371:3;6392:67;6456:2;6451:3;6392:67;:::i;:::-;6385:74;;6468:93;6557:3;6468:93;:::i;:::-;6586:2;6581:3;6577:12;6570:19;;6229:366;;;:::o;6601:::-;6743:3;6764:67;6828:2;6823:3;6764:67;:::i;:::-;6757:74;;6840:93;6929:3;6840:93;:::i;:::-;6958:2;6953:3;6949:12;6942:19;;6601:366;;;:::o;6973:::-;7115:3;7136:67;7200:2;7195:3;7136:67;:::i;:::-;7129:74;;7212:93;7301:3;7212:93;:::i;:::-;7330:2;7325:3;7321:12;7314:19;;6973:366;;;:::o;7345:::-;7487:3;7508:67;7572:2;7567:3;7508:67;:::i;:::-;7501:74;;7584:93;7673:3;7584:93;:::i;:::-;7702:2;7697:3;7693:12;7686:19;;7345:366;;;:::o;7717:::-;7859:3;7880:67;7944:2;7939:3;7880:67;:::i;:::-;7873:74;;7956:93;8045:3;7956:93;:::i;:::-;8074:2;8069:3;8065:12;8058:19;;7717:366;;;:::o;8089:::-;8231:3;8252:67;8316:2;8311:3;8252:67;:::i;:::-;8245:74;;8328:93;8417:3;8328:93;:::i;:::-;8446:2;8441:3;8437:12;8430:19;;8089:366;;;:::o;8461:::-;8603:3;8624:67;8688:2;8683:3;8624:67;:::i;:::-;8617:74;;8700:93;8789:3;8700:93;:::i;:::-;8818:2;8813:3;8809:12;8802:19;;8461:366;;;:::o;8833:::-;8975:3;8996:67;9060:2;9055:3;8996:67;:::i;:::-;8989:74;;9072:93;9161:3;9072:93;:::i;:::-;9190:2;9185:3;9181:12;9174:19;;8833:366;;;:::o;9205:::-;9347:3;9368:67;9432:2;9427:3;9368:67;:::i;:::-;9361:74;;9444:93;9533:3;9444:93;:::i;:::-;9562:2;9557:3;9553:12;9546:19;;9205:366;;;:::o;9577:118::-;9664:24;9682:5;9664:24;:::i;:::-;9659:3;9652:37;9577:118;;:::o;9701:112::-;9784:22;9800:5;9784:22;:::i;:::-;9779:3;9772:35;9701:112;;:::o;9819:222::-;9912:4;9950:2;9939:9;9935:18;9927:26;;9963:71;10031:1;10020:9;10016:17;10007:6;9963:71;:::i;:::-;9819:222;;;;:::o;10047:210::-;10134:4;10172:2;10161:9;10157:18;10149:26;;10185:65;10247:1;10236:9;10232:17;10223:6;10185:65;:::i;:::-;10047:210;;;;:::o;10263:274::-;10382:4;10420:2;10409:9;10405:18;10397:26;;10433:97;10527:1;10516:9;10512:17;10503:6;10433:97;:::i;:::-;10263:274;;;;:::o;10543:313::-;10656:4;10694:2;10683:9;10679:18;10671:26;;10743:9;10737:4;10733:20;10729:1;10718:9;10714:17;10707:47;10771:78;10844:4;10835:6;10771:78;:::i;:::-;10763:86;;10543:313;;;;:::o;10862:419::-;11028:4;11066:2;11055:9;11051:18;11043:26;;11115:9;11109:4;11105:20;11101:1;11090:9;11086:17;11079:47;11143:131;11269:4;11143:131;:::i;:::-;11135:139;;10862:419;;;:::o;11287:::-;11453:4;11491:2;11480:9;11476:18;11468:26;;11540:9;11534:4;11530:20;11526:1;11515:9;11511:17;11504:47;11568:131;11694:4;11568:131;:::i;:::-;11560:139;;11287:419;;;:::o;11712:::-;11878:4;11916:2;11905:9;11901:18;11893:26;;11965:9;11959:4;11955:20;11951:1;11940:9;11936:17;11929:47;11993:131;12119:4;11993:131;:::i;:::-;11985:139;;11712:419;;;:::o;12137:::-;12303:4;12341:2;12330:9;12326:18;12318:26;;12390:9;12384:4;12380:20;12376:1;12365:9;12361:17;12354:47;12418:131;12544:4;12418:131;:::i;:::-;12410:139;;12137:419;;;:::o;12562:::-;12728:4;12766:2;12755:9;12751:18;12743:26;;12815:9;12809:4;12805:20;12801:1;12790:9;12786:17;12779:47;12843:131;12969:4;12843:131;:::i;:::-;12835:139;;12562:419;;;:::o;12987:::-;13153:4;13191:2;13180:9;13176:18;13168:26;;13240:9;13234:4;13230:20;13226:1;13215:9;13211:17;13204:47;13268:131;13394:4;13268:131;:::i;:::-;13260:139;;12987:419;;;:::o;13412:::-;13578:4;13616:2;13605:9;13601:18;13593:26;;13665:9;13659:4;13655:20;13651:1;13640:9;13636:17;13629:47;13693:131;13819:4;13693:131;:::i;:::-;13685:139;;13412:419;;;:::o;13837:::-;14003:4;14041:2;14030:9;14026:18;14018:26;;14090:9;14084:4;14080:20;14076:1;14065:9;14061:17;14054:47;14118:131;14244:4;14118:131;:::i;:::-;14110:139;;13837:419;;;:::o;14262:::-;14428:4;14466:2;14455:9;14451:18;14443:26;;14515:9;14509:4;14505:20;14501:1;14490:9;14486:17;14479:47;14543:131;14669:4;14543:131;:::i;:::-;14535:139;;14262:419;;;:::o;14687:::-;14853:4;14891:2;14880:9;14876:18;14868:26;;14940:9;14934:4;14930:20;14926:1;14915:9;14911:17;14904:47;14968:131;15094:4;14968:131;:::i;:::-;14960:139;;14687:419;;;:::o;15112:::-;15278:4;15316:2;15305:9;15301:18;15293:26;;15365:9;15359:4;15355:20;15351:1;15340:9;15336:17;15329:47;15393:131;15519:4;15393:131;:::i;:::-;15385:139;;15112:419;;;:::o;15537:::-;15703:4;15741:2;15730:9;15726:18;15718:26;;15790:9;15784:4;15780:20;15776:1;15765:9;15761:17;15754:47;15818:131;15944:4;15818:131;:::i;:::-;15810:139;;15537:419;;;:::o;15962:::-;16128:4;16166:2;16155:9;16151:18;16143:26;;16215:9;16209:4;16205:20;16201:1;16190:9;16186:17;16179:47;16243:131;16369:4;16243:131;:::i;:::-;16235:139;;15962:419;;;:::o;16387:222::-;16480:4;16518:2;16507:9;16503:18;16495:26;;16531:71;16599:1;16588:9;16584:17;16575:6;16531:71;:::i;:::-;16387:222;;;;:::o;16615:831::-;16878:4;16916:3;16905:9;16901:19;16893:27;;16930:71;16998:1;16987:9;16983:17;16974:6;16930:71;:::i;:::-;17011:80;17087:2;17076:9;17072:18;17063:6;17011:80;:::i;:::-;17138:9;17132:4;17128:20;17123:2;17112:9;17108:18;17101:48;17166:108;17269:4;17260:6;17166:108;:::i;:::-;17158:116;;17284:72;17352:2;17341:9;17337:18;17328:6;17284:72;:::i;:::-;17366:73;17434:3;17423:9;17419:19;17410:6;17366:73;:::i;:::-;16615:831;;;;;;;;:::o;17452:214::-;17541:4;17579:2;17568:9;17564:18;17556:26;;17592:67;17656:1;17645:9;17641:17;17632:6;17592:67;:::i;:::-;17452:214;;;;:::o;17753:132::-;17820:4;17843:3;17835:11;;17873:4;17868:3;17864:14;17856:22;;17753:132;;;:::o;17891:114::-;17958:6;17992:5;17986:12;17976:22;;17891:114;;;:::o;18011:99::-;18063:6;18097:5;18091:12;18081:22;;18011:99;;;:::o;18116:113::-;18186:4;18218;18213:3;18209:14;18201:22;;18116:113;;;:::o;18235:184::-;18334:11;18368:6;18363:3;18356:19;18408:4;18403:3;18399:14;18384:29;;18235:184;;;;:::o;18425:169::-;18509:11;18543:6;18538:3;18531:19;18583:4;18578:3;18574:14;18559:29;;18425:169;;;;:::o;18600:305::-;18640:3;18659:20;18677:1;18659:20;:::i;:::-;18654:25;;18693:20;18711:1;18693:20;:::i;:::-;18688:25;;18847:1;18779:66;18775:74;18772:1;18769:81;18766:107;;;18853:18;;:::i;:::-;18766:107;18897:1;18894;18890:9;18883:16;;18600:305;;;;:::o;18911:185::-;18951:1;18968:20;18986:1;18968:20;:::i;:::-;18963:25;;19002:20;19020:1;19002:20;:::i;:::-;18997:25;;19041:1;19031:35;;19046:18;;:::i;:::-;19031:35;19088:1;19085;19081:9;19076:14;;18911:185;;;;:::o;19102:348::-;19142:7;19165:20;19183:1;19165:20;:::i;:::-;19160:25;;19199:20;19217:1;19199:20;:::i;:::-;19194:25;;19387:1;19319:66;19315:74;19312:1;19309:81;19304:1;19297:9;19290:17;19286:105;19283:131;;;19394:18;;:::i;:::-;19283:131;19442:1;19439;19435:9;19424:20;;19102:348;;;;:::o;19456:191::-;19496:4;19516:20;19534:1;19516:20;:::i;:::-;19511:25;;19550:20;19568:1;19550:20;:::i;:::-;19545:25;;19589:1;19586;19583:8;19580:34;;;19594:18;;:::i;:::-;19580:34;19639:1;19636;19632:9;19624:17;;19456:191;;;;:::o;19653:96::-;19690:7;19719:24;19737:5;19719:24;:::i;:::-;19708:35;;19653:96;;;:::o;19755:90::-;19789:7;19832:5;19825:13;19818:21;19807:32;;19755:90;;;:::o;19851:126::-;19888:7;19928:42;19921:5;19917:54;19906:65;;19851:126;;;:::o;19983:77::-;20020:7;20049:5;20038:16;;19983:77;;;:::o;20066:86::-;20101:7;20141:4;20134:5;20130:16;20119:27;;20066:86;;;:::o;20158:152::-;20234:9;20267:37;20298:5;20267:37;:::i;:::-;20254:50;;20158:152;;;:::o;20316:121::-;20374:9;20407:24;20425:5;20407:24;:::i;:::-;20394:37;;20316:121;;;:::o;20443:126::-;20493:9;20526:37;20557:5;20526:37;:::i;:::-;20513:50;;20443:126;;;:::o;20575:113::-;20625:9;20658:24;20676:5;20658:24;:::i;:::-;20645:37;;20575:113;;;:::o;20694:307::-;20762:1;20772:113;20786:6;20783:1;20780:13;20772:113;;;20871:1;20866:3;20862:11;20856:18;20852:1;20847:3;20843:11;20836:39;20808:2;20805:1;20801:10;20796:15;;20772:113;;;20903:6;20900:1;20897:13;20894:101;;;20983:1;20974:6;20969:3;20965:16;20958:27;20894:101;20743:258;20694:307;;;:::o;21007:180::-;21055:77;21052:1;21045:88;21152:4;21149:1;21142:15;21176:4;21173:1;21166:15;21193:180;21241:77;21238:1;21231:88;21338:4;21335:1;21328:15;21362:4;21359:1;21352:15;21379:180;21427:77;21424:1;21417:88;21524:4;21521:1;21514:15;21548:4;21545:1;21538:15;21565:180;21613:77;21610:1;21603:88;21710:4;21707:1;21700:15;21734:4;21731:1;21724:15;21874:117;21983:1;21980;21973:12;21997:102;22038:6;22089:2;22085:7;22080:2;22073:5;22069:14;22065:28;22055:38;;21997:102;;;:::o;22105:222::-;22245:34;22241:1;22233:6;22229:14;22222:58;22314:5;22309:2;22301:6;22297:15;22290:30;22105:222;:::o;22333:250::-;22473:34;22469:1;22461:6;22457:14;22450:58;22542:33;22537:2;22529:6;22525:15;22518:58;22333:250;:::o;22589:229::-;22729:34;22725:1;22717:6;22713:14;22706:58;22798:12;22793:2;22785:6;22781:15;22774:37;22589:229;:::o;22824:178::-;22964:30;22960:1;22952:6;22948:14;22941:54;22824:178;:::o;23008:221::-;23148:34;23144:1;23136:6;23132:14;23125:58;23217:4;23212:2;23204:6;23200:15;23193:29;23008:221;:::o;23235:222::-;23375:34;23371:1;23363:6;23359:14;23352:58;23444:5;23439:2;23431:6;23427:15;23420:30;23235:222;:::o;23463:177::-;23603:29;23599:1;23591:6;23587:14;23580:53;23463:177;:::o;23646:220::-;23786:34;23782:1;23774:6;23770:14;23763:58;23855:3;23850:2;23842:6;23838:15;23831:28;23646:220;:::o;23872:182::-;24012:34;24008:1;24000:6;23996:14;23989:58;23872:182;:::o;24060:228::-;24200:34;24196:1;24188:6;24184:14;24177:58;24269:11;24264:2;24256:6;24252:15;24245:36;24060:228;:::o;24294:224::-;24434:34;24430:1;24422:6;24418:14;24411:58;24503:7;24498:2;24490:6;24486:15;24479:32;24294:224;:::o;24524:222::-;24664:34;24660:1;24652:6;24648:14;24641:58;24733:5;24728:2;24720:6;24716:15;24709:30;24524:222;:::o;24752:223::-;24892:34;24888:1;24880:6;24876:14;24869:58;24961:6;24956:2;24948:6;24944:15;24937:31;24752:223;:::o;24981:122::-;25054:24;25072:5;25054:24;:::i;:::-;25047:5;25044:35;25034:63;;25093:1;25090;25083:12;25034:63;24981:122;:::o;25109:::-;25182:24;25200:5;25182:24;:::i;:::-;25175:5;25172:35;25162:63;;25221:1;25218;25211:12;25162:63;25109:122;:::o

Swarm Source

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