ETH Price: $2,578.87 (-2.55%)

Token

Bright Union (BRIGHT)
 

Overview

Max Total Supply

1,000,000,000 BRIGHT

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
infopusat.eth
Balance
19,472,095.871408505 BRIGHT

Value
$0.00
0x2c6f997d89dbd9d6085b8a77e1ee7ee7f24d5ff1
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:
BRIGHTUNION

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-04
*/

// SPDX-License-Identifier: MIT

/**
Provide liquidity for DeFi insurance & earn stable yields.

Website: https://www.bunion.tech
Telegram: https://t.me/bunion_erc
Twitter: https://twitter.com/bunion_erc
Dapp: https://app.bunion.tech
 */

pragma solidity 0.8.21;

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 renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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 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);
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address uniswapPair);
}

library StandardMathLibs {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "StandardMathLibs: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "StandardMathLibs: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "StandardMathLibs: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "StandardMathLibs: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


interface IUniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract BRIGHTUNION is IERC20, Ownable {
    using StandardMathLibs for uint256;

    string constant _name = "Bright Union";
    string constant _symbol = "BRIGHT";
    uint8 constant _decimals = 9;

    uint256 _total = 10 ** 9 * (10 ** _decimals);

    uint256 _lpFee = 0; 
    uint256 _mktFee = 22;
    uint256 _totalFee = _lpFee + _mktFee;
    uint256 _feeDenominator = 100;
    uint256 public maxTxSize = (_total * 25) / 1000;
    address public feeReceiver;
    IUniswapRouter public uniswapRouter;
    address public uniswapPair;

    bool public taxSwapEnabled = false;
    uint256 public swapFeeAt = _total / 100000; // 0.5%

    address dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _isExcludedFromTax;
    mapping (address => bool) _isMaxTxExcluded;
    bool _swapping;

    modifier lockSwap() { _swapping = true; _; _swapping = false; }

    constructor () Ownable(msg.sender) {
        uniswapRouter = IUniswapRouter(dexRouter);
        uniswapPair = IUniswapFactory(uniswapRouter.factory()).createPair(uniswapRouter.WETH(), address(this));
        _allowances[address(this)][address(uniswapRouter)] = type(uint256).max;

        address _owner = owner;
        feeReceiver = 0xc9E23709ee591F30273A482D34FcC857Db97f2A1;
        _isExcludedFromTax[feeReceiver] = true;
        _isMaxTxExcluded[_owner] = true;
        _isMaxTxExcluded[feeReceiver] = true;
        _isMaxTxExcluded[DEAD] = true;

        _balances[_owner] = _total;
        emit Transfer(address(0), _owner, _total);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _total; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
            
    function setFee(uint256 lpFee_, uint256 mktFee_) external onlyOwner {
         _lpFee = lpFee_; 
         _mktFee = mktFee_;
         _totalFee = _lpFee + _mktFee;
    }    

    function setSwapEnabled(bool value) external onlyOwner {
        taxSwapEnabled = value;
    }

    function shouldSwapTax() internal view returns (bool) {
        return !_swapping
        && taxSwapEnabled
        && _balances[address(this)] >= swapFeeAt;
    }
    
    function _transferStandard(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
    
    function _chargeFee(address sender, uint256 amount) internal returns (uint256) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 feeAmount = amount.mul(_totalFee).div(_feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }
        function shouldTakeFee(address sender) internal view returns (bool) {
        return !_isExcludedFromTax[sender];
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        maxTxSize = (_total * amountPercent ) / 1000;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }
    
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(_swapping){ return _transferStandard(sender, recipient, amount); }
        
        if (recipient != uniswapPair && recipient != DEAD) {
            require(_isMaxTxExcluded[recipient] || _balances[recipient] + amount <= maxTxSize, "Transfer amount exceeds the bag size.");
        }        
        if(shouldSwapTax() && shouldTakeFee(sender) && recipient == uniswapPair && amount > swapFeeAt){ 
            swapInternal(); 
        } 
        bool shouldTax = shouldTakeFee(sender) || !taxSwapEnabled;
        if (shouldTax) {
            _balances[recipient] = _balances[recipient].add(_chargeFee(sender, amount));
        } else {
            _balances[recipient] = _balances[recipient].add(amount);
        }

        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function swapInternal() internal lockSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(_lpFee).div(_totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        uint256 balanceBefore = address(this).balance;

        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = _totalFee.sub(_lpFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(_lpFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(_mktFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(feeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            uniswapRouter.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                feeReceiver,
                block.timestamp
            );
        }
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
}

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":"holder","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":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxSize","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lpFee_","type":"uint256"},{"internalType":"uint256","name":"mktFee_","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFeeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000477565b6200002290633b9aca006200048e565b6001555f6002819055601660038190556200003d91620004a8565b60045560646005556103e860015460196200005991906200048e565b620000659190620004be565b6006556009805460ff60a01b191690556001546200008890620186a090620004be565b600a55600b80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600c805490911661dead179055348015620000cd575f80fd5b505f8054336001600160a01b031991821617909155600b54600880546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000137573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015d9190620004de565b6001600160a01b031663c9c6539660085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e29190620004de565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156200022c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002529190620004de565b600980546001600160a01b039283166001600160a01b031991821617909155305f908152600e602090815260408083206008548616845282528083205f19905582546007805490951673c9e23709ee591f30273a482d34fcc857db97f2a11785557f03e7bf750a80ea7c30d214cb1bda30d925f7390058596efccd4e641aa68806f5805460ff1990811660019081179092559187168086526010855283862080548416831790559554871685528285208054831682179055600c5490961684528184208054909116861790559354838352600d82528483208190559351938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000506565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003bc57815f1904821115620003a057620003a062000368565b80851615620003ae57918102915b93841c939080029062000381565b509250929050565b5f82620003d45750600162000471565b81620003e257505f62000471565b8160018114620003fb5760028114620004065762000426565b600191505062000471565b60ff8411156200041a576200041a62000368565b50506001821b62000471565b5060208310610133831016604e8410600b84101617156200044b575081810a62000471565b6200045783836200037c565b805f19048211156200046d576200046d62000368565b0290505b92915050565b5f6200048760ff841683620003c4565b9392505050565b808202811582820484141762000471576200047162000368565b8082018082111562000471576200047162000368565b5f82620004d957634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004ef575f80fd5b81516001600160a01b038116811462000487575f80fd5b61139680620005145f395ff3fe608060405260043610610129575f3560e01c8063735de9f7116100a8578063ac731f8e1161006d578063ac731f8e1461036c578063b3f0067414610381578063c816841b146103a0578063dd62ed3e146103bf578063e01af92c14610403578063f1d5f51714610422575f80fd5b8063735de9f7146102b75780637e150d66146102ee578063893d20e81461030357806395d89b411461031f578063a9059cbb1461034d575f80fd5b8063313ce567116100ee578063313ce5671461021357806343bcf89e1461022e57806352f7c9881461024e57806370a082311461026f578063715018a6146102a3575f80fd5b806306fdde0314610134578063095ea7b31461017a57806318160ddd146101a957806323b872dd146101c75780632f54bf6e146101e6575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600c81526b213934b3b43a102ab734b7b760a11b60208201525b604051610171919061104d565b60405180910390f35b348015610185575f80fd5b506101996101943660046110af565b610441565b6040519015158152602001610171565b3480156101b4575f80fd5b506001545b604051908152602001610171565b3480156101d2575f80fd5b506101996101e13660046110d9565b6104ad565b3480156101f1575f80fd5b50610199610200366004611117565b5f546001600160a01b0391821691161490565b34801561021e575f80fd5b5060405160098152602001610171565b348015610239575f80fd5b5060095461019990600160a01b900460ff1681565b348015610259575f80fd5b5061026d610268366004611132565b61056b565b005b34801561027a575f80fd5b506101b9610289366004611117565b6001600160a01b03165f908152600d602052604090205490565b3480156102ae575f80fd5b5061026d6105b8565b3480156102c2575f80fd5b506008546102d6906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b3480156102f9575f80fd5b506101b960065481565b34801561030e575f80fd5b505f546001600160a01b03166102d6565b34801561032a575f80fd5b5060408051808201909152600681526510949251d21560d21b6020820152610164565b348015610358575f80fd5b506101996103673660046110af565b610625565b348015610377575f80fd5b506101b9600a5481565b34801561038c575f80fd5b506007546102d6906001600160a01b031681565b3480156103ab575f80fd5b506009546102d6906001600160a01b031681565b3480156103ca575f80fd5b506101b96103d9366004611152565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b34801561040e575f80fd5b5061026d61041d366004611189565b610631565b34801561042d575f80fd5b5061026d61043c3660046111a8565b610678565b335f818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049b9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600e602090815260408083203384529091528120545f1914610556576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600e825283812033825290915291909120546105329184906106c2565b6001600160a01b0385165f908152600e602090815260408083203384529091529020555b6105618484846106fa565b90505b9392505050565b5f546001600160a01b0316331461059d5760405162461bcd60e51b8152600401610594906111bf565b60405180910390fd5b600282905560038190556105b181836111f3565b6004555050565b5f546001600160a01b031633146105e15760405162461bcd60e51b8152600401610594906111bf565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f6105643384846106fa565b5f546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610594906111bf565b60098054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146106a15760405162461bcd60e51b8152600401610594906111bf565b6103e8816001546106b29190611206565b6106bc919061121d565b60065550565b5f81848411156106e55760405162461bcd60e51b8152600401610594919061104d565b505f6106f1848661123c565b95945050505050565b6011545f9060ff161561071957610712848484610961565b9050610564565b6009546001600160a01b038481169116148015906107455750600c546001600160a01b03848116911614155b156107ee576001600160a01b0383165f9081526010602052604090205460ff168061079457506006546001600160a01b0384165f908152600d60205260409020546107919084906111f3565b11155b6107ee5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610594565b6107f6610a44565b801561081a57506001600160a01b0384165f908152600f602052604090205460ff16155b801561083357506009546001600160a01b038481169116145b80156108405750600a5482115b1561084d5761084d610a83565b6001600160a01b0384165f908152600f602052604081205460ff16158061087e5750600954600160a01b900460ff16155b905080156108ce576108b16108938685610de2565b6001600160a01b0386165f908152600d602052604090205490610ee9565b6001600160a01b0385165f908152600d6020526040902055610909565b6001600160a01b0384165f908152600d60205260409020546108f09084610ee9565b6001600160a01b0385165f908152600d60205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161094e91815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600d909152918220546109b19184906106c2565b6001600160a01b038086165f908152600d602052604080822093909355908516815220546109df9083610ee9565b6001600160a01b038085165f818152600d602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a329086815260200190565b60405180910390a35060019392505050565b6011545f9060ff16158015610a625750600954600160a01b900460ff165b8015610a7e5750600a54305f908152600d602052604090205410155b905090565b6011805460ff19166001179055305f908152600d602052604081205490505f610ac86002610ac2600454610ac260025487610f5390919063ffffffff16565b90610fd9565b90505f610ad58383610ffd565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610b0d57610b0d61124f565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b889190611263565b81600181518110610b9b57610b9b61124f565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b81524792919091169063791ac94790610be49086905f9087903090429060040161127e565b5f604051808303815f87803b158015610bfb575f80fd5b505af1158015610c0d573d5f803e3d5ffd5b505050505f610c258247610ffd90919063ffffffff16565b90505f610c49610c4060028054610fd990919063ffffffff16565b60045490610ffd565b90505f610c6a6002610ac284610ac260025488610f5390919063ffffffff16565b90505f610c8683610ac260035487610f5390919063ffffffff16565b6007546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f8114610cda576040519150601f19603f3d011682016040523d82523d5f602084013e610cdf565b606091505b5050905080610d305760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610594565b8815610dcc5760085460075460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610da3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dc891906112ed565b5050505b50506011805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385165f908152600d90915291822054610e329184906106c2565b6001600160a01b0384165f908152600d6020526040812091909155600554600454610e639190610ac2908690610f53565b305f908152600d6020526040902054909150610e7f9082610ee9565b305f818152600d6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ecf9085815260200190565b60405180910390a3610ee18382610ffd565b949350505050565b5f80610ef583856111f3565b9050838110156105645760405162461bcd60e51b815260206004820152602360248201527f5374616e646172644d6174684c6962733a206164646974696f6e206f766572666044820152626c6f7760e81b6064820152608401610594565b5f825f03610f6257505f6104a7565b5f610f6d8385611206565b905082610f7a858361121d565b146105645760405162461bcd60e51b815260206004820152602960248201527f5374616e646172644d6174684c6962733a206d756c7469706c69636174696f6e604482015268206f766572666c6f7760b81b6064820152608401610594565b5f610564838360405180606001604052806022815260200161133f60229139611021565b5f6105648383604051806060016040528060268152602001611319602691396106c2565b5f81836110415760405162461bcd60e51b8152600401610594919061104d565b505f6106f1848661121d565b5f6020808352835180828501525f5b818110156110785785810183015185820160400152820161105c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110ac575f80fd5b50565b5f80604083850312156110c0575f80fd5b82356110cb81611098565b946020939093013593505050565b5f805f606084860312156110eb575f80fd5b83356110f681611098565b9250602084013561110681611098565b929592945050506040919091013590565b5f60208284031215611127575f80fd5b813561056481611098565b5f8060408385031215611143575f80fd5b50508035926020909101359150565b5f8060408385031215611163575f80fd5b823561116e81611098565b9150602083013561117e81611098565b809150509250929050565b5f60208284031215611199575f80fd5b81358015158114610564575f80fd5b5f602082840312156111b8575f80fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104a7576104a76111df565b80820281158282048414176104a7576104a76111df565b5f8261123757634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104a7576104a76111df565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611273575f80fd5b815161056481611098565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112cc5784516001600160a01b0316835293830193918301916001016112a7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156112ff575f80fd5b835192506020840151915060408401519050925092509256fe5374616e646172644d6174684c6962733a207375627472616374696f6e206f766572666c6f775374616e646172644d6174684c6962733a206469766973696f6e206279207a65726fa2646970667358221220cd38c97d5ca7894dc93350128c3a0e3405a307f5f0eeb3cd65e05f70ba0a2a9864736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063735de9f7116100a8578063ac731f8e1161006d578063ac731f8e1461036c578063b3f0067414610381578063c816841b146103a0578063dd62ed3e146103bf578063e01af92c14610403578063f1d5f51714610422575f80fd5b8063735de9f7146102b75780637e150d66146102ee578063893d20e81461030357806395d89b411461031f578063a9059cbb1461034d575f80fd5b8063313ce567116100ee578063313ce5671461021357806343bcf89e1461022e57806352f7c9881461024e57806370a082311461026f578063715018a6146102a3575f80fd5b806306fdde0314610134578063095ea7b31461017a57806318160ddd146101a957806323b872dd146101c75780632f54bf6e146101e6575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600c81526b213934b3b43a102ab734b7b760a11b60208201525b604051610171919061104d565b60405180910390f35b348015610185575f80fd5b506101996101943660046110af565b610441565b6040519015158152602001610171565b3480156101b4575f80fd5b506001545b604051908152602001610171565b3480156101d2575f80fd5b506101996101e13660046110d9565b6104ad565b3480156101f1575f80fd5b50610199610200366004611117565b5f546001600160a01b0391821691161490565b34801561021e575f80fd5b5060405160098152602001610171565b348015610239575f80fd5b5060095461019990600160a01b900460ff1681565b348015610259575f80fd5b5061026d610268366004611132565b61056b565b005b34801561027a575f80fd5b506101b9610289366004611117565b6001600160a01b03165f908152600d602052604090205490565b3480156102ae575f80fd5b5061026d6105b8565b3480156102c2575f80fd5b506008546102d6906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b3480156102f9575f80fd5b506101b960065481565b34801561030e575f80fd5b505f546001600160a01b03166102d6565b34801561032a575f80fd5b5060408051808201909152600681526510949251d21560d21b6020820152610164565b348015610358575f80fd5b506101996103673660046110af565b610625565b348015610377575f80fd5b506101b9600a5481565b34801561038c575f80fd5b506007546102d6906001600160a01b031681565b3480156103ab575f80fd5b506009546102d6906001600160a01b031681565b3480156103ca575f80fd5b506101b96103d9366004611152565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b34801561040e575f80fd5b5061026d61041d366004611189565b610631565b34801561042d575f80fd5b5061026d61043c3660046111a8565b610678565b335f818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049b9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600e602090815260408083203384529091528120545f1914610556576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600e825283812033825290915291909120546105329184906106c2565b6001600160a01b0385165f908152600e602090815260408083203384529091529020555b6105618484846106fa565b90505b9392505050565b5f546001600160a01b0316331461059d5760405162461bcd60e51b8152600401610594906111bf565b60405180910390fd5b600282905560038190556105b181836111f3565b6004555050565b5f546001600160a01b031633146105e15760405162461bcd60e51b8152600401610594906111bf565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f6105643384846106fa565b5f546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610594906111bf565b60098054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146106a15760405162461bcd60e51b8152600401610594906111bf565b6103e8816001546106b29190611206565b6106bc919061121d565b60065550565b5f81848411156106e55760405162461bcd60e51b8152600401610594919061104d565b505f6106f1848661123c565b95945050505050565b6011545f9060ff161561071957610712848484610961565b9050610564565b6009546001600160a01b038481169116148015906107455750600c546001600160a01b03848116911614155b156107ee576001600160a01b0383165f9081526010602052604090205460ff168061079457506006546001600160a01b0384165f908152600d60205260409020546107919084906111f3565b11155b6107ee5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610594565b6107f6610a44565b801561081a57506001600160a01b0384165f908152600f602052604090205460ff16155b801561083357506009546001600160a01b038481169116145b80156108405750600a5482115b1561084d5761084d610a83565b6001600160a01b0384165f908152600f602052604081205460ff16158061087e5750600954600160a01b900460ff16155b905080156108ce576108b16108938685610de2565b6001600160a01b0386165f908152600d602052604090205490610ee9565b6001600160a01b0385165f908152600d6020526040902055610909565b6001600160a01b0384165f908152600d60205260409020546108f09084610ee9565b6001600160a01b0385165f908152600d60205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161094e91815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600d909152918220546109b19184906106c2565b6001600160a01b038086165f908152600d602052604080822093909355908516815220546109df9083610ee9565b6001600160a01b038085165f818152600d602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a329086815260200190565b60405180910390a35060019392505050565b6011545f9060ff16158015610a625750600954600160a01b900460ff165b8015610a7e5750600a54305f908152600d602052604090205410155b905090565b6011805460ff19166001179055305f908152600d602052604081205490505f610ac86002610ac2600454610ac260025487610f5390919063ffffffff16565b90610fd9565b90505f610ad58383610ffd565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110610b0d57610b0d61124f565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b889190611263565b81600181518110610b9b57610b9b61124f565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b81524792919091169063791ac94790610be49086905f9087903090429060040161127e565b5f604051808303815f87803b158015610bfb575f80fd5b505af1158015610c0d573d5f803e3d5ffd5b505050505f610c258247610ffd90919063ffffffff16565b90505f610c49610c4060028054610fd990919063ffffffff16565b60045490610ffd565b90505f610c6a6002610ac284610ac260025488610f5390919063ffffffff16565b90505f610c8683610ac260035487610f5390919063ffffffff16565b6007546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f8114610cda576040519150601f19603f3d011682016040523d82523d5f602084013e610cdf565b606091505b5050905080610d305760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610594565b8815610dcc5760085460075460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015610da3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dc891906112ed565b5050505b50506011805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385165f908152600d90915291822054610e329184906106c2565b6001600160a01b0384165f908152600d6020526040812091909155600554600454610e639190610ac2908690610f53565b305f908152600d6020526040902054909150610e7f9082610ee9565b305f818152600d6020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ecf9085815260200190565b60405180910390a3610ee18382610ffd565b949350505050565b5f80610ef583856111f3565b9050838110156105645760405162461bcd60e51b815260206004820152602360248201527f5374616e646172644d6174684c6962733a206164646974696f6e206f766572666044820152626c6f7760e81b6064820152608401610594565b5f825f03610f6257505f6104a7565b5f610f6d8385611206565b905082610f7a858361121d565b146105645760405162461bcd60e51b815260206004820152602960248201527f5374616e646172644d6174684c6962733a206d756c7469706c69636174696f6e604482015268206f766572666c6f7760b81b6064820152608401610594565b5f610564838360405180606001604052806022815260200161133f60229139611021565b5f6105648383604051806060016040528060268152602001611319602691396106c2565b5f81836110415760405162461bcd60e51b8152600401610594919061104d565b505f6106f1848661121d565b5f6020808352835180828501525f5b818110156110785785810183015185820160400152820161105c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110ac575f80fd5b50565b5f80604083850312156110c0575f80fd5b82356110cb81611098565b946020939093013593505050565b5f805f606084860312156110eb575f80fd5b83356110f681611098565b9250602084013561110681611098565b929592945050506040919091013590565b5f60208284031215611127575f80fd5b813561056481611098565b5f8060408385031215611143575f80fd5b50508035926020909101359150565b5f8060408385031215611163575f80fd5b823561116e81611098565b9150602083013561117e81611098565b809150509250929050565b5f60208284031215611199575f80fd5b81358015158114610564575f80fd5b5f602082840312156111b8575f80fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104a7576104a76111df565b80820281158282048414176104a7576104a76111df565b5f8261123757634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104a7576104a76111df565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611273575f80fd5b815161056481611098565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112cc5784516001600160a01b0316835293830193918301916001016112a7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156112ff575f80fd5b835192506020840151915060408401519050925092509256fe5374616e646172644d6174684c6962733a207375627472616374696f6e206f766572666c6f775374616e646172644d6174684c6962733a206469766973696f6e206279207a65726fa2646970667358221220cd38c97d5ca7894dc93350128c3a0e3405a307f5f0eeb3cd65e05f70ba0a2a9864736f6c63430008150033

Deployed Bytecode Sourcemap

4359:7207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6433:80;;;;;;;;;;-1:-1:-1;6505:5:0;;;;;;;;;;;;-1:-1:-1;;;6505:5:0;;;;6433:80;;;;;;;:::i;:::-;;;;;;;;7680:216;;;;;;;;;;-1:-1:-1;7680:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7680:216:0;1023:187:1;6169:82:0;;;;;;;;;;-1:-1:-1;6242:6:0;;6169:82;;;1361:25:1;;;1349:2;1334:18;6169:82:0;1215:177:1;8602:370:0;;;;;;;;;;-1:-1:-1;8602:370:0;;;;;:::i;:::-;;:::i;493:103::-;;;;;;;;;;-1:-1:-1;493:103:0;;;;;:::i;:::-;548:4;583:5;-1:-1:-1;;;;;572:16:0;;;583:5;;572:16;;493:103;6257:80;;;;;;;;;;-1:-1:-1;6257:80:0;;4562:1;2252:36:1;;2240:2;2225:18;6257:80:0;2110:184:1;4921:34:0;;;;;;;;;;-1:-1:-1;4921:34:0;;;;-1:-1:-1;;;4921:34:0;;;;;;6867:173;;;;;;;;;;-1:-1:-1;6867:173:0;;;;;:::i;:::-;;:::i;:::-;;6603:105;;;;;;;;;;-1:-1:-1;6603:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6687:18:0;6669:7;6687:18;;;:9;:18;;;;;;;6603:105;602:131;;;;;;;;;;;;;:::i;4844:35::-;;;;;;;;;;-1:-1:-1;4844:35:0;;;;-1:-1:-1;;;;;4844:35:0;;;;;;-1:-1:-1;;;;;2738:32:1;;;2720:51;;2708:2;2693:18;4844:35:0;2552:225:1;4757:47:0;;;;;;;;;;;;;;;;6519:78;;;;;;;;;;-1:-1:-1;6571:7:0;6589:5;-1:-1:-1;;;;;6589:5:0;6519:78;;6343:84;;;;;;;;;;-1:-1:-1;6417:7:0;;;;;;;;;;;;-1:-1:-1;;;6417:7:0;;;;6343:84;;11407:156;;;;;;;;;;-1:-1:-1;11407:156:0;;;;;:::i;:::-;;:::i;4962:42::-;;;;;;;;;;;;;;;;4811:26;;;;;;;;;;-1:-1:-1;4811:26:0;;;;-1:-1:-1;;;;;4811:26:0;;;4886;;;;;;;;;;-1:-1:-1;4886:26:0;;;;-1:-1:-1;;;;;4886:26:0;;;6714:133;;;;;;;;;;-1:-1:-1;6714:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6816:19:0;;;6798:7;6816:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6714:133;7052:96;;;;;;;;;;-1:-1:-1;7052:96:0;;;;;:::i;:::-;;:::i;8465:129::-;;;;;;;;;;-1:-1:-1;8465:129:0;;;;;:::i;:::-;;:::i;7680:216::-;7784:10;7755:4;7772:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7772:32:0;;;;;;;;;;:41;;;7829:37;7755:4;;7772:32;;7829:37;;;;7807:6;1361:25:1;;1349:2;1334:18;;1215:177;7829:37:0;;;;;;;;-1:-1:-1;7884:4:0;7680:216;;;;;:::o;8602:370::-;-1:-1:-1;;;;;8722:19:0;;8702:4;8722:19;;;:11;:19;;;;;;;;8742:10;8722:31;;;;;;;;-1:-1:-1;;8722:52:0;8719:186;;8824:69;;;;;;;;;;;-1:-1:-1;;;8824:69:0;;;;;;;;-1:-1:-1;;;;;8824:19:0;;-1:-1:-1;8824:19:0;;;:11;:19;;;;;8844:10;8824:31;;;;;;;;;;:69;;8860:6;;8824:35;:69::i;:::-;-1:-1:-1;;;;;8790:19:0;;;;;;:11;:19;;;;;;;;8810:10;8790:31;;;;;;;:103;8719:186;8924:40;8938:6;8946:9;8957:6;8924:13;:40::i;:::-;8917:47;;8602:370;;;;;;:::o;6867:173::-;548:4;583:5;-1:-1:-1;;;;;583:5:0;454:10;572:16;438:38;;;;-1:-1:-1;;;438:38:0;;;;;;;:::i;:::-;;;;;;;;;6947:6:::1;:15:::0;;;6975:7:::1;:17:::0;;;7016:16:::1;6985:7:::0;6956:6;7016:16:::1;:::i;:::-;7004:9;:28:::0;-1:-1:-1;;6867:173:0:o;602:131::-;548:4;583:5;-1:-1:-1;;;;;583:5:0;454:10;572:16;438:38;;;;-1:-1:-1;;;438:38:0;;;;;;;:::i;:::-;675:1:::1;659:18:::0;;-1:-1:-1;;;;;;659:18:0::1;::::0;;693:32:::1;::::0;2720:51:1;;;693:32:0::1;::::0;2708:2:1;2693:18;693:32:0::1;;;;;;;602:131::o:0;11407:156::-;11487:4;11511:44;11525:10;11537:9;11548:6;11511:13;:44::i;7052:96::-;548:4;583:5;-1:-1:-1;;;;;583:5:0;454:10;572:16;438:38;;;;-1:-1:-1;;;438:38:0;;;;;;;:::i;:::-;7118:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;7118:22:0::1;-1:-1:-1::0;;;;7118:22:0;;::::1;::::0;;;::::1;::::0;;7052:96::o;8465:129::-;548:4;583:5;-1:-1:-1;;;;;583:5:0;454:10;572:16;438:38;;;;-1:-1:-1;;;438:38:0;;;;;;;:::i;:::-;8582:4:::1;8564:13;8555:6;;:22;;;;:::i;:::-;8554:32;;;;:::i;:::-;8542:9;:44:::0;-1:-1:-1;8465:129:0:o;2210:190::-;2296:7;2332:12;2324:6;;;;2316:29;;;;-1:-1:-1;;;2316:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2356:9:0;2368:5;2372:1;2368;:5;:::i;:::-;2356:17;2210:190;-1:-1:-1;;;;;2210:190:0:o;8984:920::-;9096:9;;9076:4;;9096:9;;9093:69;;;9115:44;9133:6;9141:9;9152:6;9115:17;:44::i;:::-;9108:51;;;;9093:69;9199:11;;-1:-1:-1;;;;;9186:24:0;;;9199:11;;9186:24;;;;:45;;-1:-1:-1;9227:4:0;;-1:-1:-1;;;;;9214:17:0;;;9227:4;;9214:17;;9186:45;9182:201;;;-1:-1:-1;;;;;9256:27:0;;;;;;:16;:27;;;;;;;;;:73;;-1:-1:-1;9320:9:0;;-1:-1:-1;;;;;9287:20:0;;;;;;:9;:20;;;;;;:29;;9310:6;;9287:29;:::i;:::-;:42;;9256:73;9248:123;;;;-1:-1:-1;;;9248:123:0;;5172:2:1;9248:123:0;;;5154:21:1;5211:2;5191:18;;;5184:30;5250:34;5230:18;;;5223:62;-1:-1:-1;;;5301:18:1;;;5294:35;5346:19;;9248:123:0;4970:401:1;9248:123:0;9404:15;:13;:15::i;:::-;:40;;;;-1:-1:-1;;;;;;8423:26:0;;8398:4;8423:26;;;:18;:26;;;;;;;;8422:27;9423:21;9404:68;;;;-1:-1:-1;9461:11:0;;-1:-1:-1;;;;;9448:24:0;;;9461:11;;9448:24;9404:68;:90;;;;;9485:9;;9476:6;:18;9404:90;9401:137;;;9511:14;:12;:14::i;:::-;-1:-1:-1;;;;;8423:26:0;;9549:14;8423:26;;;:18;:26;;;;;;;;8422:27;9566:40;;;-1:-1:-1;9592:14:0;;-1:-1:-1;;;9592:14:0;;;;9591:15;9566:40;9549:57;;9621:9;9617:205;;;9670:52;9695:26;9706:6;9714;9695:10;:26::i;:::-;-1:-1:-1;;;;;9670:20:0;;;;;;:9;:20;;;;;;;:24;:52::i;:::-;-1:-1:-1;;;;;9647:20:0;;;;;;:9;:20;;;;;:75;9617:205;;;-1:-1:-1;;;;;9778:20:0;;;;;;:9;:20;;;;;;:32;;9803:6;9778:24;:32::i;:::-;-1:-1:-1;;;;;9755:20:0;;;;;;:9;:20;;;;;:55;9617:205;9856:9;-1:-1:-1;;;;;9839:35:0;9848:6;-1:-1:-1;;;;;9839:35:0;;9867:6;9839:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;9839:35:0;;;;;;;;-1:-1:-1;9892:4:0;;8984:920;-1:-1:-1;;;;8984:920:0:o;7335:333::-;7468:53;;;;;;;;;;;-1:-1:-1;;;7468:53:0;;;;;;;;-1:-1:-1;;;;;7468:17:0;;7431:4;7468:17;;;:9;:17;;;;;;;:53;;7490:6;;7468:21;:53::i;:::-;-1:-1:-1;;;;;7448:17:0;;;;;;;:9;:17;;;;;;:73;;;;7555:20;;;;;;;:32;;7580:6;7555:24;:32::i;:::-;-1:-1:-1;;;;;7532:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7603:35;;;;;;;;;;7631:6;1361:25:1;;1349:2;1334:18;;1215:177;7603:35:0;;;;;;;;-1:-1:-1;7656:4:0;7335:333;;;;;:::o;7156:167::-;7229:9;;7204:4;;7229:9;;7228:10;:37;;;;-1:-1:-1;7251:14:0;;-1:-1:-1;;;7251:14:0;;;;7228:37;:87;;;;-1:-1:-1;7306:9:0;;7296:4;7278:24;;;;:9;:24;;;;;;:37;;7228:87;7221:94;;7156:167;:::o;9916:1479::-;5414:9;:16;;-1:-1:-1;;5414:16:0;5426:4;5414:16;;;10018:4:::1;-1:-1:-1::0;6687:18:0;;;:9;:18;;;;;;9969:55:::1;;10035:23;10061:54;10113:1;10061:47;10098:9;;10061:32;10086:6;;10061:20;:24;;:32;;;;:::i;:::-;:36:::0;::::1;:47::i;:54::-;10035:80:::0;-1:-1:-1;10126:20:0::1;10149:41;:20:::0;10035:80;10149:24:::1;:41::i;:::-;10227:16;::::0;;10241:1:::1;10227:16:::0;;;;;::::1;::::0;;10126:64;;-1:-1:-1;10203:21:0::1;::::0;10227:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10227:16:0::1;10203:40;;10272:4;10254;10259:1;10254:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10254:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10298:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;10298:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;10254:7;;10298:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10288:4;10293:1;10288:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10288:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;:30;10389:13:::1;::::0;:195:::1;::::0;-1:-1:-1;;;10389:195:0;;10355:21:::1;::::0;10389:13;;;::::1;::::0;:64:::1;::::0;:195:::1;::::0;10468:12;;10331:21:::1;::::0;10511:4;;10538::::1;::::0;10558:15:::1;::::0;10389:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10595:17;10615:40;10641:13;10615:21;:25;;:40;;;;:::i;:::-;10595:60;;10666:19;10688:28;10702:13;10713:1;10702:6:::0;::::1;:10;;:13;;;;:::i;:::-;10688:9;::::0;;:13:::1;:28::i;:::-;10666:50;;10727:26;10756:45;10799:1;10756:38;10782:11;10756:21;10770:6;;10756:9;:13;;:21;;;;:::i;:45::-;10727:74;;10812:26;10841:39;10868:11;10841:22;10855:7;;10841:9;:13;;:22;;;;:::i;:39::-;10954:11;::::0;10946:68:::1;::::0;10812;;-1:-1:-1;10896:21:0::1;::::0;-1:-1:-1;;;;;10954:11:0;;::::1;::::0;11004:5:::1;::::0;10812:68;;10896:21;10946:68;10896:21;10946:68;10812;10954:11;11004:5;10946:68:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10895:119;;;11033:16;11025:59;;;::::0;-1:-1:-1;;;11025:59:0;;7293:2:1;11025:59:0::1;::::0;::::1;7275:21:1::0;7332:2;7312:18;;;7305:30;7371:32;7351:18;;;7344:60;7421:18;;11025:59:0::1;7091:354:1::0;11025:59:0::1;11100:19:::0;;11097:291:::1;;11135:13;::::0;11316:11:::1;::::0;11135:241:::1;::::0;-1:-1:-1;;;11135:241:0;;11218:4:::1;11135:241;::::0;::::1;7791:34:1::0;7841:18;;;7834:34;;;11135:13:0::1;7884:18:1::0;;;7877:34;;;7927:18;;;7920:34;-1:-1:-1;;;;;11316:11:0;;::::1;7970:19:1::0;;;7963:44;11346:15:0::1;8023:19:1::0;;;8016:35;11135:13:0;::::1;::::0;:29:::1;::::0;11172:18;;7725:19:1;;11135:241:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11097:291;-1:-1:-1::0;;5435:9:0;:17;;-1:-1:-1;;5435:17:0;;;-1:-1:-1;;;;;;;;9916:1479:0:o;7908:418::-;8018:53;;;;;;;;;;;-1:-1:-1;;;8018:53:0;;;;;;;;-1:-1:-1;;;;;8018:17:0;;7978:7;8018:17;;;:9;:17;;;;;;;:53;;8040:6;;8018:21;:53::i;:::-;-1:-1:-1;;;;;7998:17:0;;;;;;:9;:17;;;;;:73;;;;8128:15;;8113:9;;8102:42;;8128:15;8102:21;;:6;;:10;:21::i;:42::-;8200:4;8182:24;;;;:9;:24;;;;;;8082:62;;-1:-1:-1;8182:39:0;;8082:62;8182:28;:39::i;:::-;8173:4;8155:24;;;;:9;:24;;;;;;;:66;;;;8237:42;;-1:-1:-1;;;;;8237:42:0;;;;;;;8269:9;1361:25:1;;1349:2;1334:18;;1215:177;8237:42:0;;;;;;;;8297:21;:6;8308:9;8297:10;:21::i;:::-;8290:28;7908:418;-1:-1:-1;;;;7908:418:0:o;1867:187::-;1925:7;;1957:5;1961:1;1957;:5;:::i;:::-;1945:17;;1986:1;1981;:6;;1973:54;;;;-1:-1:-1;;;1973:54:0;;8575:2:1;1973:54:0;;;8557:21:1;8614:2;8594:18;;;8587:30;8653:34;8633:18;;;8626:62;-1:-1:-1;;;8704:18:1;;;8697:33;8747:19;;1973:54:0;8373:399:1;2406:254:0;2464:7;2488:1;2493;2488:6;2484:47;;-1:-1:-1;2518:1:0;2511:8;;2484:47;2541:9;2553:5;2557:1;2553;:5;:::i;:::-;2541:17;-1:-1:-1;2586:1:0;2577:5;2581:1;2541:17;2577:5;:::i;:::-;:10;2569:64;;;;-1:-1:-1;;;2569:64:0;;8979:2:1;2569:64:0;;;8961:21:1;9018:2;8998:18;;;8991:30;9057:34;9037:18;;;9030:62;-1:-1:-1;;;9108:18:1;;;9101:39;9157:19;;2569:64:0;8777:405:1;2666:140:0;2724:7;2751:47;2755:1;2758;2751:47;;;;;;;;;;;;;;;;;:3;:47::i;2060:144::-;2118:7;2145:51;2149:1;2152;2145:51;;;;;;;;;;;;;;;;;:3;:51::i;2812:189::-;2898:7;2933:12;2926:5;2918:28;;;;-1:-1:-1;;;2918:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2957:9:0;2969:5;2973:1;2969;:5;:::i;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;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2990:388::-;3058:6;3066;3119:2;3107:9;3098:7;3094:23;3090:32;3087:52;;;3135:1;3132;3125:12;3087:52;3174:9;3161:23;3193:31;3218:5;3193:31;:::i;:::-;3243:5;-1:-1:-1;3300:2:1;3285:18;;3272:32;3313:33;3272:32;3313:33;:::i;:::-;3365:7;3355:17;;;2990:388;;;;;:::o;3383:273::-;3439:6;3492:2;3480:9;3471:7;3467:23;3463:32;3460:52;;;3508:1;3505;3498:12;3460:52;3547:9;3534:23;3600:5;3593:13;3586:21;3579:5;3576:32;3566:60;;3622:1;3619;3612:12;3661:180;3720:6;3773:2;3761:9;3752:7;3748:23;3744:32;3741:52;;;3789:1;3786;3779:12;3741:52;-1:-1:-1;3812:23:1;;3661:180;-1:-1:-1;3661:180:1:o;3846:329::-;4048:2;4030:21;;;4087:1;4067:18;;;4060:29;-1:-1:-1;;;4120:2:1;4105:18;;4098:36;4166:2;4151:18;;3846:329::o;4180:127::-;4241:10;4236:3;4232:20;4229:1;4222:31;4272:4;4269:1;4262:15;4296:4;4293:1;4286:15;4312:125;4377:9;;;4398:10;;;4395:36;;;4411:18;;:::i;4442:168::-;4515:9;;;4546;;4563:15;;;4557:22;;4543:37;4533:71;;4584:18;;:::i;4615:217::-;4655:1;4681;4671:132;;4725:10;4720:3;4716:20;4713:1;4706:31;4760:4;4757:1;4750:15;4788:4;4785:1;4778:15;4671:132;-1:-1:-1;4817:9:1;;4615:217::o;4837:128::-;4904:9;;;4925:11;;;4922:37;;;4939:18;;:::i;5508:127::-;5569:10;5564:3;5560:20;5557:1;5550:31;5600:4;5597:1;5590:15;5624:4;5621:1;5614:15;5640:251;5710:6;5763:2;5751:9;5742:7;5738:23;5734:32;5731:52;;;5779:1;5776;5769:12;5731:52;5811:9;5805:16;5830:31;5855:5;5830:31;:::i;5896:980::-;6158:4;6206:3;6195:9;6191:19;6237:6;6226:9;6219:25;6263:2;6301:6;6296:2;6285:9;6281:18;6274:34;6344:3;6339:2;6328:9;6324:18;6317:31;6368:6;6403;6397:13;6434:6;6426;6419:22;6472:3;6461:9;6457:19;6450:26;;6511:2;6503:6;6499:15;6485:29;;6532:1;6542:195;6556:6;6553:1;6550:13;6542:195;;;6621:13;;-1:-1:-1;;;;;6617:39:1;6605:52;;6712:15;;;;6677:12;;;;6653:1;6571:9;6542:195;;;-1:-1:-1;;;;;;;6793:32:1;;;;6788:2;6773:18;;6766:60;-1:-1:-1;;;6857:3:1;6842:19;6835:35;6754:3;5896:980;-1:-1:-1;;;5896:980:1:o;8062:306::-;8150:6;8158;8166;8219:2;8207:9;8198:7;8194:23;8190:32;8187:52;;;8235:1;8232;8225:12;8187:52;8264:9;8258:16;8248:26;;8314:2;8303:9;8299:18;8293:25;8283:35;;8358:2;8347:9;8343:18;8337:25;8327:35;;8062:306;;;;;:::o

Swarm Source

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