ETH Price: $3,097.00 (-1.98%)

Token

SpartaDEX (SPARTA)
 

Overview

Max Total Supply

1,000,000,000 SPARTA

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,683,444.481592724 SPARTA

Value
$0.00
0xf87c47661a4a0aeb7eaf8b0e2507fc92f9c11b36
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:
SPARTA

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-08-26
*/

// SPDX-License-Identifier: MIT

/*
$SPARTA is a native SpartaDEX token, built on the ETH blockchain, which in the future is going to be a multichain asset. It is the key element of achieving benefits from the operation of the exchange. Staking $SPARTA provides rewards, which come not only from commissions earned by the exchange, but also from income generated by game-related microtransactions - purchasing Gems in the Market.

Website: https://www.spartadex.pro
Telegram: https://t.me/spartadex_portal
Twitter: https://twitter.com/spartadex_erc
*/

pragma solidity 0.8.21;
abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "Ownable: Caller is not owner"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}
interface IERC20Standard {
    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);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}
interface IUniRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
interface IUniFactory {
    function createPair(address tokenA, address tokenB) external returns (address dexPair);
}
contract SPARTA is Ownable, IERC20Standard {
    using SafeMath for uint256;
    string private constant _name = "SpartaDEX";
    string private constant _symbol = "SPARTA";
    uint8 private constant _decimals = 9;
    uint256 private _supply = 10 ** 9 * (10 ** _decimals);
    
    IUniRouter uniRouter;
    address public dexPair;
    bool private tradingEnable = false;
    bool private swapFeeEnable = true;
    uint256 private numSwapFee;
    bool private swapping;
    uint256 feeSwapBetween; // fee swap interval
    uint256 private feeSwapThreshold = _supply * 1000 / 100000;
    uint256 private feeSwapAt = _supply * 10 / 100000;
    modifier lockReentrance {swapping = true; _; swapping = false;}
    uint256 private lpDynamicFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developerFee = 100;
    uint256 private burnerFee = 0;
    uint256 private buyerTax = 2000;
    uint256 private sellerTax = 2000;
    uint256 private transferTax = 2000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal developerAddr = 0x59F3Fed32A1CFb5E29C9415879355c4D76834777; 
    address internal marketerAddr = 0x59F3Fed32A1CFb5E29C9415879355c4D76834777;
    address internal lpReceiverAddr = 0x59F3Fed32A1CFb5E29C9415879355c4D76834777;
    uint256 public _maximTx = ( _supply * 300 ) / 10000;
    uint256 public _maximTransfer = ( _supply * 300 ) / 10000;
    uint256 public _maximWallet = ( _supply * 300 ) / 10000;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcludedFromTax;
    mapping (address => uint256) _balances;

    constructor() Ownable(msg.sender) {
        IUniRouter _router = IUniRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniFactory(_router.factory()).createPair(address(this), _router.WETH());
        uniRouter = _router; dexPair = _pair;
        isExcludedFromTax[address(this)] = true;
        isExcludedFromTax[lpReceiverAddr] = true;
        isExcludedFromTax[marketerAddr] = true;
        isExcludedFromTax[developerAddr] = true;
        isExcludedFromTax[msg.sender] = true;
        _balances[msg.sender] = _supply;
        emit Transfer(address(0), msg.sender, _supply);
    }
    receive() external payable {}
    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 startTrading() external onlyOwner {tradingEnable = true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _supply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function getOwner() external view override returns (address) { return owner; }
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function setTxAmounts(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _supply.mul(_buy).div(10000); uint256 newTransfer = _supply.mul(_sell).div(10000); uint256 newWallet = _supply.mul(_wallet).div(10000);
        _maximTx = newTx; _maximTransfer = newTransfer; _maximWallet = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    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 clearCATokens(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20Standard(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20Standard(_address).transfer(developerAddr, _amount);
    }
    function swapTax(uint256 tokens) private lockReentrance {
        uint256 _denominator = (lpDynamicFee.add(1).add(marketingFee).add(developerFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(lpDynamicFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensToETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(lpDynamicFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(lpDynamicFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketerAddr).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(developerAddr).transfer(contractBalance);}
    }
    function swapTokensToETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniRouter.WETH();
        _approve(address(this), address(uniRouter), tokenAmount);
        uniRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    function getExactFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == dexPair){return sellerTax;}
        if(sender == dexPair){return buyerTax;}
        return transferTax;
    }
    function getExactFeeAmount(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcludedFromTax[recipient]) {return _maximTx;}
        if(getExactFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getExactFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnerFee > uint256(0) && getExactFee(sender, recipient) > burnerFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnerFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function caSwappable(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= feeSwapAt;
        bool aboveThreshold = balanceOf(address(this)) >= feeSwapThreshold;
        return !swapping && swapFeeEnable && tradingEnable && aboveMin && !isExcludedFromTax[sender] && recipient == dexPair && numSwapFee >= feeSwapBetween && aboveThreshold;
    }
    function setFeeParameters(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        lpDynamicFee = _liquidity; marketingFee = _marketing; burnerFee = _burn; developerFee = _development; buyerTax = _total; sellerTax = _sell; transferTax = _trans;
        require(buyerTax <= denominator.div(1) && sellerTax <= denominator.div(1) && transferTax <= denominator.div(1), "buyerTax and sellerTax cannot be more than 20%");
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isExcludedFromTax[sender] && !isExcludedFromTax[recipient]){require(tradingEnable, "tradingEnable");}
        if(!isExcludedFromTax[sender] && !isExcludedFromTax[recipient] && recipient != address(dexPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maximWallet, "Exceeds maximum wallet amount.");}
        if(sender != dexPair){require(amount <= _maximTransfer || isExcludedFromTax[sender] || isExcludedFromTax[recipient], "TX Limit Exceeded");}
        require(amount <= _maximTx || isExcludedFromTax[sender] || isExcludedFromTax[recipient], "TX Limit Exceeded"); 
        if(recipient == dexPair && !isExcludedFromTax[sender]){numSwapFee += uint256(1);}
        if(caSwappable(sender, recipient, amount)){swapTax(feeSwapThreshold); numSwapFee = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcludedFromTax[sender] ? getExactFeeAmount(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniRouter), tokenAmount);
        uniRouter.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpReceiverAddr,
            block.timestamp);
    }
}

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":"owner","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":"_maximTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximWallet","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":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"clearCATokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFeeParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTxAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004be565b6200002290633b9aca00620004d5565b60018190556003805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004d5565b6200005a9190620004ef565b600755620186a0600154600a620000729190620004d5565b6200007e9190620004ef565b6008555f6009819055600a8190556064600b55600c556107d0600d819055600e819055600f556127106010819055601180547359f3fed32a1cfb5e29c9415879355c4d768347776001600160a01b0319918216811790925560128054821683179055601380549091169091179055600154620000fd9061012c620004d5565b620001099190620004ef565b60145561271060015461012c620001219190620004d5565b6200012d9190620004ef565b60155561271060015461012c620001459190620004d5565b620001519190620004ef565b60165534801562000160575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001eb91906200050f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000237573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025d91906200050f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce91906200050f565b600280546001600160a01b038581166001600160a01b031992831617909255600380548484169216919091179055305f908152601860209081526040808320805460ff19908116600190811790925560135486168552828520805482168317905560125486168552828520805482168317905560115490951684528184208054861682179055338085528285208054909616821790955554601983528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000537565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040357815f1904821115620003e757620003e7620003af565b80851615620003f557918102915b93841c9390800290620003c8565b509250929050565b5f826200041b57506001620004b8565b816200042957505f620004b8565b81600181146200044257600281146200044d576200046d565b6001915050620004b8565b60ff841115620004615762000461620003af565b50506001821b620004b8565b5060208310610133831016604e8410600b841016171562000492575081810a620004b8565b6200049e8383620003c3565b805f1904821115620004b457620004b4620003af565b0290505b92915050565b5f620004ce60ff8416836200040b565b9392505050565b8082028115828204841417620004b857620004b8620003af565b5f826200050a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000520575f80fd5b81516001600160a01b0381168114620004ce575f80fd5b61193380620005455f395ff3fe608060405260043610610128575f3560e01c8063465c5bcb116100a8578063a9059cbb1161006d578063a9059cbb14610353578063cb4ca63114610372578063dd62ed3e146103a0578063ecccce87146103e4578063f242ab4114610403578063f2fde38b14610422575f80fd5b8063465c5bcb1461029757806346dfbb11146102ac57806370a08231146102c1578063893d20e8146102f557806395d89b4114610325575f80fd5b806323b872dd116100ee57806323b872dd146101fd578063293230b81461021c5780632bbe0c83146102305780632f54bf6e1461024f578063313ce5671461027c575f80fd5b806278338f1461013357806306fdde0314610154578063095ea7b3146101975780631654fc8a146101c657806318160ddd146101e9575f80fd5b3661012f57005b5f80fd5b34801561013e575f80fd5b5061015261014d3660046115ba565b610441565b005b34801561015f575f80fd5b506040805180820190915260098152680a6e0c2e4e8c2888ab60bb1b60208201525b60405161018e91906115e4565b60405180910390f35b3480156101a2575f80fd5b506101b66101b13660046115ba565b610570565b604051901515815260200161018e565b3480156101d1575f80fd5b506101db60145481565b60405190815260200161018e565b3480156101f4575f80fd5b506101db610586565b348015610208575f80fd5b506101b661021736600461162f565b6105f6565b348015610227575f80fd5b5061015261065e565b34801561023b575f80fd5b5061015261024a36600461166d565b61069c565b34801561025a575f80fd5b506101b6610269366004611696565b5f546001600160a01b0391821691161490565b348015610287575f80fd5b506040516009815260200161018e565b3480156102a2575f80fd5b506101db60155481565b3480156102b7575f80fd5b506101db60165481565b3480156102cc575f80fd5b506101db6102db366004611696565b6001600160a01b03165f9081526019602052604090205490565b348015610300575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161018e565b348015610330575f80fd5b5060408051808201909152600681526553504152544160d01b6020820152610181565b34801561035e575f80fd5b506101b661036d3660046115ba565b6107cc565b34801561037d575f80fd5b506101b661038c366004611696565b60186020525f908152604090205460ff1681565b3480156103ab575f80fd5b506101db6103ba3660046116b1565b6001600160a01b039182165f90815260176020908152604080832093909416825291909152205490565b3480156103ef575f80fd5b506101526103fe3660046116e8565b6107d8565b34801561040e575f80fd5b5060035461030d906001600160a01b031681565b34801561042d575f80fd5b5061015261043c366004611696565b6108d0565b5f546001600160a01b031633146104735760405162461bcd60e51b815260040161046a9061172f565b60405180910390fd5b6040516370a0823160e01b81523060048201525f906104f4906064906104ee9085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156104c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e89190611766565b9061094c565b90610957565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a919061177d565b50505050565b5f61057c338484610962565b5060015b92915050565b60196020527fd2ac945fcc0096878c763e37d6929b78378c1a2defabde8ba7ee5ed1d6e7a5b25461dead5f9081527fc73b1d6eda13a615b81c31830292dbbbf5fbb07f472982e223002bd83d5c3dc45460015491926105f19290916105eb9190610a85565b90610a85565b905090565b5f610602848484610a90565b610653843361064e856040518060600160405280602881526020016118d6602891396001600160a01b038a165f9081526017602090815260408083203384529091529020549190610fd0565b610962565b5060015b9392505050565b5f546001600160a01b031633146106875760405162461bcd60e51b815260040161046a9061172f565b6003805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146106c55760405162461bcd60e51b815260040161046a9061172f565b5f6106e16127106104ee8660015461094c90919063ffffffff16565b90505f6106ff6127106104ee8660015461094c90919063ffffffff16565b90505f61071d6127106104ee8660015461094c90919063ffffffff16565b60148490556015839055601681905590505f6107426103e86104ee60056104e8610586565b90508084101580156107545750808310155b80156107605750808210155b6107c35760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161046a565b50505050505050565b5f61057c338484610a90565b5f546001600160a01b031633146108015760405162461bcd60e51b815260040161046a9061172f565b6009879055600a869055600c859055600b849055600d839055600e829055600f819055601054610832906001610957565b600d5411158015610852575060105461084c906001610957565b600e5411155b801561086d5750601054610867906001610957565b600f5411155b6107c35760405162461bcd60e51b815260206004820152602e60248201527f627579657254617820616e642073656c6c65725461782063616e6e6f7420626560448201526d206d6f7265207468616e2032302560901b606482015260840161046a565b5f546001600160a01b031633146108f95760405162461bcd60e51b815260040161046a9061172f565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f61065782846117b0565b5f61065782846117c7565b6001600160a01b0383166109c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046a565b6001600160a01b038216610a255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046a565b6001600160a01b038381165f8181526017602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61065782846117e6565b6001600160a01b038316610af45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046a565b6001600160a01b038216610b565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046a565b6001600160a01b0383165f90815260196020526040902054811115610bd75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161046a565b6001600160a01b0383165f9081526018602052604090205460ff16158015610c1757506001600160a01b0382165f9081526018602052604090205460ff16155b15610c6557600354600160a01b900460ff16610c655760405162461bcd60e51b815260206004820152600d60248201526c74726164696e67456e61626c6560981b604482015260640161046a565b6001600160a01b0383165f9081526018602052604090205460ff16158015610ca557506001600160a01b0382165f9081526018602052604090205460ff16155b8015610cbf57506003546001600160a01b03838116911614155b8015610cd657506001600160a01b03821661dead14155b15610d4e576016546001600160a01b0383165f90815260196020526040902054610d009083610ffb565b1115610d4e5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161046a565b6003546001600160a01b03848116911614610ded5760155481111580610d8b57506001600160a01b0383165f9081526018602052604090205460ff165b80610dad57506001600160a01b0382165f9081526018602052604090205460ff165b610ded5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161046a565b60145481111580610e1557506001600160a01b0383165f9081526018602052604090205460ff165b80610e3757506001600160a01b0382165f9081526018602052604090205460ff165b610e775760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161046a565b6003546001600160a01b038381169116148015610eac57506001600160a01b0383165f9081526018602052604090205460ff16155b15610ec957600160045f828254610ec391906117f9565b90915550505b610ed4838383611006565b15610ee957610ee46007546110be565b5f6004555b6001600160a01b0383165f90815260196020526040902054610f0b9082610a85565b6001600160a01b0384165f90815260196020908152604080832093909355601890529081205460ff1615610f3f5781610f4a565b610f4a84848461122e565b6001600160a01b0384165f90815260196020526040902054909150610f6f9082610ffb565b6001600160a01b038085165f8181526019602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc29085815260200190565b60405180910390a350505050565b5f8184841115610ff35760405162461bcd60e51b815260040161046a91906115e4565b505050900390565b5f61065782846117f9565b600854600754305f9081526019602052604081205460055491938510159211159060ff161580156110405750600354600160a81b900460ff165b80156110555750600354600160a01b900460ff165b801561105e5750815b801561108257506001600160a01b0386165f9081526018602052604090205460ff16155b801561109b57506003546001600160a01b038681169116145b80156110ab575060065460045410155b80156110b45750805b9695505050505050565b6005805460ff19166001908117909155600b54600a546009545f936110f7936002936104e89391926110f1928391610ffb565b90610ffb565b90505f611113826104ee6009548661094c90919063ffffffff16565b90505f6111208483610a85565b90504761112c82611358565b5f6111374783610a85565b90505f61115961115260095488610a8590919063ffffffff16565b8390610957565b90505f6111716009548361094c90919063ffffffff16565b905080156111835761118386826114a8565b600a545f90611197906104e885600261094c565b905080156111d8576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111d6573d5f803e3d5ffd5b505b478015611218576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611216573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526018602052604081205460ff16156112575750601454610657565b5f6112628585611559565b1115611351575f6112846112768686611559565b6010546104e8908690610957565b305f908152601960205260409020549091506112a09082610ffb565b305f81815260196020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f09085815260200190565b60405180910390a35f600c541180156113135750600c546113118686611559565b115b1561133f5761133f3061dead61133a600c546104e86010548961095790919063ffffffff16565b610a90565b6113498382610a85565b915050610657565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061138b5761138b61180c565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114069190611820565b816001815181106114195761141961180c565b6001600160a01b03928316602091820292909201015260025461143f9130911684610962565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906114779085905f9086903090429060040161183b565b5f604051808303815f87803b15801561148e575f80fd5b505af11580156114a0573d5f803e3d5ffd5b505050505050565b6002546114c09030906001600160a01b031684610962565b60025460135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561152d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061155291906118aa565b5050505050565b6003545f906001600160a01b039081169083160361157a5750600e54610580565b6003546001600160a01b03908116908416036115995750600d54610580565b50600f5492915050565b6001600160a01b03811681146115b7575f80fd5b50565b5f80604083850312156115cb575f80fd5b82356115d6816115a3565b946020939093013593505050565b5f6020808352835180828501525f5b8181101561160f578581018301518582016040015282016115f3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611641575f80fd5b833561164c816115a3565b9250602084013561165c816115a3565b929592945050506040919091013590565b5f805f6060848603121561167f575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156116a6575f80fd5b8135610657816115a3565b5f80604083850312156116c2575f80fd5b82356116cd816115a3565b915060208301356116dd816115a3565b809150509250929050565b5f805f805f805f60e0888a0312156116fe575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6020808252601c908201527f4f776e61626c653a2043616c6c6572206973206e6f74206f776e657200000000604082015260600190565b5f60208284031215611776575f80fd5b5051919050565b5f6020828403121561178d575f80fd5b81518015158114610657575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105805761058061179c565b5f826117e157634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105805761058061179c565b808201808211156105805761058061179c565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611830575f80fd5b8151610657816115a3565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118895784516001600160a01b031683529383019391830191600101611864565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156118bc575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220763335756be46b4ee0e1e06df6f1a77f326b4f5b6b9c6eca9d55bfe2ef8494fe64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610128575f3560e01c8063465c5bcb116100a8578063a9059cbb1161006d578063a9059cbb14610353578063cb4ca63114610372578063dd62ed3e146103a0578063ecccce87146103e4578063f242ab4114610403578063f2fde38b14610422575f80fd5b8063465c5bcb1461029757806346dfbb11146102ac57806370a08231146102c1578063893d20e8146102f557806395d89b4114610325575f80fd5b806323b872dd116100ee57806323b872dd146101fd578063293230b81461021c5780632bbe0c83146102305780632f54bf6e1461024f578063313ce5671461027c575f80fd5b806278338f1461013357806306fdde0314610154578063095ea7b3146101975780631654fc8a146101c657806318160ddd146101e9575f80fd5b3661012f57005b5f80fd5b34801561013e575f80fd5b5061015261014d3660046115ba565b610441565b005b34801561015f575f80fd5b506040805180820190915260098152680a6e0c2e4e8c2888ab60bb1b60208201525b60405161018e91906115e4565b60405180910390f35b3480156101a2575f80fd5b506101b66101b13660046115ba565b610570565b604051901515815260200161018e565b3480156101d1575f80fd5b506101db60145481565b60405190815260200161018e565b3480156101f4575f80fd5b506101db610586565b348015610208575f80fd5b506101b661021736600461162f565b6105f6565b348015610227575f80fd5b5061015261065e565b34801561023b575f80fd5b5061015261024a36600461166d565b61069c565b34801561025a575f80fd5b506101b6610269366004611696565b5f546001600160a01b0391821691161490565b348015610287575f80fd5b506040516009815260200161018e565b3480156102a2575f80fd5b506101db60155481565b3480156102b7575f80fd5b506101db60165481565b3480156102cc575f80fd5b506101db6102db366004611696565b6001600160a01b03165f9081526019602052604090205490565b348015610300575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161018e565b348015610330575f80fd5b5060408051808201909152600681526553504152544160d01b6020820152610181565b34801561035e575f80fd5b506101b661036d3660046115ba565b6107cc565b34801561037d575f80fd5b506101b661038c366004611696565b60186020525f908152604090205460ff1681565b3480156103ab575f80fd5b506101db6103ba3660046116b1565b6001600160a01b039182165f90815260176020908152604080832093909416825291909152205490565b3480156103ef575f80fd5b506101526103fe3660046116e8565b6107d8565b34801561040e575f80fd5b5060035461030d906001600160a01b031681565b34801561042d575f80fd5b5061015261043c366004611696565b6108d0565b5f546001600160a01b031633146104735760405162461bcd60e51b815260040161046a9061172f565b60405180910390fd5b6040516370a0823160e01b81523060048201525f906104f4906064906104ee9085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156104c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e89190611766565b9061094c565b90610957565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a919061177d565b50505050565b5f61057c338484610962565b5060015b92915050565b60196020527fd2ac945fcc0096878c763e37d6929b78378c1a2defabde8ba7ee5ed1d6e7a5b25461dead5f9081527fc73b1d6eda13a615b81c31830292dbbbf5fbb07f472982e223002bd83d5c3dc45460015491926105f19290916105eb9190610a85565b90610a85565b905090565b5f610602848484610a90565b610653843361064e856040518060600160405280602881526020016118d6602891396001600160a01b038a165f9081526017602090815260408083203384529091529020549190610fd0565b610962565b5060015b9392505050565b5f546001600160a01b031633146106875760405162461bcd60e51b815260040161046a9061172f565b6003805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146106c55760405162461bcd60e51b815260040161046a9061172f565b5f6106e16127106104ee8660015461094c90919063ffffffff16565b90505f6106ff6127106104ee8660015461094c90919063ffffffff16565b90505f61071d6127106104ee8660015461094c90919063ffffffff16565b60148490556015839055601681905590505f6107426103e86104ee60056104e8610586565b90508084101580156107545750808310155b80156107605750808210155b6107c35760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161046a565b50505050505050565b5f61057c338484610a90565b5f546001600160a01b031633146108015760405162461bcd60e51b815260040161046a9061172f565b6009879055600a869055600c859055600b849055600d839055600e829055600f819055601054610832906001610957565b600d5411158015610852575060105461084c906001610957565b600e5411155b801561086d5750601054610867906001610957565b600f5411155b6107c35760405162461bcd60e51b815260206004820152602e60248201527f627579657254617820616e642073656c6c65725461782063616e6e6f7420626560448201526d206d6f7265207468616e2032302560901b606482015260840161046a565b5f546001600160a01b031633146108f95760405162461bcd60e51b815260040161046a9061172f565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f61065782846117b0565b5f61065782846117c7565b6001600160a01b0383166109c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046a565b6001600160a01b038216610a255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046a565b6001600160a01b038381165f8181526017602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61065782846117e6565b6001600160a01b038316610af45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046a565b6001600160a01b038216610b565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046a565b6001600160a01b0383165f90815260196020526040902054811115610bd75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161046a565b6001600160a01b0383165f9081526018602052604090205460ff16158015610c1757506001600160a01b0382165f9081526018602052604090205460ff16155b15610c6557600354600160a01b900460ff16610c655760405162461bcd60e51b815260206004820152600d60248201526c74726164696e67456e61626c6560981b604482015260640161046a565b6001600160a01b0383165f9081526018602052604090205460ff16158015610ca557506001600160a01b0382165f9081526018602052604090205460ff16155b8015610cbf57506003546001600160a01b03838116911614155b8015610cd657506001600160a01b03821661dead14155b15610d4e576016546001600160a01b0383165f90815260196020526040902054610d009083610ffb565b1115610d4e5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161046a565b6003546001600160a01b03848116911614610ded5760155481111580610d8b57506001600160a01b0383165f9081526018602052604090205460ff165b80610dad57506001600160a01b0382165f9081526018602052604090205460ff165b610ded5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161046a565b60145481111580610e1557506001600160a01b0383165f9081526018602052604090205460ff165b80610e3757506001600160a01b0382165f9081526018602052604090205460ff165b610e775760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161046a565b6003546001600160a01b038381169116148015610eac57506001600160a01b0383165f9081526018602052604090205460ff16155b15610ec957600160045f828254610ec391906117f9565b90915550505b610ed4838383611006565b15610ee957610ee46007546110be565b5f6004555b6001600160a01b0383165f90815260196020526040902054610f0b9082610a85565b6001600160a01b0384165f90815260196020908152604080832093909355601890529081205460ff1615610f3f5781610f4a565b610f4a84848461122e565b6001600160a01b0384165f90815260196020526040902054909150610f6f9082610ffb565b6001600160a01b038085165f8181526019602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc29085815260200190565b60405180910390a350505050565b5f8184841115610ff35760405162461bcd60e51b815260040161046a91906115e4565b505050900390565b5f61065782846117f9565b600854600754305f9081526019602052604081205460055491938510159211159060ff161580156110405750600354600160a81b900460ff165b80156110555750600354600160a01b900460ff165b801561105e5750815b801561108257506001600160a01b0386165f9081526018602052604090205460ff16155b801561109b57506003546001600160a01b038681169116145b80156110ab575060065460045410155b80156110b45750805b9695505050505050565b6005805460ff19166001908117909155600b54600a546009545f936110f7936002936104e89391926110f1928391610ffb565b90610ffb565b90505f611113826104ee6009548661094c90919063ffffffff16565b90505f6111208483610a85565b90504761112c82611358565b5f6111374783610a85565b90505f61115961115260095488610a8590919063ffffffff16565b8390610957565b90505f6111716009548361094c90919063ffffffff16565b905080156111835761118386826114a8565b600a545f90611197906104e885600261094c565b905080156111d8576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111d6573d5f803e3d5ffd5b505b478015611218576011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611216573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526018602052604081205460ff16156112575750601454610657565b5f6112628585611559565b1115611351575f6112846112768686611559565b6010546104e8908690610957565b305f908152601960205260409020549091506112a09082610ffb565b305f81815260196020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f09085815260200190565b60405180910390a35f600c541180156113135750600c546113118686611559565b115b1561133f5761133f3061dead61133a600c546104e86010548961095790919063ffffffff16565b610a90565b6113498382610a85565b915050610657565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061138b5761138b61180c565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114069190611820565b816001815181106114195761141961180c565b6001600160a01b03928316602091820292909201015260025461143f9130911684610962565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906114779085905f9086903090429060040161183b565b5f604051808303815f87803b15801561148e575f80fd5b505af11580156114a0573d5f803e3d5ffd5b505050505050565b6002546114c09030906001600160a01b031684610962565b60025460135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561152d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061155291906118aa565b5050505050565b6003545f906001600160a01b039081169083160361157a5750600e54610580565b6003546001600160a01b03908116908416036115995750600d54610580565b50600f5492915050565b6001600160a01b03811681146115b7575f80fd5b50565b5f80604083850312156115cb575f80fd5b82356115d6816115a3565b946020939093013593505050565b5f6020808352835180828501525f5b8181101561160f578581018301518582016040015282016115f3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611641575f80fd5b833561164c816115a3565b9250602084013561165c816115a3565b929592945050506040919091013590565b5f805f6060848603121561167f575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156116a6575f80fd5b8135610657816115a3565b5f80604083850312156116c2575f80fd5b82356116cd816115a3565b915060208301356116dd816115a3565b809150509250929050565b5f805f805f805f60e0888a0312156116fe575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6020808252601c908201527f4f776e61626c653a2043616c6c6572206973206e6f74206f776e657200000000604082015260600190565b5f60208284031215611776575f80fd5b5051919050565b5f6020828403121561178d575f80fd5b81518015158114610657575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105805761058061179c565b5f826117e157634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105805761058061179c565b808201808211156105805761058061179c565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611830575f80fd5b8151610657816115a3565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118895784516001600160a01b031683529383019391830191600101611864565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156118bc575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220763335756be46b4ee0e1e06df6f1a77f326b4f5b6b9c6eca9d55bfe2ef8494fe64736f6c63430008150033

Deployed Bytecode Sourcemap

3644:10066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7955:253;;;;;;;;;;-1:-1:-1;7955:253:0;;;;;:::i;:::-;;:::i;:::-;;6044:67;;;;;;;;;;-1:-1:-1;6104:5:0;;;;;;;;;;;;-1:-1:-1;;;6104:5:0;;;;6044:67;;;;;;;:::i;:::-;;;;;;;;6472:133;;;;;;;;;;-1:-1:-1;6472:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6472:133:0;1023:187:1;5017:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5017:51:0;1215:177:1;6611:127:0;;;;;;;;;;;;;:::i;13047:309::-;;;;;;;;;;-1:-1:-1;13047:309:0;;;;;:::i;:::-;;:::i;6267:66::-;;;;;;;;;;;;;:::i;7082:526::-;;;;;;;;;;-1:-1:-1;7082:526:0;;;;;:::i;:::-;;:::i;794:87::-;;;;;;;;;;-1:-1:-1;794:87:0;;;;;:::i;:::-;849:4;874:5;-1:-1:-1;;;;;863:16:0;;;874:5;;863:16;;794:87;6194:67;;;;;;;;;;-1:-1:-1;6194:67:0;;3861:1;2573:36:1;;2561:2;2546:18;6194:67:0;2431:184:1;5075:57:0;;;;;;;;;;;;;;;;5139:55;;;;;;;;;;;;;;;;6744:103;;;;;;;;;;-1:-1:-1;6744:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6827:18:0;6810:7;6827:18;;;:9;:18;;;;;;;6744:103;6853:78;;;;;;;;;;-1:-1:-1;6905:7:0;6923:5;-1:-1:-1;;;;;6923:5:0;6853:78;;;-1:-1:-1;;;;;2784:32:1;;;2766:51;;2754:2;2739:18;6853:78:0;2620:203:1;6117:71:0;;;;;;;;;;-1:-1:-1;6179:7:0;;;;;;;;;;;;-1:-1:-1;;;6179:7:0;;;;6117:71;;6937:139;;;;;;;;;;-1:-1:-1;6937:139:0;;;;;:::i;:::-;;:::i;5279:50::-;;;;;;;;;;-1:-1:-1;5279:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6339:127;;;;;;;;;;-1:-1:-1;6339:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6437:18:0;;;6420:7;6437:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6339:127;11033:520;;;;;;;;;;-1:-1:-1;11033:520:0;;;;;:::i;:::-;;:::i;3962:22::-;;;;;;;;;;-1:-1:-1;3962:22:0;;;;-1:-1:-1;;;;;3962:22:0;;;887:111;;;;;;;;;;-1:-1:-1;887:111:0;;;;;:::i;:::-;;:::i;7955:253::-;849:4;874:5;-1:-1:-1;;;;;874:5:0;739:10;863:16;723:60;;;;-1:-1:-1;;;723:60:0;;;;;;;:::i;:::-;;;;;;;;;8061:49:::1;::::0;-1:-1:-1;;;8061:49:0;;8104:4:::1;8061:49;::::0;::::1;2766:51:1::0;8043:15:0::1;::::0;8061:71:::1;::::0;8128:3:::1;::::0;8061:62:::1;::::0;8115:7;;-1:-1:-1;;;;;8061:34:0;::::1;::::0;::::1;::::0;2739:18:1;;8061:49:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53:::0;::::1;:62::i;:::-;:66:::0;::::1;:71::i;:::-;8177:13;::::0;8143:57:::1;::::0;-1:-1:-1;;;8143:57:0;;-1:-1:-1;;;;;8177:13:0;;::::1;8143:57;::::0;::::1;4798:51:1::0;4865:18;;;4858:34;;;8043:89:0;;-1:-1:-1;8143:33:0;::::1;::::0;::::1;::::0;4771:18:1;;8143:57:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8032:176;7955:253:::0;;:::o;6472:133::-;6547:4;6554:37;6563:10;6575:7;6584:6;6554:8;:37::i;:::-;-1:-1:-1;6599:4:0;6472:133;;;;;:::o;6611:127::-;6827:9;:18;;;;4721:42;6664:7;6827:18;;;;;6681:7;;6664;;6681:55;;6827:18;;6681:28;;:7;:11;:28::i;:::-;:32;;:55::i;:::-;6674:62;;6611:127;:::o;13047:309::-;13145:4;13162:36;13172:6;13180:9;13191:6;13162:9;:36::i;:::-;13209:117;13218:6;13226:10;13238:87;13274:6;13238:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13238:19:0;;;;;;:11;:19;;;;;;;;13258:10;13238:31;;;;;;;;;:87;:35;:87::i;:::-;13209:8;:117::i;:::-;-1:-1:-1;13344:4:0;13047:309;;;;;;:::o;6267:66::-;849:4;874:5;-1:-1:-1;;;;;874:5:0;739:10;863:16;723:60;;;;-1:-1:-1;;;723:60:0;;;;;;;:::i;:::-;6311:13:::1;:20:::0;;-1:-1:-1;;;;6311:20:0::1;-1:-1:-1::0;;;6311:20:0::1;::::0;;6267:66::o;7082:526::-;849:4;874:5;-1:-1:-1;;;;;874:5:0;739:10;863:16;723:60;;;;-1:-1:-1;;;723:60:0;;;;;;;:::i;:::-;7180:13:::1;7196:28;7218:5;7196:17;7208:4;7196:7;;:11;;:17;;;;:::i;:28::-;7180:44;;7226:19;7248:29;7271:5;7248:18;7260:5;7248:7;;:11;;:18;;;;:::i;:29::-;7226:51;;7279:17;7299:31;7324:5;7299:20;7311:7;7299;;:11;;:20;;;;:::i;:31::-;7341:8;:16:::0;;;7359:14:::1;:28:::0;;;7389:12:::1;:24:::0;;;7279:51;-1:-1:-1;;7440:30:0::1;7465:4;7440:20;7458:1;7440:13;:11;:13::i;:30::-;7424:46;;7498:5;7489;:14;;:38;;;;;7522:5;7507:11;:20;;7489:38;:60;;;;;7544:5;7531:9;:18;;7489:60;7481:119;;;::::0;-1:-1:-1;;;7481:119:0;;5387:2:1;7481:119:0::1;::::0;::::1;5369:21:1::0;5426:2;5406:18;;;5399:30;5465:34;5445:18;;;5438:62;-1:-1:-1;;;5516:18:1;;;5509:44;5570:19;;7481:119:0::1;5185:410:1::0;7481:119:0::1;7169:439;;;;7082:526:::0;;;:::o;6937:139::-;7015:4;7022:40;7032:10;7044:9;7055:6;7022:9;:40::i;11033:520::-;849:4;874:5;-1:-1:-1;;;;;874:5:0;739:10;863:16;723:60;;;;-1:-1:-1;;;723:60:0;;;;;;;:::i;:::-;11213:12:::1;:25:::0;;;11240:12:::1;:25:::0;;;11267:9:::1;:17:::0;;;11286:12:::1;:27:::0;;;11315:8:::1;:17:::0;;;11334:9:::1;:17:::0;;;11353:11:::1;:20:::0;;;11404:11:::1;::::0;:18:::1;::::0;-1:-1:-1;11404:15:0::1;:18::i;:::-;11392:8;;:30;;:65;;;;-1:-1:-1::0;11439:11:0::1;::::0;:18:::1;::::0;11455:1:::1;11439:15;:18::i;:::-;11426:9;;:31;;11392:65;:102;;;;-1:-1:-1::0;11476:11:0::1;::::0;:18:::1;::::0;11492:1:::1;11476:15;:18::i;:::-;11461:11;;:33;;11392:102;11384:161;;;::::0;-1:-1:-1;;;11384:161:0;;5802:2:1;11384:161:0::1;::::0;::::1;5784:21:1::0;5841:2;5821:18;;;5814:30;5880:34;5860:18;;;5853:62;-1:-1:-1;;;5931:18:1;;;5924:44;5985:19;;11384:161:0::1;5600:410:1::0;887:111:0;849:4;874:5;-1:-1:-1;;;;;874:5:0;739:10;863:16;723:60;;;;-1:-1:-1;;;723:60:0;;;;;;;:::i;:::-;953:5:::1;:11:::0;;-1:-1:-1;;;;;;953:11:0::1;-1:-1:-1::0;;;;;953:11:0;::::1;::::0;;::::1;::::0;;;971:25:::1;::::0;2766:51:1;;;971:25:0::1;::::0;2754:2:1;2739:18;971:25:0::1;;;;;;;887:111:::0;:::o;2203:98::-;2261:7;2288:5;2292:1;2288;:5;:::i;2307:98::-;2365:7;2392:5;2396:1;2392;:5;:::i;7614:335::-;-1:-1:-1;;;;;7707:19:0;;7699:68;;;;-1:-1:-1;;;7699:68:0;;6960:2:1;7699:68:0;;;6942:21:1;6999:2;6979:18;;;6972:30;7038:34;7018:18;;;7011:62;-1:-1:-1;;;7089:18:1;;;7082:34;7133:19;;7699:68:0;6758:400:1;7699:68:0;-1:-1:-1;;;;;7786:21:0;;7778:68;;;;-1:-1:-1;;;7778:68:0;;7365:2:1;7778:68:0;;;7347:21:1;7404:2;7384:18;;;7377:30;7443:34;7423:18;;;7416:62;-1:-1:-1;;;7494:18:1;;;7487:32;7536:19;;7778:68:0;7163:398:1;7778:68:0;-1:-1:-1;;;;;7857:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7909:32;;1361:25:1;;;7909:32:0;;1334:18:1;7909:32:0;;;;;;;7614:335;;;:::o;2099:98::-;2157:7;2184:5;2188:1;2184;:5;:::i;11559:1482::-;-1:-1:-1;;;;;11656:20:0;;11648:70;;;;-1:-1:-1;;;11648:70:0;;7901:2:1;11648:70:0;;;7883:21:1;7940:2;7920:18;;;7913:30;7979:34;7959:18;;;7952:62;-1:-1:-1;;;8030:18:1;;;8023:35;8075:19;;11648:70:0;7699:401:1;11648:70:0;-1:-1:-1;;;;;11737:23:0;;11729:71;;;;-1:-1:-1;;;11729:71:0;;8307:2:1;11729:71:0;;;8289:21:1;8346:2;8326:18;;;8319:30;8385:34;8365:18;;;8358:62;-1:-1:-1;;;8436:18:1;;;8429:33;8479:19;;11729:71:0;8105:399:1;11729:71:0;-1:-1:-1;;;;;6827:18:0;;6810:7;6827:18;;;:9;:18;;;;;;11819:6;:27;;11811:88;;;;-1:-1:-1;;;11811:88:0;;8711:2:1;11811:88:0;;;8693:21:1;8750:2;8730:18;;;8723:30;8789:34;8769:18;;;8762:62;-1:-1:-1;;;8840:18:1;;;8833:47;8897:19;;11811:88:0;8509:413:1;11811:88:0;-1:-1:-1;;;;;11914:25:0;;;;;;:17;:25;;;;;;;;11913:26;:59;;;;-1:-1:-1;;;;;;11944:28:0;;;;;;:17;:28;;;;;;;;11943:29;11913:59;11910:105;;;11982:13;;-1:-1:-1;;;11982:13:0;;;;11974:39;;;;-1:-1:-1;;;11974:39:0;;9129:2:1;11974:39:0;;;9111:21:1;9168:2;9148:18;;;9141:30;-1:-1:-1;;;9187:18:1;;;9180:43;9240:18;;11974:39:0;8927:337:1;11974:39:0;-1:-1:-1;;;;;12029:25:0;;;;;;:17;:25;;;;;;;;12028:26;:59;;;;-1:-1:-1;;;;;;12059:28:0;;;;;;:17;:28;;;;;;;;12058:29;12028:59;:92;;;;-1:-1:-1;12112:7:0;;-1:-1:-1;;;;;12091:29:0;;;12112:7;;12091:29;;12028:92;:122;;;;-1:-1:-1;;;;;;12124:26:0;;4721:42;12124:26;;12028:122;12025:232;;;12208:12;;-1:-1:-1;;;;;12171:20:0;;;;;;:9;:20;;;;;;:32;;12196:6;12171:24;:32::i;:::-;12170:50;;12162:93;;;;-1:-1:-1;;;12162:93:0;;9471:2:1;12162:93:0;;;9453:21:1;9510:2;9490:18;;;9483:30;9549:32;9529:18;;;9522:60;9599:18;;12162:93:0;9269:354:1;12162:93:0;12280:7;;-1:-1:-1;;;;;12270:17:0;;;12280:7;;12270:17;12267:139;;12307:14;;12297:6;:24;;:53;;;-1:-1:-1;;;;;;12325:25:0;;;;;;:17;:25;;;;;;;;12297:53;:85;;;-1:-1:-1;;;;;;12354:28:0;;;;;;:17;:28;;;;;;;;12297:85;12289:115;;;;-1:-1:-1;;;12289:115:0;;9830:2:1;12289:115:0;;;9812:21:1;9869:2;9849:18;;;9842:30;-1:-1:-1;;;9888:18:1;;;9881:47;9945:18;;12289:115:0;9628:341:1;12289:115:0;12434:8;;12424:6;:18;;:47;;;-1:-1:-1;;;;;;12446:25:0;;;;;;:17;:25;;;;;;;;12424:47;:79;;;-1:-1:-1;;;;;;12475:28:0;;;;;;:17;:28;;;;;;;;12424:79;12416:109;;;;-1:-1:-1;;;12416:109:0;;9830:2:1;12416:109:0;;;9812:21:1;9869:2;9849:18;;;9842:30;-1:-1:-1;;;9888:18:1;;;9881:47;9945:18;;12416:109:0;9628:341:1;12416:109:0;12553:7;;-1:-1:-1;;;;;12540:20:0;;;12553:7;;12540:20;:50;;;;-1:-1:-1;;;;;;12565:25:0;;;;;;:17;:25;;;;;;;;12564:26;12540:50;12537:81;;;12614:1;12592:10;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;12537:81:0;12631:38;12643:6;12651:9;12662:6;12631:11;:38::i;:::-;12628:95;;;12671:25;12679:16;;12671:7;:25::i;:::-;12719:1;12698:10;:23;12628:95;-1:-1:-1;;;;;12753:17:0;;;;;;:9;:17;;;;;;:29;;12775:6;12753:21;:29::i;:::-;-1:-1:-1;;;;;12733:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12819:17;:25;;;;;;;;12818:26;:82;;12894:6;12818:82;;;12847:44;12865:6;12873:9;12884:6;12847:17;:44::i;:::-;-1:-1:-1;;;;;12934:20:0;;;;;;:9;:20;;;;;;12793:107;;-1:-1:-1;12934:40:0;;12793:107;12934:24;:40::i;:::-;-1:-1:-1;;;;;12911:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12990:43;;;;;;;;;;13018:14;1361:25:1;;1349:2;1334:18;;1215:177;12990:43:0;;;;;;;;11637:1404;11559:1482;;;:::o;2411:240::-;2531:7;2592:12;2584:6;;;;2576:29;;;;-1:-1:-1;;;2576:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2627:5:0;;;2411:240::o;1995:98::-;2053:7;2080:5;2084:1;2080;:5;:::i;10618:409::-;10756:9;;10826:16;;10816:4;10713;6827:18;;;:9;:18;;;;;;10861:8;;10713:4;;10746:19;;;;-1:-1:-1;10798:44:0;;10861:8;;10860:9;:26;;;;-1:-1:-1;10873:13:0;;-1:-1:-1;;;10873:13:0;;;;10860:26;:43;;;;-1:-1:-1;10890:13:0;;-1:-1:-1;;;10890:13:0;;;;10860:43;:55;;;;;10907:8;10860:55;:85;;;;-1:-1:-1;;;;;;10920:25:0;;;;;;:17;:25;;;;;;;;10919:26;10860:85;:109;;;;-1:-1:-1;10962:7:0;;-1:-1:-1;;;;;10949:20:0;;;10962:7;;10949:20;10860:109;:141;;;;;10987:14;;10973:10;;:28;;10860:141;:159;;;;;11005:14;10860:159;10853:166;10618:409;-1:-1:-1;;;;;;10618:409:0:o;8214:1043::-;4329:8;:15;;-1:-1:-1;;4329:15:0;4340:4;4329:15;;;;;;8347:12:::1;::::0;8329::::1;::::0;8305::::1;::::0;4329:8;;8304:64:::1;::::0;8366:1:::1;::::0;8305:55:::1;::::0;8347:12;;8305:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;8304:64::-;8281:87;;8379:32;8414:42;8443:12;8414:24;8425:12;;8414:6;:10;;:24;;;;:::i;:42::-;8379:77:::0;-1:-1:-1;8467:14:0::1;8484:36;:6:::0;8379:77;8484:10:::1;:36::i;:::-;8467:53:::0;-1:-1:-1;8556:21:0::1;8588:23;8467:53:::0;8588:15:::1;:23::i;:::-;8622:20;8645:41;:21;8671:14:::0;8645:25:::1;:41::i;:::-;8622:64;;8697:19;8718:48;8735:30;8752:12;;8735;:16;;:30;;;;:::i;:::-;8718:12:::0;;:16:::1;:48::i;:::-;8697:69;;8777:29;8809;8825:12;;8809:11;:15;;:29;;;;:::i;:::-;8777:61:::0;-1:-1:-1;8852:34:0;;8849:103:::1;;8888:61;8901:24;8927:21;8888:12;:61::i;:::-;9008:12;::::0;8962:20:::1;::::0;8985:36:::1;::::0;:18:::1;:11:::0;9001:1:::1;8985:15;:18::i;:36::-;8962:59:::0;-1:-1:-1;9035:16:0;;9032:67:::1;;9061:12;::::0;9053:44:::1;::::0;-1:-1:-1;;;;;9061:12:0;;::::1;::::0;9053:44;::::1;;;::::0;9084:12;;9061::::1;9053:44:::0;9061:12;9053:44;9084:12;9061;9053:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9032:67;9135:21;9170:28:::0;;9167:83:::1;;9208:13;::::0;9200:48:::1;::::0;-1:-1:-1;;;;;9208:13:0;;::::1;::::0;9200:48;::::1;;;::::0;9232:15;;9208:13:::1;9200:48:::0;9208:13;9200:48;9232:15;9208:13;9200:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9167:83;-1:-1:-1::0;;4349:8:0;:16;;-1:-1:-1;;4349:16:0;;;-1:-1:-1;;;;;;;;8214:1043:0:o;9944:668::-;-1:-1:-1;;;;;10064:28:0;;10040:7;10064:28;;;:17;:28;;;;;;;;10060:52;;;-1:-1:-1;10102:8:0;;10095:15;;10060:52;10158:1;10125:30;10137:6;10145:9;10125:11;:30::i;:::-;:34;10122:468;;;10171:17;10191:59;10219:30;10231:6;10239:9;10219:11;:30::i;:::-;10202:11;;10191:23;;:6;;:10;:23::i;:59::-;10306:4;10288:24;;;;:9;:24;;;;;;10171:79;;-1:-1:-1;10288:39:0;;10171:79;10288:28;:39::i;:::-;10279:4;10261:24;;;;:9;:24;;;;;;;:66;;;;10343:42;;-1:-1:-1;;;;;10343:42:0;;;;;;;10375:9;1361:25:1;;1349:2;1334:18;;1215:177;10343:42:0;;;;;;;;10419:1;10399:9;;:22;:68;;;;;10458:9;;10425:30;10437:6;10445:9;10425:11;:30::i;:::-;:42;10399:68;10396:154;;;10469:79;10487:4;4721:42;10509:38;10537:9;;10509:23;10520:11;;10509:6;:10;;:23;;;;:::i;:38::-;10469:9;:79::i;:::-;10567:21;:6;10578:9;10567:10;:21::i;:::-;10560:28;;;;;10122:468;-1:-1:-1;10598:6:0;9944:668;-1:-1:-1;;9944:668:0:o;9263:442::-;9352:16;;;9366:1;9352:16;;;;;;;;9328:21;;9352:16;;;;;;;;;;-1:-1:-1;9352:16:0;9328:40;;9397:4;9379;9384:1;9379:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9379:23:0;;;:7;;;;;;;;;;:23;;;;9423:9;;:16;;;-1:-1:-1;;;9423:16:0;;;;:9;;;;;:14;;:16;;;;;9379:7;;9423:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9413:4;9418:1;9413:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9413:26:0;;;:7;;;;;;;;;:26;9482:9;;9450:56;;9467:4;;9482:9;9494:11;9450:8;:56::i;:::-;9517:9;;:180;;-1:-1:-1;;;9517:180:0;;-1:-1:-1;;;;;9517:9:0;;;;:60;;:180;;9592:11;;9517:9;;9634:4;;9661;;9681:15;;9517:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9317:388;9263:442;:::o;13362:345::-;13475:9;;13443:56;;13460:4;;-1:-1:-1;;;;;13475:9:0;13487:11;13443:8;:56::i;:::-;13510:9;;13654:14;;13510:189;;-1:-1:-1;;;13510:189:0;;13576:4;13510:189;;;11950:34:1;12000:18;;;11993:34;;;13510:9:0;12043:18:1;;;12036:34;;;12086:18;;;12079:34;-1:-1:-1;;;;;13654:14:0;;;12129:19:1;;;12122:44;13683:15:0;12182:19:1;;;12175:35;13510:9:0;;;:25;;13543:9;;11884:19:1;;13510:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13362:345;;:::o;9711:227::-;9826:7;;9790;;-1:-1:-1;;;;;9826:7:0;;;9813:20;;;;9810:43;;-1:-1:-1;9842:9:0;;9835:16;;9810:43;9876:7;;-1:-1:-1;;;;;9876:7:0;;;9866:17;;;;9863:39;;-1:-1:-1;9892:8:0;;9885:15;;9863:39;-1:-1:-1;9919:11:0;;9711:227;;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:315::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:1:o;470:548::-;582:4;611:2;640;629:9;622:21;672:6;666:13;715:6;710:2;699:9;695:18;688:34;740:1;750:140;764:6;761:1;758:13;750:140;;;859:14;;;855:23;;849:30;825:17;;;844:2;821:26;814:66;779:10;;750:140;;;754:3;939:1;934:2;925:6;914:9;910:22;906:31;899:42;1009:2;1002;998:7;993:2;985:6;981:15;977:29;966:9;962:45;958:54;950:62;;;;470:548;;;;:::o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:316::-;1935:6;1943;1951;2004:2;1992:9;1983:7;1979:23;1975:32;1972:52;;;2020:1;2017;2010:12;1972:52;-1:-1:-1;;2043:23:1;;;2113:2;2098:18;;2085:32;;-1:-1:-1;2164:2:1;2149:18;;;2136:32;;1858:316;-1:-1:-1;1858:316:1:o;2179:247::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;2828:388::-;2896:6;2904;2957:2;2945:9;2936:7;2932:23;2928:32;2925:52;;;2973:1;2970;2963:12;2925:52;3012:9;2999:23;3031:31;3056:5;3031:31;:::i;:::-;3081:5;-1:-1:-1;3138:2:1;3123:18;;3110:32;3151:33;3110:32;3151:33;:::i;:::-;3203:7;3193:17;;;2828:388;;;;;:::o;3221:592::-;3334:6;3342;3350;3358;3366;3374;3382;3435:3;3423:9;3414:7;3410:23;3406:33;3403:53;;;3452:1;3449;3442:12;3403:53;-1:-1:-1;;3475:23:1;;;3545:2;3530:18;;3517:32;;-1:-1:-1;3596:2:1;3581:18;;3568:32;;3647:2;3632:18;;3619:32;;-1:-1:-1;3698:3:1;3683:19;;3670:33;;-1:-1:-1;3750:3:1;3735:19;;3722:33;;-1:-1:-1;3802:3:1;3787:19;3774:33;;-1:-1:-1;3221:592:1;-1:-1:-1;3221:592:1:o;4078:352::-;4280:2;4262:21;;;4319:2;4299:18;;;4292:30;4358;4353:2;4338:18;;4331:58;4421:2;4406:18;;4078:352::o;4435:184::-;4505:6;4558:2;4546:9;4537:7;4533:23;4529:32;4526:52;;;4574:1;4571;4564:12;4526:52;-1:-1:-1;4597:16:1;;4435:184;-1:-1:-1;4435:184:1:o;4903:277::-;4970:6;5023:2;5011:9;5002:7;4998:23;4994:32;4991:52;;;5039:1;5036;5029:12;4991:52;5071:9;5065:16;5124:5;5117:13;5110:21;5103:5;5100:32;5090:60;;5146:1;5143;5136:12;6231:127;6292:10;6287:3;6283:20;6280:1;6273:31;6323:4;6320:1;6313:15;6347:4;6344:1;6337:15;6363:168;6436:9;;;6467;;6484:15;;;6478:22;;6464:37;6454:71;;6505:18;;:::i;6536:217::-;6576:1;6602;6592:132;;6646:10;6641:3;6637:20;6634:1;6627:31;6681:4;6678:1;6671:15;6709:4;6706:1;6699:15;6592:132;-1:-1:-1;6738:9:1;;6536:217::o;7566:128::-;7633:9;;;7654:11;;;7651:37;;;7668:18;;:::i;9974:125::-;10039:9;;;10060:10;;;10057:36;;;10073:18;;:::i;10236:127::-;10297:10;10292:3;10288:20;10285:1;10278:31;10328:4;10325:1;10318:15;10352:4;10349:1;10342:15;10368:251;10438:6;10491:2;10479:9;10470:7;10466:23;10462:32;10459:52;;;10507:1;10504;10497:12;10459:52;10539:9;10533:16;10558:31;10583:5;10558:31;:::i;10624:980::-;10886:4;10934:3;10923:9;10919:19;10965:6;10954:9;10947:25;10991:2;11029:6;11024:2;11013:9;11009:18;11002:34;11072:3;11067:2;11056:9;11052:18;11045:31;11096:6;11131;11125:13;11162:6;11154;11147:22;11200:3;11189:9;11185:19;11178:26;;11239:2;11231:6;11227:15;11213:29;;11260:1;11270:195;11284:6;11281:1;11278:13;11270:195;;;11349:13;;-1:-1:-1;;;;;11345:39:1;11333:52;;11440:15;;;;11405:12;;;;11381:1;11299:9;11270:195;;;-1:-1:-1;;;;;;;11521:32:1;;;;11516:2;11501:18;;11494:60;-1:-1:-1;;;11585:3:1;11570:19;11563:35;11482:3;10624:980;-1:-1:-1;;;10624:980:1:o;12221:306::-;12309:6;12317;12325;12378:2;12366:9;12357:7;12353:23;12349:32;12346:52;;;12394:1;12391;12384:12;12346:52;12423:9;12417:16;12407:26;;12473:2;12462:9;12458:18;12452:25;12442:35;;12517:2;12506:9;12502:18;12496:25;12486:35;;12221:306;;;;;:::o

Swarm Source

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