ETH Price: $3,215.36 (+5.29%)

Token

Azalea Doge's Sister (AZALEA)
 

Overview

Max Total Supply

1,000,000,000 AZALEA

Holders

110

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 AZALEA

Value
$0.00
0x2121faf3131F86F4d872035c2B5f8eFD4A478C7b
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:
Azalea

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-01
*/

/*

0x777, Azalea Doge's Sister $AZALEA on #ETHEREUM.

tg; @AzaleaToken
x; https://x.com/AzaleaToken
web; https://www.AzaleaToken.vip
medium; https://medium.com/@azaleaerc/16e50509e40b

*/

pragma solidity 0.8.23;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }//WE_BID_THIS_ONE

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

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Azalea is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint8 private constant _decimals= 9;
    uint256 private constant _tTotal= 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Azalea Doge's Sister";
    string private constant _symbol = unicode"AZALEA";
    uint256 public _maxTxAmount = (_tTotal * 2) / 100;
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;
    uint256 public _taxSwapThreshold = (_tTotal * 1) / 100;
    uint256 public _maxTaxSwap = (_tTotal * 1) / 100;

    uint256 private _initialBuyTax= 20;
    uint256 private _initialSellTax= 20;
    uint256 private _finalBuyTax= 0;
    uint256 private _finalSellTax= 0;
    uint256 private _reduceBuyTaxAt= 30;
    uint256 private _reduceSellTaxAt= 33;
    uint256 private _preventSwapBefore= 32;
    uint256 private _transferTax= 0;
    uint256 private _buyCount= 0;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private swapEnabled= false;
    bool private tradingOpen;
    bool private inSwap= false;
    uint256 private firstBlock= 0;
    uint256 private sellCount= 0;
    uint256 private lastSellBlock= 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet= payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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


    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    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;
    }//ALPHACALLERS

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


    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");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {

            if(_buyCount == 0){
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }

            if(_buyCount > 0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if(block.number == firstBlock){
                require(_buyCount < 26,"Exceeds buys on the first block.");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from != address(this) ){
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount =0;
                }
                require(sellCount<3, "Only 3 sells per block!");

                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance= address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }

                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount > 0){
          _balances[address(this)] = _balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from,to,amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a > b)? b : a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated( _tTotal);
    }

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

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
    
    function removeTax(uint256 _newFee) external{
      require(_msgSender() == _taxWallet);
      require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);

      _finalBuyTax = _newFee;
      _finalSellTax = _newFee;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
        require(_msgSender() == _taxWallet);

        if(tokens == 0){
            tokens= IERC20(tokenAddress).balanceOf(address(this));
        }

        emit ClearToken(tokenAddress,tokens);
        return IERC20(tokenAddress).transfer(_taxWallet,tokens);
    }

    function sendManual() external {
        require(_msgSender() == _taxWallet);

        uint256 ethBalance= address(this).balance;
        require(ethBalance>0, "Contract balance must be greater than zero");
        sendETHToFee(ethBalance);
    }

    function swapManual() external {
        require(_msgSender() == _taxWallet);

        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){ swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0){ 
            sendETHToFee(ethBalance); }
    }//IYKYK
}

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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","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":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526064620000146009600a620003b2565b6200002490633b9aca00620003c9565b62000031906002620003c9565b6200003d9190620003e3565b6005556064620000506009600a620003b2565b6200006090633b9aca00620003c9565b6200006d906002620003c9565b620000799190620003e3565b60065560646200008c6009600a620003b2565b6200009c90633b9aca00620003c9565b620000a9906001620003c9565b620000b59190620003e3565b6007556064620000c86009600a620003b2565b620000d890633b9aca00620003c9565b620000e5906001620003c9565b620000f19190620003e3565b60085560146009819055600a8190555f600b819055600c819055601e600d556021600e556020600f55601081905560118190556013805462ff00ff60a01b191690559081905560158190556016553480156200014b575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633179055620001ac6009600a620003b2565b620001bc90633b9aca00620003c9565b335f908152600160208190526040822092909255600390620001e55f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620002433390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200027c6009600a620003b2565b6200028c90633b9aca00620003c9565b60405190815260200160405180910390a362000403565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002f757815f1904821115620002db57620002db620002a3565b80851615620002e957918102915b93841c9390800290620002bc565b509250929050565b5f826200030f57506001620003ac565b816200031d57505f620003ac565b8160018114620003365760028114620003415762000361565b6001915050620003ac565b60ff841115620003555762000355620002a3565b50506001821b620003ac565b5060208310610133831016604e8410600b841016171562000386575081810a620003ac565b620003928383620002b7565b805f1904821115620003a857620003a8620002a3565b0290505b92915050565b5f620003c260ff841683620002ff565b9392505050565b8082028115828204841417620003ac57620003ac620002a3565b5f82620003fe57634e487b7160e01b5f52601260045260245ffd5b500490565b611b4280620004115f395ff3fe608060405260043610610134575f3560e01c806377b54bad116100a8578063a681671c1161006d578063a681671c1461035b578063a9059cbb1461036f578063bf474bed1461038e578063c9567bf9146103a3578063d2a8b440146103b7578063dd62ed3e146103cb575f80fd5b806377b54bad146102be5780637d1db4a5146102dd5780638da5cb5b146102f25780638f9a55c01461031857806395d89b411461032d575f80fd5b806318160ddd116100f957806318160ddd1461021457806323b872dd14610228578063313ce5671461024757806370a0823114610262578063715018a614610296578063751039fc146102aa575f80fd5b806304cf574d1461013f57806306fdde0314610160578063095ea7b3146101ae5780630faee56f146101dd578063109daa9914610200575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015e610159366004611707565b61040f565b005b34801561016b575f80fd5b5060408051808201909152601481527320bd30b632b0902237b3b293b99029b4b9ba32b960611b60208201525b6040516101a5919061171e565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c836600461177e565b610454565b60405190151581526020016101a5565b3480156101e8575f80fd5b506101f260085481565b6040519081526020016101a5565b34801561020b575f80fd5b5061015e61046a565b34801561021f575f80fd5b506101f26104d8565b348015610233575f80fd5b506101cd6102423660046117a8565b6104f8565b348015610252575f80fd5b50604051600981526020016101a5565b34801561026d575f80fd5b506101f261027c3660046117e6565b6001600160a01b03165f9081526001602052604090205490565b3480156102a1575f80fd5b5061015e61055f565b3480156102b5575f80fd5b5061015e6105d0565b3480156102c9575f80fd5b506101cd6102d836600461177e565b61067c565b3480156102e8575f80fd5b506101f260055481565b3480156102fd575f80fd5b505f546040516001600160a01b0390911681526020016101a5565b348015610323575f80fd5b506101f260065481565b348015610338575f80fd5b50604080518082019091526006815265415a414c454160d01b6020820152610198565b348015610366575f80fd5b5061015e6107cc565b34801561037a575f80fd5b506101cd61038936600461177e565b610858565b348015610399575f80fd5b506101f260075481565b3480156103ae575f80fd5b5061015e610864565b3480156103c2575f80fd5b5061015e610c0f565b3480156103d6575f80fd5b506101f26103e5366004611801565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6004546001600160a01b0316336001600160a01b03161461042e575f80fd5b600b5481111580156104425750600c548111155b61044a575f80fd5b600b819055600c55565b5f610460338484610c60565b5060015b92915050565b5f546001600160a01b0316331461049c5760405162461bcd60e51b815260040161049390611838565b60405180910390fd5b5f60108190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104e56009600a611961565b6104f390633b9aca0061196f565b905090565b5f610504848484610d83565b610555843361055085604051806060016040528060288152602001611ae5602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061138a565b610c60565b5060019392505050565b5f546001600160a01b031633146105885760405162461bcd60e51b815260040161049390611838565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105f95760405162461bcd60e51b815260040161049390611838565b6106056009600a611961565b61061390633b9aca0061196f565b6005556106226009600a611961565b61063090633b9aca0061196f565b6006557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106606009600a611961565b61066e90633b9aca0061196f565b6040519081526020016104ce565b6004545f906001600160a01b0316336001600160a01b03161461069d575f80fd5b815f0361070d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156106e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070a9190611986565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af11580156107a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c5919061199d565b9392505050565b6004546001600160a01b0316336001600160a01b0316146107eb575f80fd5b478061084c5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610493565b610855816113c2565b50565b5f610460338484610d83565b5f546001600160a01b0316331461088d5760405162461bcd60e51b815260040161049390611838565b601354600160a81b900460ff16156108e75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610493565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109309030906109226009600a611961565b61055090633b9aca0061196f565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610980573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a491906119bc565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2791906119bc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9591906119bc565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610adc816001600160a01b03165f9081526001602052604090205490565b5f80610aef5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b55573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b7a91906119d7565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf3919061199d565b506013805461ffff60a01b191661010160a01b17905543601455565b6004546001600160a01b0316336001600160a01b031614610c2e575f80fd5b305f908152600160205260409020548015610c4c57610c4c816113f9565b478015610c5c57610c5c816113c2565b5050565b6001600160a01b038316610cc25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b038216610d235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610de75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610493565b6001600160a01b038216610e495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610493565b5f8111610eaa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610493565b5f80546001600160a01b03858116911614801590610ed557505f546001600160a01b03848116911614155b1561124d576011545f03610f1257610f0f6064610f09600d5460115411610efe57600954610f02565b600b545b8590611569565b906115e7565b90505b60115415610f3757610f346064610f096010548561156990919063ffffffff16565b90505b6014544303610f9257601a60115410610f925760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610493565b6013546001600160a01b038581169116148015610fbd57506012546001600160a01b03848116911614155b8015610fe157506001600160a01b0383165f9081526003602052604090205460ff16155b156110e4576005548211156110385760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610493565b6006548261105a856001600160a01b03165f9081526001602052604090205490565b6110649190611a02565b11156110b25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610493565b6110cd6064610f09600d5460115411610efe57600954610f02565b601180549192505f6110de83611a15565b91905055505b6013546001600160a01b03848116911614801561110a57506001600160a01b0384163014155b15611137576111346064610f09600e546011541161112a57600a54610f02565b600c548590611569565b90505b305f90815260016020526040902054601354600160b01b900460ff1615801561116d57506013546001600160a01b038581169116145b80156111825750601354600160a01b900460ff165b801561118f575060075481115b801561119e5750600f54601154115b1561124b576016544311156111b2575f6015555b6003601554106112045760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610493565b61122161121c8461121784600854611628565b611628565b6113f9565b47801561123157611231476113c2565b60158054905f61124083611a15565b909155505043601655505b505b80156112c557305f9081526001602052604090205461126c908261163c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112bc9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112e7908361169a565b6001600160a01b0385165f9081526001602052604090205561132a61130c838361169a565b6001600160a01b0385165f908152600160205260409020549061163c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611373858561169a565b60405190815260200160405180910390a350505050565b5f81848411156113ad5760405162461bcd60e51b8152600401610493919061171e565b505f6113b98486611a2d565b95945050505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610c5c573d5f803e3d5ffd5b6013805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061143f5761143f611a40565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611496573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ba91906119bc565b816001815181106114cd576114cd611a40565b6001600160a01b0392831660209182029290920101526012546114f39130911684610c60565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061152b9085905f90869030904290600401611a54565b5f604051808303815f87803b158015611542575f80fd5b505af1158015611554573d5f803e3d5ffd5b50506013805460ff60b01b1916905550505050565b5f825f0361157857505f610464565b5f611583838561196f565b9050826115908583611ac5565b146107c55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610493565b5f6107c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116db565b5f81831161163657826107c5565b50919050565b5f806116488385611a02565b9050838110156107c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610493565b5f6107c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061138a565b5f81836116fb5760405162461bcd60e51b8152600401610493919061171e565b505f6113b98486611ac5565b5f60208284031215611717575f80fd5b5035919050565b5f602080835283518060208501525f5b8181101561174a5785810183015185820160400152820161172e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610855575f80fd5b5f806040838503121561178f575f80fd5b823561179a8161176a565b946020939093013593505050565b5f805f606084860312156117ba575f80fd5b83356117c58161176a565b925060208401356117d58161176a565b929592945050506040919091013590565b5f602082840312156117f6575f80fd5b81356107c58161176a565b5f8060408385031215611812575f80fd5b823561181d8161176a565b9150602083013561182d8161176a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118bb57815f19048211156118a1576118a161186d565b808516156118ae57918102915b93841c9390800290611886565b509250929050565b5f826118d157506001610464565b816118dd57505f610464565b81600181146118f357600281146118fd57611919565b6001915050610464565b60ff84111561190e5761190e61186d565b50506001821b610464565b5060208310610133831016604e8410600b841016171561193c575081810a610464565b6119468383611881565b805f19048211156119595761195961186d565b029392505050565b5f6107c560ff8416836118c3565b80820281158282048414176104645761046461186d565b5f60208284031215611996575f80fd5b5051919050565b5f602082840312156119ad575f80fd5b815180151581146107c5575f80fd5b5f602082840312156119cc575f80fd5b81516107c58161176a565b5f805f606084860312156119e9575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104645761046461186d565b5f60018201611a2657611a2661186d565b5060010190565b818103818111156104645761046461186d565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611aa45784516001600160a01b031683529383019391830191600101611a7f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611adf57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202c9d70229f91105e65b4cbcc873978c02efa3798a1f7438c1834df9a4f0ce12464736f6c63430008170033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806377b54bad116100a8578063a681671c1161006d578063a681671c1461035b578063a9059cbb1461036f578063bf474bed1461038e578063c9567bf9146103a3578063d2a8b440146103b7578063dd62ed3e146103cb575f80fd5b806377b54bad146102be5780637d1db4a5146102dd5780638da5cb5b146102f25780638f9a55c01461031857806395d89b411461032d575f80fd5b806318160ddd116100f957806318160ddd1461021457806323b872dd14610228578063313ce5671461024757806370a0823114610262578063715018a614610296578063751039fc146102aa575f80fd5b806304cf574d1461013f57806306fdde0314610160578063095ea7b3146101ae5780630faee56f146101dd578063109daa9914610200575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015e610159366004611707565b61040f565b005b34801561016b575f80fd5b5060408051808201909152601481527320bd30b632b0902237b3b293b99029b4b9ba32b960611b60208201525b6040516101a5919061171e565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c836600461177e565b610454565b60405190151581526020016101a5565b3480156101e8575f80fd5b506101f260085481565b6040519081526020016101a5565b34801561020b575f80fd5b5061015e61046a565b34801561021f575f80fd5b506101f26104d8565b348015610233575f80fd5b506101cd6102423660046117a8565b6104f8565b348015610252575f80fd5b50604051600981526020016101a5565b34801561026d575f80fd5b506101f261027c3660046117e6565b6001600160a01b03165f9081526001602052604090205490565b3480156102a1575f80fd5b5061015e61055f565b3480156102b5575f80fd5b5061015e6105d0565b3480156102c9575f80fd5b506101cd6102d836600461177e565b61067c565b3480156102e8575f80fd5b506101f260055481565b3480156102fd575f80fd5b505f546040516001600160a01b0390911681526020016101a5565b348015610323575f80fd5b506101f260065481565b348015610338575f80fd5b50604080518082019091526006815265415a414c454160d01b6020820152610198565b348015610366575f80fd5b5061015e6107cc565b34801561037a575f80fd5b506101cd61038936600461177e565b610858565b348015610399575f80fd5b506101f260075481565b3480156103ae575f80fd5b5061015e610864565b3480156103c2575f80fd5b5061015e610c0f565b3480156103d6575f80fd5b506101f26103e5366004611801565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6004546001600160a01b0316336001600160a01b03161461042e575f80fd5b600b5481111580156104425750600c548111155b61044a575f80fd5b600b819055600c55565b5f610460338484610c60565b5060015b92915050565b5f546001600160a01b0316331461049c5760405162461bcd60e51b815260040161049390611838565b60405180910390fd5b5f60108190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104e56009600a611961565b6104f390633b9aca0061196f565b905090565b5f610504848484610d83565b610555843361055085604051806060016040528060288152602001611ae5602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061138a565b610c60565b5060019392505050565b5f546001600160a01b031633146105885760405162461bcd60e51b815260040161049390611838565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105f95760405162461bcd60e51b815260040161049390611838565b6106056009600a611961565b61061390633b9aca0061196f565b6005556106226009600a611961565b61063090633b9aca0061196f565b6006557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106606009600a611961565b61066e90633b9aca0061196f565b6040519081526020016104ce565b6004545f906001600160a01b0316336001600160a01b03161461069d575f80fd5b815f0361070d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156106e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070a9190611986565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af11580156107a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c5919061199d565b9392505050565b6004546001600160a01b0316336001600160a01b0316146107eb575f80fd5b478061084c5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610493565b610855816113c2565b50565b5f610460338484610d83565b5f546001600160a01b0316331461088d5760405162461bcd60e51b815260040161049390611838565b601354600160a81b900460ff16156108e75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610493565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109309030906109226009600a611961565b61055090633b9aca0061196f565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610980573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a491906119bc565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2791906119bc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9591906119bc565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610adc816001600160a01b03165f9081526001602052604090205490565b5f80610aef5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b55573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b7a91906119d7565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf3919061199d565b506013805461ffff60a01b191661010160a01b17905543601455565b6004546001600160a01b0316336001600160a01b031614610c2e575f80fd5b305f908152600160205260409020548015610c4c57610c4c816113f9565b478015610c5c57610c5c816113c2565b5050565b6001600160a01b038316610cc25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b038216610d235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610de75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610493565b6001600160a01b038216610e495760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610493565b5f8111610eaa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610493565b5f80546001600160a01b03858116911614801590610ed557505f546001600160a01b03848116911614155b1561124d576011545f03610f1257610f0f6064610f09600d5460115411610efe57600954610f02565b600b545b8590611569565b906115e7565b90505b60115415610f3757610f346064610f096010548561156990919063ffffffff16565b90505b6014544303610f9257601a60115410610f925760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610493565b6013546001600160a01b038581169116148015610fbd57506012546001600160a01b03848116911614155b8015610fe157506001600160a01b0383165f9081526003602052604090205460ff16155b156110e4576005548211156110385760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610493565b6006548261105a856001600160a01b03165f9081526001602052604090205490565b6110649190611a02565b11156110b25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610493565b6110cd6064610f09600d5460115411610efe57600954610f02565b601180549192505f6110de83611a15565b91905055505b6013546001600160a01b03848116911614801561110a57506001600160a01b0384163014155b15611137576111346064610f09600e546011541161112a57600a54610f02565b600c548590611569565b90505b305f90815260016020526040902054601354600160b01b900460ff1615801561116d57506013546001600160a01b038581169116145b80156111825750601354600160a01b900460ff165b801561118f575060075481115b801561119e5750600f54601154115b1561124b576016544311156111b2575f6015555b6003601554106112045760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610493565b61122161121c8461121784600854611628565b611628565b6113f9565b47801561123157611231476113c2565b60158054905f61124083611a15565b909155505043601655505b505b80156112c557305f9081526001602052604090205461126c908261163c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112bc9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112e7908361169a565b6001600160a01b0385165f9081526001602052604090205561132a61130c838361169a565b6001600160a01b0385165f908152600160205260409020549061163c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611373858561169a565b60405190815260200160405180910390a350505050565b5f81848411156113ad5760405162461bcd60e51b8152600401610493919061171e565b505f6113b98486611a2d565b95945050505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610c5c573d5f803e3d5ffd5b6013805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061143f5761143f611a40565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611496573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ba91906119bc565b816001815181106114cd576114cd611a40565b6001600160a01b0392831660209182029290920101526012546114f39130911684610c60565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061152b9085905f90869030904290600401611a54565b5f604051808303815f87803b158015611542575f80fd5b505af1158015611554573d5f803e3d5ffd5b50506013805460ff60b01b1916905550505050565b5f825f0361157857505f610464565b5f611583838561196f565b9050826115908583611ac5565b146107c55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610493565b5f6107c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116db565b5f81831161163657826107c5565b50919050565b5f806116488385611a02565b9050838110156107c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610493565b5f6107c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061138a565b5f81836116fb5760405162461bcd60e51b8152600401610493919061171e565b505f6113b98486611ac5565b5f60208284031215611717575f80fd5b5035919050565b5f602080835283518060208501525f5b8181101561174a5785810183015185820160400152820161172e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610855575f80fd5b5f806040838503121561178f575f80fd5b823561179a8161176a565b946020939093013593505050565b5f805f606084860312156117ba575f80fd5b83356117c58161176a565b925060208401356117d58161176a565b929592945050506040919091013590565b5f602082840312156117f6575f80fd5b81356107c58161176a565b5f8060408385031215611812575f80fd5b823561181d8161176a565b9150602083013561182d8161176a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118bb57815f19048211156118a1576118a161186d565b808516156118ae57918102915b93841c9390800290611886565b509250929050565b5f826118d157506001610464565b816118dd57505f610464565b81600181146118f357600281146118fd57611919565b6001915050610464565b60ff84111561190e5761190e61186d565b50506001821b610464565b5060208310610133831016604e8410600b841016171561193c575081810a610464565b6119468383611881565b805f19048211156119595761195961186d565b029392505050565b5f6107c560ff8416836118c3565b80820281158282048414176104645761046461186d565b5f60208284031215611996575f80fd5b5051919050565b5f602082840312156119ad575f80fd5b815180151581146107c5575f80fd5b5f602082840312156119cc575f80fd5b81516107c58161176a565b5f805f606084860312156119e9575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104645761046461186d565b5f60018201611a2657611a2661186d565b5060010190565b818103818111156104645761046461186d565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611aa45784516001600160a01b031683529383019391830191600101611a7f565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611adf57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202c9d70229f91105e65b4cbcc873978c02efa3798a1f7438c1834df9a4f0ce12464736f6c63430008170033

Deployed Bytecode Sourcemap

3677:9304:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11749:230;;;;;;;;;;-1:-1:-1;11749:230:0;;;;;:::i;:::-;;:::i;:::-;;5707:83;;;;;;;;;;-1:-1:-1;5777:5:0;;;;;;;;;;;;-1:-1:-1;;;5777:5:0;;;;5707:83;;;;;;;:::i;:::-;;;;;;;;6881:161;;;;;;;;;;-1:-1:-1;6881:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;6881:161:0;1208:187:1;4403:48:0;;;;;;;;;;;;;;;;;;;1546:25:1;;;1534:2;1519:18;4403:48:0;1400:177:1;10862:119:0;;;;;;;;;;;;;:::i;5984:95::-;;;;;;;;;;;;;:::i;6546:313::-;;;;;;;;;;-1:-1:-1;6546:313:0;;;;;:::i;:::-;;:::i;5893:83::-;;;;;;;;;;-1:-1:-1;5893:83:0;;4026:1;2185:36:1;;2173:2;2158:18;5893:83:0;2043:184:1;6262:119:0;;;;;;;;;;-1:-1:-1;6262:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6355:18:0;6328:7;6355:18;;;:9;:18;;;;;;;6262:119;2758:148;;;;;;;;;;;;;:::i;10592:162::-;;;;;;;;;;;;;:::i;11987:371::-;;;;;;;;;;-1:-1:-1;11987:371:0;;;;;:::i;:::-;;:::i;4228:49::-;;;;;;;;;;;;;;;;2544:79;;;;;;;;;;-1:-1:-1;2582:7:0;2609:6;2544:79;;-1:-1:-1;;;;;2609:6:0;;;2630:51:1;;2618:2;2603:18;2544:79:0;2484:203:1;4284:51:0;;;;;;;;;;;;;;;;5798:87;;;;;;;;;;-1:-1:-1;5870:7:0;;;;;;;;;;;;-1:-1:-1;;;5870:7:0;;;;5798:87;;12366:252;;;;;;;;;;;;;:::i;6087:167::-;;;;;;;;;;-1:-1:-1;6087:167:0;;;;;:::i;:::-;;:::i;4342:54::-;;;;;;;;;;;;;;;;10989:711;;;;;;;;;;;;;:::i;12626:345::-;;;;;;;;;;;;;:::i;6391:143::-;;;;;;;;;;-1:-1:-1;6391:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6499:18:0;;;6472:7;6499:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6391:143;11749:230;11826:10;;-1:-1:-1;;;;;11826:10:0;341;-1:-1:-1;;;;;11810:26:0;;11802:35;;;;;;11865:12;;11854:7;:23;;:51;;;;;11892:13;;11881:7;:24;;11854:51;11846:60;;;;;;11917:12;:22;;;11948:13;:23;11749:230::o;6881:161::-;6956:4;6973:39;341:10;6996:7;7005:6;6973:8;:39::i;:::-;-1:-1:-1;7030:4:0;6881:161;;;;;:::o;10862:119::-;2671:6;;-1:-1:-1;;;;;2671:6:0;341:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;;;;;;:::i;:::-;;;;;;;;;10935:1:::1;10920:12;:16:::0;;;10952:21:::1;::::0;1546:25:1;;;10952:21:0::1;::::0;1534:2:1;1519:18;10952:21:0::1;;;;;;;;10862:119::o:0;5984:95::-;6037:7;4084:13;4026:1;4084:2;:13;:::i;:::-;4068:29;;:13;:29;:::i;:::-;6057:14;;5984:95;:::o;6546:313::-;6644:4;6661:36;6671:6;6679:9;6690:6;6661:9;:36::i;:::-;6708:121;6717:6;341:10;6739:89;6777:6;6739:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6739:19:0;;;;;;:11;:19;;;;;;;;341:10;6739:33;;;;;;;;;;:37;:89::i;:::-;6708:8;:121::i;:::-;-1:-1:-1;6847:4:0;6546:313;;;;;:::o;2758:148::-;2671:6;;-1:-1:-1;;;;;2671:6:0;341:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;;;;;;:::i;:::-;2865:1:::1;2849:6:::0;;2828:40:::1;::::0;-1:-1:-1;;;;;2849:6:0;;::::1;::::0;2828:40:::1;::::0;2865:1;;2828:40:::1;2896:1;2879:19:::0;;-1:-1:-1;;;;;;2879:19:0::1;::::0;;2758:148::o;10592:162::-;2671:6;;-1:-1:-1;;;;;2671:6:0;341:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;;;;;;:::i;:::-;4084:13:::1;4026:1;4084:2;:13;:::i;:::-;4068:29;::::0;:13:::1;:29;:::i;:::-;10645:12;:22:::0;4084:13:::1;4026:1;4084:2;:13;:::i;:::-;4068:29;::::0;:13:::1;:29;:::i;:::-;10678:14;:24:::0;10718:28:::1;4084:13;4026:1;4084:2;:13;:::i;:::-;4068:29;::::0;:13:::1;:29;:::i;:::-;10718:28;::::0;1546:25:1;;;1534:2;1519:18;10718:28:0::1;1400:177:1::0;11987:371:0;12117:10;;12068:12;;-1:-1:-1;;;;;12117:10:0;341;-1:-1:-1;;;;;12101:26:0;;12093:35;;;;;;12144:6;12154:1;12144:11;12141:95;;12179:45;;-1:-1:-1;;;12179:45:0;;12218:4;12179:45;;;2630:51:1;-1:-1:-1;;;;;12179:30:0;;;;;2603:18:1;;12179:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12171:53;;12141:95;12253:31;;;-1:-1:-1;;;;;5699:32:1;;5681:51;;5763:2;5748:18;;5741:34;;;12253:31:0;;5654:18:1;12253:31:0;;;;;;;12332:10;;;12302:48;;-1:-1:-1;;;12302:48:0;;-1:-1:-1;;;;;12332:10:0;;;12302:48;;;5681:51:1;;;;5748:18;;;5741:34;;;12302:29:0;;;;;5654:18:1;;12302:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12295:55;11987:371;-1:-1:-1;;;11987:371:0:o;12366:252::-;12432:10;;-1:-1:-1;;;;;12432:10:0;341;-1:-1:-1;;;;;12416:26:0;;12408:35;;;;;;12476:21;12516:12;12508:67;;;;-1:-1:-1;;;12508:67:0;;6557:2:1;12508:67:0;;;6539:21:1;6596:2;6576:18;;;6569:30;6635:34;6615:18;;;6608:62;-1:-1:-1;;;6686:18:1;;;6679:40;6736:19;;12508:67:0;6355:406:1;12508:67:0;12586:24;12599:10;12586:12;:24::i;:::-;12397:221;12366:252::o;6087:167::-;6165:4;6182:42;341:10;6206:9;6217:6;6182:9;:42::i;10989:711::-;2671:6;;-1:-1:-1;;;;;2671:6:0;341:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;;;;;;:::i;:::-;11053:11:::1;::::0;-1:-1:-1;;;11053:11:0;::::1;;;11052:12;11044:47;;;::::0;-1:-1:-1;;;11044:47:0;;6968:2:1;11044:47:0::1;::::0;::::1;6950:21:1::0;7007:2;6987:18;;;6980:30;7046:25;7026:18;;;7019:53;7089:18;;11044:47:0::1;6766:347:1::0;11044:47:0::1;11102:15;:80:::0;;-1:-1:-1;;;;;;11102:80:0::1;11139:42;11102:80:::0;;::::1;::::0;;;11193:58:::1;::::0;11210:4:::1;::::0;4084:13:::1;4026:1;4084:2;:13;:::i;:::-;4068:29;::::0;:13:::1;:29;:::i;11193:58::-;11296:15;;;;;;;;;-1:-1:-1::0;;;;;11296:15:0::1;-1:-1:-1::0;;;;;11296:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11278:55:0::1;;11342:4;11349:15;;;;;;;;;-1:-1:-1::0;;;;;11349:15:0::1;-1:-1:-1::0;;;;;11349:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11278:94;::::0;-1:-1:-1;;;;;;11278:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7604:15:1;;;11278:94:0::1;::::0;::::1;7586:34:1::0;7656:15;;7636:18;;;7629:43;7521:18;;11278:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11262:13;:110:::0;;-1:-1:-1;;;;;11262:110:0;;::::1;-1:-1:-1::0;;;;;;11262:110:0;;::::1;;::::0;;11383:15:::1;::::0;::::1;:31;11422:21;11453:4;11460:24;11453:4:::0;-1:-1:-1;;;;;6355:18:0;6328:7;6355:18;;;:9;:18;;;;;;;6262:119;11460:24:::1;11486:1;11489::::0;11492:7:::1;2582::::0;2609:6;-1:-1:-1;;;;;2609:6:0;;2544:79;11492:7:::1;11383:134;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11383:134:0;;;-1:-1:-1;;;;;8042:15:1;;;11383:134:0::1;::::0;::::1;8024:34:1::0;8074:18;;;8067:34;;;;8117:18;;;8110:34;;;;8160:18;;;8153:34;8224:15;;;8203:19;;;8196:44;11501:15:0::1;8256:19:1::0;;;8249:35;7958:19;;11383:134:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11535:13:0::1;::::0;11566:15:::1;::::0;11528:70:::1;::::0;-1:-1:-1;;;11528:70:0;;-1:-1:-1;;;;;11566:15:0;;::::1;11528:70;::::0;::::1;5681:51:1::0;-1:-1:-1;;5748:18:1;;;5741:34;11535:13:0;::::1;::::0;-1:-1:-1;11528:29:0::1;::::0;5654:18:1;;11528:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11609:11:0::1;:18:::0;;-1:-1:-1;;;;11638:18:0;-1:-1:-1;;;11638:18:0;;;11680:12:::1;11609:11;11667:25:::0;10989:711::o;12626:345::-;12692:10;;-1:-1:-1;;;;;12692:10:0;341;-1:-1:-1;;;;;12676:26:0;;12668:35;;;;;;12757:4;12716:20;6355:18;;;:9;:18;;;;;;12777:16;;12774:64;;12796:30;12813:12;12796:16;:30::i;:::-;12871:21;12906:14;;12903:61;;12937:24;12950:10;12937:12;:24::i;:::-;12657:314;;12626:345::o;7064:335::-;-1:-1:-1;;;;;7157:19:0;;7149:68;;;;-1:-1:-1;;;7149:68:0;;8808:2:1;7149:68:0;;;8790:21:1;8847:2;8827:18;;;8820:30;8886:34;8866:18;;;8859:62;-1:-1:-1;;;8937:18:1;;;8930:34;8981:19;;7149:68:0;8606:400:1;7149:68:0;-1:-1:-1;;;;;7236:21:0;;7228:68;;;;-1:-1:-1;;;7228:68:0;;9213:2:1;7228:68:0;;;9195:21:1;9252:2;9232:18;;;9225:30;9291:34;9271:18;;;9264:62;-1:-1:-1;;;9342:18:1;;;9335:32;9384:19;;7228:68:0;9011:398:1;7228:68:0;-1:-1:-1;;;;;7307:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7359:32;;1546:25:1;;;7359:32:0;;1519:18:1;7359:32:0;;;;;;;7064:335;;;:::o;7407:2573::-;-1:-1:-1;;;;;7495:18:0;;7487:68;;;;-1:-1:-1;;;7487:68:0;;9616:2:1;7487:68:0;;;9598:21:1;9655:2;9635:18;;;9628:30;9694:34;9674:18;;;9667:62;-1:-1:-1;;;9745:18:1;;;9738:35;9790:19;;7487:68:0;9414:401:1;7487:68:0;-1:-1:-1;;;;;7574:16:0;;7566:64;;;;-1:-1:-1;;;7566:64:0;;10022:2:1;7566:64:0;;;10004:21:1;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:33;10194:19;;7566:64:0;9820:399:1;7566:64:0;7658:1;7649:6;:10;7641:64;;;;-1:-1:-1;;;7641:64:0;;10426:2:1;7641:64:0;;;10408:21:1;10465:2;10445:18;;;10438:30;10504:34;10484:18;;;10477:62;-1:-1:-1;;;10555:18:1;;;10548:39;10604:19;;7641:64:0;10224:405:1;7641:64:0;7716:17;2609:6;;-1:-1:-1;;;;;7752:15:0;;;2609:6;;7752:15;;;;:32;;-1:-1:-1;2582:7:0;2609:6;-1:-1:-1;;;;;7771:13:0;;;2609:6;;7771:13;;7752:32;7748:1867;;;7806:9;;7819:1;7806:14;7803:147;;7852:82;7930:3;7852:73;7876:15;;7864:9;;:27;7863:61;;7910:14;;7863:61;;;7895:12;;7863:61;7852:6;;:10;:73::i;:::-;:77;;:82::i;:::-;7840:94;;7803:147;7969:9;;:13;7966:97;;8014:33;8043:3;8014:24;8025:12;;8014:6;:10;;:24;;;;:::i;:33::-;8002:45;;7966:97;8098:10;;8082:12;:26;8079:123;;8148:2;8136:9;;:14;8128:58;;;;-1:-1:-1;;;8128:58:0;;10836:2:1;8128:58:0;;;10818:21:1;;;10855:18;;;10848:30;10914:34;10894:18;;;10887:62;10966:18;;8128:58:0;10634:356:1;8128:58:0;8230:13;;-1:-1:-1;;;;;8222:21:0;;;8230:13;;8222:21;:55;;;;-1:-1:-1;8261:15:0;;-1:-1:-1;;;;;8247:30:0;;;8261:15;;8247:30;;8222:55;:83;;;;-1:-1:-1;;;;;;8283:22:0;;;;;;:18;:22;;;;;;;;8281:24;8222:83;8218:426;;;8345:12;;8335:6;:22;;8327:60;;;;-1:-1:-1;;;8327:60:0;;11197:2:1;8327:60:0;;;11179:21:1;11236:2;11216:18;;;11209:30;11275:27;11255:18;;;11248:55;11320:18;;8327:60:0;10995:349:1;8327:60:0;8440:14;;8430:6;8414:13;8424:2;-1:-1:-1;;;;;6355:18:0;6328:7;6355:18;;;:9;:18;;;;;;;6262:119;8414:13;:22;;;;:::i;:::-;:40;;8406:79;;;;-1:-1:-1;;;8406:79:0;;11681:2:1;8406:79:0;;;11663:21:1;11720:2;11700:18;;;11693:30;11759:28;11739:18;;;11732:56;11805:18;;8406:79:0;11479:350:1;8406:79:0;8516:82;8594:3;8516:73;8540:15;;8528:9;;:27;8527:61;;8574:14;;8527:61;;8516:82;8617:9;:11;;8504:94;;-1:-1:-1;8617:9:0;:11;;;:::i;:::-;;;;;;8218:426;8669:13;;-1:-1:-1;;;;;8663:19:0;;;8669:13;;8663:19;:44;;;;-1:-1:-1;;;;;;8686:21:0;;8702:4;8686:21;;8663:44;8660:181;;;8740:85;8821:3;8740:76;8764:16;;8752:9;;:28;8751:64;;8800:15;;8751:64;;;8784:13;;8740:6;;:10;:76::i;:85::-;8728:97;;8660:181;8906:4;8857:28;6355:18;;;:9;:18;;;;;;8932:6;;-1:-1:-1;;;8932:6:0;;;;8931:7;:30;;;;-1:-1:-1;8948:13:0;;-1:-1:-1;;;;;8942:19:0;;;8948:13;;8942:19;8931:30;:45;;;;-1:-1:-1;8965:11:0;;-1:-1:-1;;;8965:11:0;;;;8931:45;:89;;;;;9003:17;;8980:20;:40;8931:89;:123;;;;;9036:18;;9024:9;;:30;8931:123;8927:677;;;9094:13;;9079:12;:28;9075:89;;;9143:1;9132:9;:12;9075:89;9200:1;9190:9;;:11;9182:47;;;;-1:-1:-1;;;9182:47:0;;12176:2:1;9182:47:0;;;12158:21:1;12215:2;12195:18;;;12188:30;12254:25;12234:18;;;12227:53;12297:18;;9182:47:0;11974:347:1;9182:47:0;9250:67;9267:49;9271:6;9278:37;9282:20;9303:11;;9278:3;:37::i;:::-;9267:3;:49::i;:::-;9250:16;:67::i;:::-;9364:21;9408:22;;9404:106;;9455:35;9468:21;9455:12;:35::i;:::-;9530:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9576:12:0;9560:13;:28;-1:-1:-1;8927:677:0;7786:1829;7748:1867;9630:13;;9627:166;;9702:4;9684:24;;;;:9;:24;;;;;;:39;;9713:9;9684:28;:39::i;:::-;9675:4;9657:24;;;;:9;:24;;;;;;;:66;;;;9741:40;;-1:-1:-1;;;;;9741:40:0;;;;;;;9771:9;1546:25:1;;1534:2;1519:18;;1400:177;9741:40:0;;;;;;;;9627:166;-1:-1:-1;;;;;9823:15:0;;;;;;:9;:15;;;;;;:27;;9843:6;9823:19;:27::i;:::-;-1:-1:-1;;;;;9805:15:0;;;;;;:9;:15;;;;;:45;9877:40;9895:21;:6;9906:9;9895:10;:21::i;:::-;-1:-1:-1;;;;;9877:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9861:13:0;;;;;;;:9;:13;;;;;:56;;;;9933:39;;;9950:21;:6;9961:9;9950:10;:21::i;:::-;9933:39;;1546:25:1;;;1534:2;1519:18;9933:39:0;;;;;;;7476:2504;7407:2573;;;:::o;1415:190::-;1501:7;1537:12;1529:6;;;;1521:29;;;;-1:-1:-1;;;1521:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1561:9:0;1573:5;1577:1;1573;:5;:::i;:::-;1561:17;1415:190;-1:-1:-1;;;;;1415:190:0:o;10762:92::-;10819:10;;:27;;-1:-1:-1;;;;;10819:10:0;;;;:27;;;;;10839:6;;10819:10;:27;:10;:27;10839:6;10819:10;:27;;;;;;;;;;;;;;;;;;;10101:483;5318:6;:13;;-1:-1:-1;;;;5318:13:0;-1:-1:-1;;;5318:13:0;;;10203:16:::1;::::0;;10217:1:::1;10203:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10203:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10203:16:0::1;10179:40;;10248:4;10230;10235:1;10230:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10230:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10274:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10274:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10230:7;;10274:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10264:4;10269:1;10264:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10264:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10339:15:::1;::::0;10307:62:::1;::::0;10324:4:::1;::::0;10339:15:::1;10357:11:::0;10307:8:::1;:62::i;:::-;10380:15;::::0;:196:::1;::::0;-1:-1:-1;;;10380:196:0;;-1:-1:-1;;;;;10380:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10461:11;;10380:15:::1;::::0;10503:4;;10530::::1;::::0;10550:15:::1;::::0;10380:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5354:6:0;:14;;-1:-1:-1;;;;5354:14:0;;;-1:-1:-1;;;;10101:483:0:o;1622:246::-;1680:7;1704:1;1709;1704:6;1700:47;;-1:-1:-1;1734:1:0;1727:8;;1700:47;1757:9;1769:5;1773:1;1769;:5;:::i;:::-;1757:17;-1:-1:-1;1802:1:0;1793:5;1797:1;1757:17;1793:5;:::i;:::-;:10;1785:56;;;;-1:-1:-1;;;1785:56:0;;14132:2:1;1785:56:0;;;14114:21:1;14171:2;14151:18;;;14144:30;14210:34;14190:18;;;14183:62;-1:-1:-1;;;14261:18:1;;;14254:31;14302:19;;1785:56:0;13930:397:1;1876:132:0;1934:7;1961:39;1965:1;1968;1961:39;;;;;;;;;;;;;;;;;:3;:39::i;9990:103::-;10047:7;10076:1;10072;:5;10071:14;;10084:1;10071:14;;;-1:-1:-1;10080:1:0;9990:103;-1:-1:-1;9990:103:0:o;1067:179::-;1125:7;;1157:5;1161:1;1157;:5;:::i;:::-;1145:17;;1186:1;1181;:6;;1173:46;;;;-1:-1:-1;;;1173:46:0;;14534:2:1;1173:46:0;;;14516:21:1;14573:2;14553:18;;;14546:30;14612:29;14592:18;;;14585:57;14659:18;;1173:46:0;14332:351:1;1271:136:0;1329:7;1356:43;1360:1;1363;1356:43;;;;;;;;;;;;;;;;;:3;:43::i;2028:189::-;2114:7;2149:12;2142:5;2134:28;;;;-1:-1:-1;;;2134:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2173:9:0;2185:5;2189:1;2185;:5;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:247::-;2291:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:52;;;2360:1;2357;2350:12;2312:52;2399:9;2386:23;2418:31;2443:5;2418:31;:::i;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:416;3857:1;3894:5;3857:1;3908:270;3929:7;3919:8;3916:21;3908:270;;;3988:4;3984:1;3980:6;3976:17;3970:4;3967:27;3964:53;;;3997:18;;:::i;:::-;4047:7;4037:8;4033:22;4030:55;;;4067:16;;;;4030:55;4146:22;;;;4106:15;;;;3908:270;;;3912:3;3768:416;;;;;:::o;4189:806::-;4238:5;4268:8;4258:80;;-1:-1:-1;4309:1:1;4323:5;;4258:80;4357:4;4347:76;;-1:-1:-1;4394:1:1;4408:5;;4347:76;4439:4;4457:1;4452:59;;;;4525:1;4520:130;;;;4432:218;;4452:59;4482:1;4473:10;;4496:5;;;4520:130;4557:3;4547:8;4544:17;4541:43;;;4564:18;;:::i;:::-;-1:-1:-1;;4620:1:1;4606:16;;4635:5;;4432:218;;4734:2;4724:8;4721:16;4715:3;4709:4;4706:13;4702:36;4696:2;4686:8;4683:16;4678:2;4672:4;4669:12;4665:35;4662:77;4659:159;;;-1:-1:-1;4771:19:1;;;4803:5;;4659:159;4850:34;4875:8;4869:4;4850:34;:::i;:::-;4920:6;4916:1;4912:6;4908:19;4899:7;4896:32;4893:58;;;4931:18;;:::i;:::-;4969:20;;4189:806;-1:-1:-1;;;4189:806:1:o;5000:140::-;5058:5;5087:47;5128:4;5118:8;5114:19;5108:4;5087:47;:::i;5145:168::-;5218:9;;;5249;;5266:15;;;5260:22;;5246:37;5236:71;;5287:18;;:::i;5318:184::-;5388:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:52;;;5457:1;5454;5447:12;5409:52;-1:-1:-1;5480:16:1;;5318:184;-1:-1:-1;5318:184:1:o;6073:277::-;6140:6;6193:2;6181:9;6172:7;6168:23;6164:32;6161:52;;;6209:1;6206;6199:12;6161:52;6241:9;6235:16;6294:5;6287:13;6280:21;6273:5;6270:32;6260:60;;6316:1;6313;6306:12;7118:251;7188:6;7241:2;7229:9;7220:7;7216:23;7212:32;7209:52;;;7257:1;7254;7247:12;7209:52;7289:9;7283:16;7308:31;7333:5;7308:31;:::i;8295:306::-;8383:6;8391;8399;8452:2;8440:9;8431:7;8427:23;8423:32;8420:52;;;8468:1;8465;8458:12;8420:52;8497:9;8491:16;8481:26;;8547:2;8536:9;8532:18;8526:25;8516:35;;8591:2;8580:9;8576:18;8570:25;8560:35;;8295:306;;;;;:::o;11349:125::-;11414:9;;;11435:10;;;11432:36;;;11448:18;;:::i;11834:135::-;11873:3;11894:17;;;11891:43;;11914:18;;:::i;:::-;-1:-1:-1;11961:1:1;11950:13;;11834:135::o;12326:128::-;12393:9;;;12414:11;;;12411:37;;;12428:18;;:::i;12591:127::-;12652:10;12647:3;12643:20;12640:1;12633:31;12683:4;12680:1;12673:15;12707:4;12704:1;12697:15;12723:980;12985:4;13033:3;13022:9;13018:19;13064:6;13053:9;13046:25;13090:2;13128:6;13123:2;13112:9;13108:18;13101:34;13171:3;13166:2;13155:9;13151:18;13144:31;13195:6;13230;13224:13;13261:6;13253;13246:22;13299:3;13288:9;13284:19;13277:26;;13338:2;13330:6;13326:15;13312:29;;13359:1;13369:195;13383:6;13380:1;13377:13;13369:195;;;13448:13;;-1:-1:-1;;;;;13444:39:1;13432:52;;13539:15;;;;13504:12;;;;13480:1;13398:9;13369:195;;;-1:-1:-1;;;;;;;13620:32:1;;;;13615:2;13600:18;;13593:60;-1:-1:-1;;;13684:3:1;13669:19;13662:35;13581:3;12723:980;-1:-1:-1;;;12723:980:1:o;13708:217::-;13748:1;13774;13764:132;;13818:10;13813:3;13809:20;13806:1;13799:31;13853:4;13850:1;13843:15;13881:4;13878:1;13871:15;13764:132;-1:-1:-1;13910:9:1;;13708:217::o

Swarm Source

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