ETH Price: $2,492.40 (-3.71%)

Token

$ᗪOᖇK IS $FINE ($ᗪOᖇKFINE)
 

Overview

Max Total Supply

1,000,000 $ᗪOᖇKFINE

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
mumbaicryptoexchange.eth
Balance
0.602285757 $ᗪOᖇKFINE

Value
$0.00
0xf6c887ffb4a0c846bb012d431b86c585a565d182
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:
DorkFine

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-08
*/

/**

Website: https://dorkisfine.com/
Telegram: https://t.me/DorkisFine
X: https://x.com/DorkisFineErc

$ᗪOᖇK is Fine: where we turn “This is Fine” moments into success stories

*/


//SPDX-License-Identifier: No License

pragma solidity ^0.8.13;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: 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, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: 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;
    }

}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DorkFine is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;

    uint256 private _refTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 public _tokensBuyFee = 15;
    uint256 public _tokensSellFee = 20;

    uint256 private _swapTokensAt;
    uint256 private _maxTokensToSwapForFees;

    address payable private _taxwallet;

    string private constant _name = unicode"$ᗪOᖇK IS $FINE";
    string private constant _symbol = unicode"$ᗪOᖇKFINE";

    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private __maxWallet = _tTotal;
    uint256 private _maximumTxAmount = _tTotal;

    event _maxWalletUpdated(uint __maxWallet);
// Uniswap V2 Router
    constructor () {
        IUniswapV2Router02 _uniswapV2Router =
            IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());


        _taxwallet = payable(0x82bCbe7BAefC7AfdDaB0411db09578c8323A30F7);

        _rOwned[_msgSender()] = _refTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxwallet] = true;

        emit Transfer(address(0xB46A615AEE5E21Aadf155ec07dfE258b8e6F8567), _msgSender(), _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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function manualswap() public {
        require(_msgSender() == _taxwallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() public {
        require(_msgSender() == _taxwallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function manualswapsend() external {
        require(_msgSender() == _taxwallet);
        manualswap();
        manualsend();
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");

        swapEnabled = true;
        cooldownEnabled = true;
        tradingOpen = true;
        __maxWallet = _tTotal * 2 / 100;
        _maximumTxAmount = _tTotal * 2 / 100;

        _swapTokensAt = _tTotal * 28 / 10000;
        _maxTokensToSwapForFees = _swapTokensAt * 39;

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function updateBuyFee(uint256 _fee) external onlyOwner {
        require(_fee <= 30);
        _tokensBuyFee = _fee;
    }

    function updateSellFee(uint256 _fee) external onlyOwner {
        require(_fee <= 99);
        _tokensSellFee = _fee;
    }

    function setSwapTokensAt(uint256 amount) external onlyOwner() {
        _swapTokensAt = amount;
    }

    function setMaxTokensToSwapForFees(uint256 amount) external onlyOwner() {
        _maxTokensToSwapForFees = amount;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
    

    function tokenfromRef(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _refTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                cooldownEnabled) {
                require(balanceOf(to) + amount <= __maxWallet);
                require(amount <= _maximumTxAmount);

                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (0 seconds);
            }

            if (to == uniswapV2Pair && cooldownEnabled) {
              require(amount <= _maximumTxAmount);
            }

            uint256 swapAmount = balanceOf(address(this));

            if(swapAmount > _maxTokensToSwapForFees) {
                swapAmount = _maxTokensToSwapForFees;
            }

            if (swapAmount >= _swapTokensAt &&
                !inSwap &&
                from != uniswapV2Pair &&
                swapEnabled) {

                inSwap = true;

                swapTokensForEth(swapAmount);

                uint256 contractETHBalance = address(this).balance;

                if(contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }

                inSwap = false;
            }
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 sendETHToFee(uint256 amount) private {
        _taxwallet.transfer(amount);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _getTokenFee(address sender, address recipient) private view returns (uint256) {
        if(!tradingOpen || inSwap) {
            return 0;
        }

        if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) {
            return 0;
        }

        if(sender == uniswapV2Pair) { // if buy
            return _tokensBuyFee;
        } else if (recipient == uniswapV2Pair) { // if sell
          return _tokensSellFee;
        }

        return 0;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tTeam) = _getValues(tAmount, _getTokenFee(sender, recipient));
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _refTotal = _refTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {
    }

    function _getValues(uint256 tAmount, uint256 tokenFee) private view returns (uint256, uint256, uint256, uint256) {

        (uint256 tTransferAmount, uint256 tTeam) = _getTValues(tAmount, tokenFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount) = _getRValues(tAmount, tTeam, currentRate);
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }

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

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

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

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

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":true,"internalType":"address","name":"previousOwner","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"__maxWallet","type":"uint256"}],"name":"_maxWalletUpdated","type":"event"},{"inputs":[],"name":"_tokensBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokensSellFee","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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTokensToSwapForFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAt","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001966038d7ea4c680006000196200037a565b62000027906000196200039d565b600755600f60098190556014600a55805462ffffff60a81b1916905566038d7ea4c6800060108190556011553480156200006057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000108573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012e9190620003c3565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a29190620003c3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002169190620003c3565b600f80546001600160a01b03929092166001600160a01b0319928316179055600d80549091167382bcbe7baefc7afddab0411db09578c8323a30f717905560075460026000620002633390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600560006200029d6200036b60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600d54909116835291208054909216179055620002fc3390565b6001600160a01b031673b46a615aee5e21aadf155ec07dfe258b8e6f85676001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200035c91815260200190565b60405180910390a350620003f5565b6000546001600160a01b031690565b6000826200039857634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003be57634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003d657600080fd5b81516001600160a01b0381168114620003ee57600080fd5b9392505050565b6117db80620004056000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063ba05e9bc1161006f578063ba05e9bc1461038c578063c3c8cd80146103a1578063c9567bf9146103b6578063dd62ed3e146103cb578063f1b758b814610411578063f46a903b1461042757600080fd5b8063715018a6146102d9578063729d8a87146102ee5780638da5cb5b1461030e57806395d89b4114610336578063a9059cbb1461036c57600080fd5b8063313ce567116100fd578063313ce56714610228578063467abe0a1461024457806353674ba6146102645780635932ead1146102845780636fc3eaec146102a457806370a08231146102b957600080fd5b806306fdde0314610145578063095ea7b31461019257806318160ddd146101c25780631d933a4a146101e657806323b872dd1461020857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152601281527124e197aa4fe196874b204953202446494e4560701b60208201525b6040516101899190611490565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046114fa565b61043d565b6040519015158152602001610189565b3480156101ce57600080fd5b5066038d7ea4c680005b604051908152602001610189565b3480156101f257600080fd5b50610206610201366004611526565b610454565b005b34801561021457600080fd5b506101b261022336600461153f565b61049a565b34801561023457600080fd5b5060405160098152602001610189565b34801561025057600080fd5b5061020661025f366004611526565b610503565b34801561027057600080fd5b5061020661027f366004611526565b610540565b34801561029057600080fd5b5061020661029f36600461158e565b61056f565b3480156102b057600080fd5b506102066105b7565b3480156102c557600080fd5b506101d86102d43660046115ab565b6105e4565b3480156102e557600080fd5b50610206610606565b3480156102fa57600080fd5b50610206610309366004611526565b61067a565b34801561031a57600080fd5b506000546040516001600160a01b039091168152602001610189565b34801561034257600080fd5b5060408051808201909152600d81526c24e197aa4fe196874b46494e4560981b602082015261017c565b34801561037857600080fd5b506101b26103873660046114fa565b6106a9565b34801561039857600080fd5b506102066106b6565b3480156103ad57600080fd5b506102066106e8565b3480156103c257600080fd5b5061020661071e565b3480156103d757600080fd5b506101d86103e63660046115c8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561041d57600080fd5b506101d8600a5481565b34801561043357600080fd5b506101d860095481565b600061044a3384846108a9565b5060015b92915050565b6000546001600160a01b031633146104875760405162461bcd60e51b815260040161047e90611601565b60405180910390fd5b606381111561049557600080fd5b600a55565b60006104a78484846109cd565b6104f984336104f48560405180606001604052806028815260200161177e602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d8d565b6108a9565b5060019392505050565b6000546001600160a01b0316331461052d5760405162461bcd60e51b815260040161047e90611601565b601e81111561053b57600080fd5b600955565b6000546001600160a01b0316331461056a5760405162461bcd60e51b815260040161047e90611601565b600b55565b6000546001600160a01b031633146105995760405162461bcd60e51b815260040161047e90611601565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146105d757600080fd5b476105e181610dc7565b50565b6001600160a01b03811660009081526002602052604081205461044e90610e05565b6000546001600160a01b031633146106305760405162461bcd60e51b815260040161047e90611601565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106a45760405162461bcd60e51b815260040161047e90611601565b600c55565b600061044a3384846109cd565b600d546001600160a01b0316336001600160a01b0316146106d657600080fd5b6106de6106e8565b6106e66105b7565b565b600d546001600160a01b0316336001600160a01b03161461070857600080fd5b6000610713306105e4565b90506105e181610e89565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161047e90611601565b600f54600160a01b900460ff16156107a25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047e565b600f805463ffff00ff60a01b1916630101000160a01b17905560646107cf66038d7ea4c68000600261164c565b6107d9919061166b565b60105560646107f066038d7ea4c68000600261164c565b6107fa919061166b565b60115561271061081266038d7ea4c68000601c61164c565b61081c919061166b565b600b81905561082c90602761164c565b600c55600f54600e5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061168d565b6001600160a01b03831661090b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047e565b6001600160a01b03821661096c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047e565b6001600160a01b038216610a935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047e565b60008111610af55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047e565b600f54600160a01b900460ff1680610b2557506001600160a01b03831660009081526005602052604090205460ff165b80610b4857506001600160a01b03821660009081526005602052604090205460ff165b610b945760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604482015260640161047e565b6001600160a01b03831660009081526005602052604090205460ff16158015610bd657506001600160a01b03821660009081526005602052604090205460ff16155b15610d7d57600f546001600160a01b038481169116148015610c065750600e546001600160a01b03838116911614155b8015610c1b5750600f54600160b81b900460ff165b15610c9a5760105481610c2d846105e4565b610c3791906116aa565b1115610c4257600080fd5b601154811115610c5157600080fd5b6001600160a01b0382166000908152600660205260409020544211610c7557600080fd5b610c804260006116aa565b6001600160a01b0383166000908152600660205260409020555b600f546001600160a01b038381169116148015610cc05750600f54600160b81b900460ff165b15610cd457601154811115610cd457600080fd5b6000610cdf306105e4565b9050600c54811115610cf05750600c545b600b548110158015610d0c5750600f54600160a81b900460ff16155b8015610d265750600f546001600160a01b03858116911614155b8015610d3b5750600f54600160b01b900460ff165b15610d7b57600f805460ff60a81b1916600160a81b179055610d5c81610e89565b478015610d6c57610d6c81610dc7565b50600f805460ff60a81b191690555b505b610d88838383610fe3565b505050565b60008184841115610db15760405162461bcd60e51b815260040161047e9190611490565b506000610dbe84866116c2565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e01573d6000803e3d6000fd5b5050565b6000600754821115610e6c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161047e565b6000610e76610fee565b9050610e828382611011565b9392505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ebe57610ebe6116d9565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3b91906116ef565b81600181518110610f4e57610f4e6116d9565b6001600160a01b039283166020918202929092010152600e54610f7491309116846108a9565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fad90859060009086903090429060040161170c565b600060405180830381600087803b158015610fc757600080fd5b505af1158015610fdb573d6000803e3d6000fd5b505050505050565b610d88838383611053565b6000806000610ffb611140565b909250905061100a8282611011565b9250505090565b6000610e8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061117e565b60008060008061106c8561106789896111ac565b611271565b6001600160a01b038b166000908152600260205260409020549397509195509350915061109990856112b7565b6001600160a01b0380891660009081526002602052604080822093909355908816815220546110c890846112f9565b6001600160a01b0387166000908152600260205260409020556110ea81611358565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112f91815260200190565b60405180910390a350505050505050565b600754600090819066038d7ea4c6800061115a8282611011565b8210156111755750506007549266038d7ea4c6800092509050565b90939092509050565b6000818361119f5760405162461bcd60e51b815260040161047e9190611490565b506000610dbe848661166b565b600f54600090600160a01b900460ff1615806111d15750600f54600160a81b900460ff165b156111de5750600061044e565b6001600160a01b03831660009081526005602052604090205460ff168061121d57506001600160a01b03821660009081526005602052604090205460ff165b1561122a5750600061044e565b600f546001600160a01b0390811690841603611249575060095461044e565b600f546001600160a01b03908116908316036112685750600a5461044e565b50600092915050565b60008060008060008061128488886113a2565b915091506000611292610fee565b90506000806112a28b85856113d5565b909c909b509499509297509295505050505050565b6000610e8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d8d565b60008061130683856116aa565b905083811015610e825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047e565b6000611362610fee565b90506000611370838361140e565b3060009081526002602052604090205490915061138d90826112f9565b30600090815260026020526040902055505050565b600080806113bb60646113b5878761140e565b90611011565b905060006113c986836112b7565b96919550909350505050565b600080806113e3868561140e565b905060006113f1868661140e565b905060006113ff83836112b7565b92989297509195505050505050565b6000826000036114205750600061044e565b600061142c838561164c565b905082611439858361166b565b14610e825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047e565b600060208083528351808285015260005b818110156114bd578581018301518582016040015282016114a1565b818111156114cf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146105e157600080fd5b6000806040838503121561150d57600080fd5b8235611518816114e5565b946020939093013593505050565b60006020828403121561153857600080fd5b5035919050565b60008060006060848603121561155457600080fd5b833561155f816114e5565b9250602084013561156f816114e5565b929592945050506040919091013590565b80151581146105e157600080fd5b6000602082840312156115a057600080fd5b8135610e8281611580565b6000602082840312156115bd57600080fd5b8135610e82816114e5565b600080604083850312156115db57600080fd5b82356115e6816114e5565b915060208301356115f6816114e5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561166657611666611636565b500290565b60008261168857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561169f57600080fd5b8151610e8281611580565b600082198211156116bd576116bd611636565b500190565b6000828210156116d4576116d4611636565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561170157600080fd5b8151610e82816114e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175c5784516001600160a01b031683529383019391830191600101611737565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031e39ca2f46fd6c7cdd44dddff9073603afef848c0c6950014cf98650f60eaa464736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063ba05e9bc1161006f578063ba05e9bc1461038c578063c3c8cd80146103a1578063c9567bf9146103b6578063dd62ed3e146103cb578063f1b758b814610411578063f46a903b1461042757600080fd5b8063715018a6146102d9578063729d8a87146102ee5780638da5cb5b1461030e57806395d89b4114610336578063a9059cbb1461036c57600080fd5b8063313ce567116100fd578063313ce56714610228578063467abe0a1461024457806353674ba6146102645780635932ead1146102845780636fc3eaec146102a457806370a08231146102b957600080fd5b806306fdde0314610145578063095ea7b31461019257806318160ddd146101c25780631d933a4a146101e657806323b872dd1461020857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152601281527124e197aa4fe196874b204953202446494e4560701b60208201525b6040516101899190611490565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046114fa565b61043d565b6040519015158152602001610189565b3480156101ce57600080fd5b5066038d7ea4c680005b604051908152602001610189565b3480156101f257600080fd5b50610206610201366004611526565b610454565b005b34801561021457600080fd5b506101b261022336600461153f565b61049a565b34801561023457600080fd5b5060405160098152602001610189565b34801561025057600080fd5b5061020661025f366004611526565b610503565b34801561027057600080fd5b5061020661027f366004611526565b610540565b34801561029057600080fd5b5061020661029f36600461158e565b61056f565b3480156102b057600080fd5b506102066105b7565b3480156102c557600080fd5b506101d86102d43660046115ab565b6105e4565b3480156102e557600080fd5b50610206610606565b3480156102fa57600080fd5b50610206610309366004611526565b61067a565b34801561031a57600080fd5b506000546040516001600160a01b039091168152602001610189565b34801561034257600080fd5b5060408051808201909152600d81526c24e197aa4fe196874b46494e4560981b602082015261017c565b34801561037857600080fd5b506101b26103873660046114fa565b6106a9565b34801561039857600080fd5b506102066106b6565b3480156103ad57600080fd5b506102066106e8565b3480156103c257600080fd5b5061020661071e565b3480156103d757600080fd5b506101d86103e63660046115c8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561041d57600080fd5b506101d8600a5481565b34801561043357600080fd5b506101d860095481565b600061044a3384846108a9565b5060015b92915050565b6000546001600160a01b031633146104875760405162461bcd60e51b815260040161047e90611601565b60405180910390fd5b606381111561049557600080fd5b600a55565b60006104a78484846109cd565b6104f984336104f48560405180606001604052806028815260200161177e602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d8d565b6108a9565b5060019392505050565b6000546001600160a01b0316331461052d5760405162461bcd60e51b815260040161047e90611601565b601e81111561053b57600080fd5b600955565b6000546001600160a01b0316331461056a5760405162461bcd60e51b815260040161047e90611601565b600b55565b6000546001600160a01b031633146105995760405162461bcd60e51b815260040161047e90611601565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146105d757600080fd5b476105e181610dc7565b50565b6001600160a01b03811660009081526002602052604081205461044e90610e05565b6000546001600160a01b031633146106305760405162461bcd60e51b815260040161047e90611601565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106a45760405162461bcd60e51b815260040161047e90611601565b600c55565b600061044a3384846109cd565b600d546001600160a01b0316336001600160a01b0316146106d657600080fd5b6106de6106e8565b6106e66105b7565b565b600d546001600160a01b0316336001600160a01b03161461070857600080fd5b6000610713306105e4565b90506105e181610e89565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161047e90611601565b600f54600160a01b900460ff16156107a25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047e565b600f805463ffff00ff60a01b1916630101000160a01b17905560646107cf66038d7ea4c68000600261164c565b6107d9919061166b565b60105560646107f066038d7ea4c68000600261164c565b6107fa919061166b565b60115561271061081266038d7ea4c68000601c61164c565b61081c919061166b565b600b81905561082c90602761164c565b600c55600f54600e5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061168d565b6001600160a01b03831661090b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047e565b6001600160a01b03821661096c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047e565b6001600160a01b038216610a935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047e565b60008111610af55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047e565b600f54600160a01b900460ff1680610b2557506001600160a01b03831660009081526005602052604090205460ff165b80610b4857506001600160a01b03821660009081526005602052604090205460ff165b610b945760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604482015260640161047e565b6001600160a01b03831660009081526005602052604090205460ff16158015610bd657506001600160a01b03821660009081526005602052604090205460ff16155b15610d7d57600f546001600160a01b038481169116148015610c065750600e546001600160a01b03838116911614155b8015610c1b5750600f54600160b81b900460ff165b15610c9a5760105481610c2d846105e4565b610c3791906116aa565b1115610c4257600080fd5b601154811115610c5157600080fd5b6001600160a01b0382166000908152600660205260409020544211610c7557600080fd5b610c804260006116aa565b6001600160a01b0383166000908152600660205260409020555b600f546001600160a01b038381169116148015610cc05750600f54600160b81b900460ff165b15610cd457601154811115610cd457600080fd5b6000610cdf306105e4565b9050600c54811115610cf05750600c545b600b548110158015610d0c5750600f54600160a81b900460ff16155b8015610d265750600f546001600160a01b03858116911614155b8015610d3b5750600f54600160b01b900460ff165b15610d7b57600f805460ff60a81b1916600160a81b179055610d5c81610e89565b478015610d6c57610d6c81610dc7565b50600f805460ff60a81b191690555b505b610d88838383610fe3565b505050565b60008184841115610db15760405162461bcd60e51b815260040161047e9190611490565b506000610dbe84866116c2565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e01573d6000803e3d6000fd5b5050565b6000600754821115610e6c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161047e565b6000610e76610fee565b9050610e828382611011565b9392505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ebe57610ebe6116d9565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3b91906116ef565b81600181518110610f4e57610f4e6116d9565b6001600160a01b039283166020918202929092010152600e54610f7491309116846108a9565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fad90859060009086903090429060040161170c565b600060405180830381600087803b158015610fc757600080fd5b505af1158015610fdb573d6000803e3d6000fd5b505050505050565b610d88838383611053565b6000806000610ffb611140565b909250905061100a8282611011565b9250505090565b6000610e8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061117e565b60008060008061106c8561106789896111ac565b611271565b6001600160a01b038b166000908152600260205260409020549397509195509350915061109990856112b7565b6001600160a01b0380891660009081526002602052604080822093909355908816815220546110c890846112f9565b6001600160a01b0387166000908152600260205260409020556110ea81611358565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112f91815260200190565b60405180910390a350505050505050565b600754600090819066038d7ea4c6800061115a8282611011565b8210156111755750506007549266038d7ea4c6800092509050565b90939092509050565b6000818361119f5760405162461bcd60e51b815260040161047e9190611490565b506000610dbe848661166b565b600f54600090600160a01b900460ff1615806111d15750600f54600160a81b900460ff165b156111de5750600061044e565b6001600160a01b03831660009081526005602052604090205460ff168061121d57506001600160a01b03821660009081526005602052604090205460ff165b1561122a5750600061044e565b600f546001600160a01b0390811690841603611249575060095461044e565b600f546001600160a01b03908116908316036112685750600a5461044e565b50600092915050565b60008060008060008061128488886113a2565b915091506000611292610fee565b90506000806112a28b85856113d5565b909c909b509499509297509295505050505050565b6000610e8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d8d565b60008061130683856116aa565b905083811015610e825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047e565b6000611362610fee565b90506000611370838361140e565b3060009081526002602052604090205490915061138d90826112f9565b30600090815260026020526040902055505050565b600080806113bb60646113b5878761140e565b90611011565b905060006113c986836112b7565b96919550909350505050565b600080806113e3868561140e565b905060006113f1868661140e565b905060006113ff83836112b7565b92989297509195505050505050565b6000826000036114205750600061044e565b600061142c838561164c565b905082611439858361166b565b14610e825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047e565b600060208083528351808285015260005b818110156114bd578581018301518582016040015282016114a1565b818111156114cf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146105e157600080fd5b6000806040838503121561150d57600080fd5b8235611518816114e5565b946020939093013593505050565b60006020828403121561153857600080fd5b5035919050565b60008060006060848603121561155457600080fd5b833561155f816114e5565b9250602084013561156f816114e5565b929592945050506040919091013590565b80151581146105e157600080fd5b6000602082840312156115a057600080fd5b8135610e8281611580565b6000602082840312156115bd57600080fd5b8135610e82816114e5565b600080604083850312156115db57600080fd5b82356115e6816114e5565b915060208301356115f6816114e5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561166657611666611636565b500290565b60008261168857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561169f57600080fd5b8151610e8281611580565b600082198211156116bd576116bd611636565b500190565b6000828210156116d4576116d4611636565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561170157600080fd5b8151610e82816114e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175c5784516001600160a01b031683529383019391830191600101611737565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031e39ca2f46fd6c7cdd44dddff9073603afef848c0c6950014cf98650f60eaa464736f6c634300080d0033

Deployed Bytecode Sourcemap

3717:10969:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5778:83;;;;;;;;;;-1:-1:-1;5848:5:0;;;;;;;;;;;;-1:-1:-1;;;5848:5:0;;;;5778:83;;;;;;;:::i;:::-;;;;;;;;6623:161;;;;;;;;;;-1:-1:-1;6623:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6623:161:0;1072:187:1;6055:95:0;;;;;;;;;;-1:-1:-1;4173:15:0;6055:95;;;1410:25:1;;;1398:2;1383:18;6055:95:0;1264:177:1;8268:126:0;;;;;;;;;;-1:-1:-1;8268:126:0;;;;;:::i;:::-;;:::i;:::-;;6792:313;;;;;;;;;;-1:-1:-1;6792:313:0;;;;;:::i;:::-;;:::i;5964:83::-;;;;;;;;;;-1:-1:-1;5964:83:0;;4666:1;2234:36:1;;2222:2;2207:18;5964:83:0;2092:184:1;8136:124:0;;;;;;;;;;-1:-1:-1;8136:124:0;;;;;:::i;:::-;;:::i;8402:103::-;;;;;;;;;;-1:-1:-1;8402:103:0;;;;;:::i;:::-;;:::i;8644:::-;;;;;;;;;;-1:-1:-1;8644:103:0;;;;;:::i;:::-;;:::i;7309:187::-;;;;;;;;;;;;;:::i;6158:131::-;;;;;;;;;;-1:-1:-1;6158:131:0;;;;;:::i;:::-;;:::i;2798:148::-;;;;;;;;;;;;;:::i;8513:123::-;;;;;;;;;;-1:-1:-1;8513:123:0;;;;;:::i;:::-;;:::i;2584:79::-;;;;;;;;;;-1:-1:-1;2622:7:0;2649:6;2584:79;;-1:-1:-1;;;;;2649:6:0;;;3048:51:1;;3036:2;3021:18;2584:79:0;2902:203:1;5869:87:0;;;;;;;;;;-1:-1:-1;5941:7:0;;;;;;;;;;;;-1:-1:-1;;;5941:7:0;;;;5869:87;;6297:167;;;;;;;;;;-1:-1:-1;6297:167:0;;;;;:::i;:::-;;:::i;7504:135::-;;;;;;;;;;;;;:::i;7113:188::-;;;;;;;;;;;;;:::i;7647:481::-;;;;;;;;;;;;;:::i;6472:143::-;;;;;;;;;;-1:-1:-1;6472:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6580:18:0;;;6553:7;6580:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6472:143;4330:34;;;;;;;;;;;;;;;;4290:33;;;;;;;;;;;;;;;;6623:161;6698:4;6715:39;384:10;6738:7;6747:6;6715:8;:39::i;:::-;-1:-1:-1;6772:4:0;6623:161;;;;;:::o;8268:126::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;;;;;;;;;8351:2:::1;8343:4;:10;;8335:19;;;::::0;::::1;;8365:14;:21:::0;8268:126::o;6792:313::-;6890:4;6907:36;6917:6;6925:9;6936:6;6907:9;:36::i;:::-;6954:121;6963:6;384:10;6985:89;7023:6;6985:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6985:19:0;;;;;;:11;:19;;;;;;;;384:10;6985:33;;;;;;;;;;:37;:89::i;:::-;6954:8;:121::i;:::-;-1:-1:-1;7093:4:0;6792:313;;;;;:::o;8136:124::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;8218:2:::1;8210:4;:10;;8202:19;;;::::0;::::1;;8232:13;:20:::0;8136:124::o;8402:103::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;8475:13:::1;:22:::0;8402:103::o;8644:::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;8716:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;8716:23:0::1;-1:-1:-1::0;;;;8716:23:0;;::::1;::::0;;;::::1;::::0;;8644:103::o;7309:187::-;7373:10;;-1:-1:-1;;;;;7373:10:0;384;-1:-1:-1;;;;;7357:26:0;;7349:35;;;;;;7424:21;7456:32;7424:21;7456:12;:32::i;:::-;7338:158;7309:187::o;6158:131::-;-1:-1:-1;;;;;6264:16:0;;6224:7;6264:16;;;:7;:16;;;;;;6251:30;;:12;:30::i;2798:148::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;2905:1:::1;2889:6:::0;;2868:40:::1;::::0;-1:-1:-1;;;;;2889:6:0;;::::1;::::0;2868:40:::1;::::0;2905:1;;2868:40:::1;2936:1;2919:19:::0;;-1:-1:-1;;;;;;2919:19:0::1;::::0;;2798:148::o;8513:123::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;8596:23:::1;:32:::0;8513:123::o;6297:167::-;6375:4;6392:42;384:10;6416:9;6427:6;6392:9;:42::i;7504:135::-;7574:10;;-1:-1:-1;;;;;7574:10:0;384;-1:-1:-1;;;;;7558:26:0;;7550:35;;;;;;7596:12;:10;:12::i;:::-;7619;:10;:12::i;:::-;7504:135::o;7113:188::-;7177:10;;-1:-1:-1;;;;;7177:10:0;384;-1:-1:-1;;;;;7161:26:0;;7153:35;;;;;;7199:23;7225:24;7243:4;7225:9;:24::i;:::-;7199:50;;7260:33;7277:15;7260:16;:33::i;7647:481::-;2711:6;;-1:-1:-1;;;;;2711:6:0;384:10;2711:22;2703:67;;;;-1:-1:-1;;;2703:67:0;;;;;;;:::i;:::-;7711:11:::1;::::0;-1:-1:-1;;;7711:11:0;::::1;;;7710:12;7702:48;;;::::0;-1:-1:-1;;;7702:48:0;;4066:2:1;7702:48:0::1;::::0;::::1;4048:21:1::0;4105:2;4085:18;;;4078:30;4144:25;4124:18;;;4117:53;4187:18;;7702:48:0::1;3864:347:1::0;7702:48:0::1;7763:11;:18:::0;;-1:-1:-1;;;;7825:18:0;-1:-1:-1;;;7825:18:0;;;7882:3:::1;7868:11;4173:15;7878:1;7868:11;:::i;:::-;:17;;;;:::i;:::-;7854:11;:31:::0;7929:3:::1;7915:11;4173:15;7925:1;7915:11;:::i;:::-;:17;;;;:::i;:::-;7896:16;:36:::0;7976:5:::1;7961:12;4173:15;7971:2;7961:12;:::i;:::-;:20;;;;:::i;:::-;7945:13;:36:::0;;;8018:18:::1;::::0;8034:2:::1;8018:18;:::i;:::-;7992:23;:44:::0;8056:13:::1;::::0;8087:15:::1;::::0;8049:71:::1;::::0;-1:-1:-1;;;8049:71:0;;-1:-1:-1;;;;;8087:15:0;;::::1;8049:71;::::0;::::1;4917:51:1::0;-1:-1:-1;;4984:18:1;;;4977:34;8056:13:0;::::1;::::0;8049:29:::1;::::0;4890:18:1;;8049:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9018:335::-:0;-1:-1:-1;;;;;9111:19:0;;9103:68;;;;-1:-1:-1;;;9103:68:0;;5474:2:1;9103:68:0;;;5456:21:1;5513:2;5493:18;;;5486:30;5552:34;5532:18;;;5525:62;-1:-1:-1;;;5603:18:1;;;5596:34;5647:19;;9103:68:0;5272:400:1;9103:68:0;-1:-1:-1;;;;;9190:21:0;;9182:68;;;;-1:-1:-1;;;9182:68:0;;5879:2:1;9182:68:0;;;5861:21:1;5918:2;5898:18;;;5891:30;5957:34;5937:18;;;5930:62;-1:-1:-1;;;6008:18:1;;;6001:32;6050:19;;9182:68:0;5677:398:1;9182:68:0;-1:-1:-1;;;;;9261:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9313:32;;1410:25:1;;;9313:32:0;;1383:18:1;9313:32:0;;;;;;;9018:335;;;:::o;9361:1743::-;-1:-1:-1;;;;;9449:18:0;;9441:68;;;;-1:-1:-1;;;9441:68:0;;6282:2:1;9441:68:0;;;6264:21:1;6321:2;6301:18;;;6294:30;6360:34;6340:18;;;6333:62;-1:-1:-1;;;6411:18:1;;;6404:35;6456:19;;9441:68:0;6080:401:1;9441:68:0;-1:-1:-1;;;;;9528:16:0;;9520:64;;;;-1:-1:-1;;;9520:64:0;;6688:2:1;9520:64:0;;;6670:21:1;6727:2;6707:18;;;6700:30;6766:34;6746:18;;;6739:62;-1:-1:-1;;;6817:18:1;;;6810:33;6860:19;;9520:64:0;6486:399:1;9520:64:0;9612:1;9603:6;:10;9595:64;;;;-1:-1:-1;;;9595:64:0;;7092:2:1;9595:64:0;;;7074:21:1;7131:2;7111:18;;;7104:30;7170:34;7150:18;;;7143:62;-1:-1:-1;;;7221:18:1;;;7214:39;7270:19;;9595:64:0;6890:405:1;9595:64:0;9678:11;;-1:-1:-1;;;9678:11:0;;;;;:39;;-1:-1:-1;;;;;;9693:24:0;;;;;;:18;:24;;;;;;;;9678:39;:65;;;-1:-1:-1;;;;;;9721:22:0;;;;;;:18;:22;;;;;;;;9678:65;9670:101;;;;-1:-1:-1;;;9670:101:0;;7502:2:1;9670:101:0;;;7484:21:1;7541:2;7521:18;;;7514:30;7580:25;7560:18;;;7553:53;7623:18;;9670:101:0;7300:347:1;9670:101:0;-1:-1:-1;;;;;9789:24:0;;;;;;:18;:24;;;;;;;;9788:25;:52;;;;-1:-1:-1;;;;;;9818:22:0;;;;;;:18;:22;;;;;;;;9817:23;9788:52;9784:1270;;;9887:13;;-1:-1:-1;;;;;9879:21:0;;;9887:13;;9879:21;:72;;;;-1:-1:-1;9935:15:0;;-1:-1:-1;;;;;9921:30:0;;;9935:15;;9921:30;;9879:72;:108;;;;-1:-1:-1;9972:15:0;;-1:-1:-1;;;9972:15:0;;;;9879:108;9857:390;;;10042:11;;10032:6;10016:13;10026:2;10016:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;10008:46;;;;;;10091:16;;10081:6;:26;;10073:35;;;;;;-1:-1:-1;;;;;10137:12:0;;;;;;:8;:12;;;;;;10152:15;-1:-1:-1;10129:39:0;;;;;;10202:29;:15;10221:9;10202:29;:::i;:::-;-1:-1:-1;;;;;10187:12:0;;;;;;:8;:12;;;;;:44;9857:390;10273:13;;-1:-1:-1;;;;;10267:19:0;;;10273:13;;10267:19;:38;;;;-1:-1:-1;10290:15:0;;-1:-1:-1;;;10290:15:0;;;;10267:38;10263:112;;;10342:16;;10332:6;:26;;10324:35;;;;;;10391:18;10412:24;10430:4;10412:9;:24::i;:::-;10391:45;;10469:23;;10456:10;:36;10453:112;;;-1:-1:-1;10526:23:0;;10453:112;10599:13;;10585:10;:27;;:55;;;;-1:-1:-1;10634:6:0;;-1:-1:-1;;;10634:6:0;;;;10633:7;10585:55;:97;;;;-1:-1:-1;10669:13:0;;-1:-1:-1;;;;;10661:21:0;;;10669:13;;10661:21;;10585:97;:129;;;;-1:-1:-1;10703:11:0;;-1:-1:-1;;;10703:11:0;;;;10585:129;10581:462;;;10737:6;:13;;-1:-1:-1;;;;10737:13:0;-1:-1:-1;;;10737:13:0;;;10771:28;10788:10;10771:16;:28::i;:::-;10849:21;10894:22;;10891:102;;10941:32;10954:18;10941:12;:32::i;:::-;-1:-1:-1;11013:6:0;:14;;-1:-1:-1;;;;11013:14:0;;;10581:462;9842:1212;9784:1270;11066:30;11081:4;11086:2;11089:6;11066:14;:30::i;:::-;9361:1743;;;:::o;1441:190::-;1527:7;1563:12;1555:6;;;;1547:29;;;;-1:-1:-1;;;1547:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1587:9:0;1599:5;1603:1;1599;:5;:::i;:::-;1587:17;1441:190;-1:-1:-1;;;;;1441:190:0:o;11593:92::-;11650:10;;:27;;-1:-1:-1;;;;;11650:10:0;;;;:27;;;;;11670:6;;11650:10;:27;:10;:27;11670:6;11650:10;:27;;;;;;;;;;;;;;;;;;;;;11593:92;:::o;8761:249::-;8821:7;8860:9;;8849:7;:20;;8841:75;;;;-1:-1:-1;;;8841:75:0;;8117:2:1;8841:75:0;;;8099:21:1;8156:2;8136:18;;;8129:30;8195:34;8175:18;;;8168:62;-1:-1:-1;;;8246:18:1;;;8239:40;8296:19;;8841:75:0;7915:406:1;8841:75:0;8927:19;8950:10;:8;:10::i;:::-;8927:33;-1:-1:-1;8978:24:0;:7;8927:33;8978:11;:24::i;:::-;8971:31;8761:249;-1:-1:-1;;;8761:249:0:o;11112:473::-;11202:16;;;11216:1;11202:16;;;;;;;;11178:21;;11202:16;;;;;;;;;;-1:-1:-1;11202:16:0;11178:40;;11247:4;11229;11234:1;11229:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11229:23:0;;;:7;;;;;;;;;;:23;;;;11273:15;;:22;;;-1:-1:-1;;;11273:22:0;;;;:15;;;;;:20;;:22;;;;;11229:7;;11273:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11263:4;11268:1;11263:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11263:32:0;;;:7;;;;;;;;;:32;11338:15;;11306:62;;11323:4;;11338:15;11356:11;11306:8;:62::i;:::-;11381:15;;:196;;-1:-1:-1;;;11381:196:0;;-1:-1:-1;;;;;11381:15:0;;;;:66;;:196;;11462:11;;11381:15;;11504:4;;11531;;11551:15;;11381:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11167:418;11112:473;:::o;11693:146::-;11787:44;11805:6;11813:9;11824:6;11787:17;:44::i;14250:163::-;14291:7;14312:15;14329;14348:19;:17;:19::i;:::-;14311:56;;-1:-1:-1;14311:56:0;-1:-1:-1;14385:20:0;14311:56;;14385:11;:20::i;:::-;14378:27;;;;14250:163;:::o;1893:132::-;1951:7;1978:39;1982:1;1985;1978:39;;;;;;;;;;;;;;;;;:3;:39::i;12347:458::-;12446:15;12463:23;12488;12513:13;12530:52;12541:7;12550:31;12563:6;12571:9;12550:12;:31::i;:::-;12530:10;:52::i;:::-;-1:-1:-1;;;;;12611:15:0;;;;;;:7;:15;;;;;;12445:137;;-1:-1:-1;12445:137:0;;-1:-1:-1;12445:137:0;-1:-1:-1;12445:137:0;-1:-1:-1;12611:28:0;;12445:137;12611:19;:28::i;:::-;-1:-1:-1;;;;;12593:15:0;;;;;;;:7;:15;;;;;;:46;;;;12671:18;;;;;;;:39;;12694:15;12671:22;:39::i;:::-;-1:-1:-1;;;;;12650:18:0;;;;;;:7;:18;;;;;:60;12721:16;12731:5;12721:9;:16::i;:::-;12770:9;-1:-1:-1;;;;;12753:44:0;12762:6;-1:-1:-1;;;;;12753:44:0;;12781:15;12753:44;;;;1410:25:1;;1398:2;1383:18;;1264:177;12753:44:0;;;;;;;;12434:371;;;;12347:458;;;:::o;14421:262::-;14518:9;;14471:7;;;;4173:15;14588:22;14518:9;4173:15;14588:13;:22::i;:::-;14578:7;:32;14574:65;;;-1:-1:-1;;14620:9:0;;;4173:15;;-1:-1:-1;14421:262:0;-1:-1:-1;14421:262:0:o;14574:65::-;14658:7;;14667;;-1:-1:-1;14421:262:0;-1:-1:-1;14421:262:0:o;2033:189::-;2119:7;2154:12;2147:5;2139:28;;;;-1:-1:-1;;;2139:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2178:9:0;2190:5;2194:1;2190;:5;:::i;11847:492::-;11950:11;;11926:7;;-1:-1:-1;;;11950:11:0;;;;11949:12;;:22;;-1:-1:-1;11965:6:0;;-1:-1:-1;;;11965:6:0;;;;11949:22;11946:62;;;-1:-1:-1;11995:1:0;11988:8;;11946:62;-1:-1:-1;;;;;12023:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;12053:29:0;;;;;;:18;:29;;;;;;;;12023:59;12020:99;;;-1:-1:-1;12106:1:0;12099:8;;12020:99;12144:13;;-1:-1:-1;;;;;12144:13:0;;;12134:23;;;;12131:180;;-1:-1:-1;12191:13:0;;12184:20;;12131:180;12239:13;;-1:-1:-1;;;;;12239:13:0;;;12226:26;;;;12222:89;;-1:-1:-1;12285:14:0;;12278:21;;12222:89;-1:-1:-1;12330:1:0;11847:492;;;;:::o;13235:415::-;13312:7;13321;13330;13339;13362:23;13387:13;13404:30;13416:7;13425:8;13404:11;:30::i;:::-;13361:73;;;;13445:19;13468:10;:8;:10::i;:::-;13445:33;;13490:15;13507:23;13534:40;13546:7;13555:5;13562:11;13534;:40::i;:::-;13489:85;;;;-1:-1:-1;13619:15:0;;-1:-1:-1;13636:5:0;;-1:-1:-1;13235:415:0;;-1:-1:-1;;;;;;13235:415:0:o;1297:136::-;1355:7;1382:43;1386:1;1389;1382:43;;;;;;;;;;;;;;;;;:3;:43::i;1110:179::-;1168:7;;1200:5;1204:1;1200;:5;:::i;:::-;1188:17;;1229:1;1224;:6;;1216:46;;;;-1:-1:-1;;;1216:46:0;;10033:2:1;1216:46:0;;;10015:21:1;10072:2;10052:18;;;10045:30;10111:29;10091:18;;;10084:57;10158:18;;1216:46:0;9831:351:1;12813:212:0;12866:19;12889:10;:8;:10::i;:::-;12866:33;-1:-1:-1;12910:13:0;12926:22;:5;12866:33;12926:9;:22::i;:::-;13000:4;12984:22;;;;:7;:22;;;;;;12910:38;;-1:-1:-1;12984:33:0;;12910:38;12984:26;:33::i;:::-;12975:4;12959:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12813:212:0:o;13658:256::-;13735:7;;;13780:29;13805:3;13780:20;:7;13792;13780:11;:20::i;:::-;:24;;:29::i;:::-;13764:45;-1:-1:-1;13820:23:0;13846:18;:7;13764:45;13846:11;:18::i;:::-;13820:44;13900:5;;-1:-1:-1;13658:256:0;;-1:-1:-1;;;;13658:256:0:o;13922:323::-;14018:7;;;14065:24;:7;14077:11;14065;:24::i;:::-;14047:42;-1:-1:-1;14100:13:0;14116:22;:5;14126:11;14116:9;:22::i;:::-;14100:38;-1:-1:-1;14149:23:0;14175:18;:7;14100:38;14175:11;:18::i;:::-;14212:7;;;;-1:-1:-1;13922:323:0;;-1:-1:-1;;;;;;13922:323:0:o;1639:246::-;1697:7;1721:1;1726;1721:6;1717:47;;-1:-1:-1;1751:1:0;1744:8;;1717:47;1774:9;1786:5;1790:1;1786;:5;:::i;:::-;1774:17;-1:-1:-1;1819:1:0;1810:5;1814:1;1774:17;1810:5;:::i;:::-;:10;1802:56;;;;-1:-1:-1;;;1802:56:0;;10389:2:1;1802:56:0;;;10371:21:1;10428:2;10408:18;;;10401:30;10467:34;10447:18;;;10440:62;-1:-1:-1;;;10518:18:1;;;10511:31;10559:19;;1802:56:0;10187:397:1;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:180::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;-1:-1:-1;1597:23:1;;1446:180;-1:-1:-1;1446:180: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;2281:118::-;2367:5;2360:13;2353:21;2346:5;2343:32;2333:60;;2389:1;2386;2379:12;2404:241;2460:6;2513:2;2501:9;2492:7;2488:23;2484:32;2481:52;;;2529:1;2526;2519:12;2481:52;2568:9;2555:23;2587:28;2609:5;2587:28;:::i;2650:247::-;2709:6;2762:2;2750:9;2741:7;2737:23;2733:32;2730:52;;;2778:1;2775;2768:12;2730:52;2817:9;2804:23;2836:31;2861:5;2836:31;:::i;3110:388::-;3178:6;3186;3239:2;3227:9;3218:7;3214:23;3210:32;3207:52;;;3255:1;3252;3245:12;3207:52;3294:9;3281:23;3313:31;3338:5;3313:31;:::i;:::-;3363:5;-1:-1:-1;3420:2:1;3405:18;;3392:32;3433:33;3392:32;3433:33;:::i;:::-;3485:7;3475:17;;;3110:388;;;;;:::o;3503:356::-;3705:2;3687:21;;;3724:18;;;3717:30;3783:34;3778:2;3763:18;;3756:62;3850:2;3835:18;;3503:356::o;4216:127::-;4277:10;4272:3;4268:20;4265:1;4258:31;4308:4;4305:1;4298:15;4332:4;4329:1;4322:15;4348:168;4388:7;4454:1;4450;4446:6;4442:14;4439:1;4436:21;4431:1;4424:9;4417:17;4413:45;4410:71;;;4461:18;;:::i;:::-;-1:-1:-1;4501:9:1;;4348:168::o;4521:217::-;4561:1;4587;4577:132;;4631:10;4626:3;4622:20;4619:1;4612:31;4666:4;4663:1;4656:15;4694:4;4691:1;4684:15;4577:132;-1:-1:-1;4723:9:1;;4521:217::o;5022:245::-;5089:6;5142:2;5130:9;5121:7;5117:23;5113:32;5110:52;;;5158:1;5155;5148:12;5110:52;5190:9;5184:16;5209:28;5231:5;5209:28;:::i;7652:128::-;7692:3;7723:1;7719:6;7716:1;7713:13;7710:39;;;7729:18;;:::i;:::-;-1:-1:-1;7765:9:1;;7652:128::o;7785:125::-;7825:4;7853:1;7850;7847:8;7844:34;;;7858:18;;:::i;:::-;-1:-1:-1;7895:9:1;;7785:125::o;8458:127::-;8519:10;8514:3;8510:20;8507:1;8500:31;8550:4;8547:1;8540:15;8574:4;8571:1;8564:15;8590:251;8660:6;8713:2;8701:9;8692:7;8688:23;8684:32;8681:52;;;8729:1;8726;8719:12;8681:52;8761:9;8755:16;8780:31;8805:5;8780:31;:::i;8846:980::-;9108:4;9156:3;9145:9;9141:19;9187:6;9176:9;9169:25;9213:2;9251:6;9246:2;9235:9;9231:18;9224:34;9294:3;9289:2;9278:9;9274:18;9267:31;9318:6;9353;9347:13;9384:6;9376;9369:22;9422:3;9411:9;9407:19;9400:26;;9461:2;9453:6;9449:15;9435:29;;9482:1;9492:195;9506:6;9503:1;9500:13;9492:195;;;9571:13;;-1:-1:-1;;;;;9567:39:1;9555:52;;9662:15;;;;9627:12;;;;9603:1;9521:9;9492:195;;;-1:-1:-1;;;;;;;9743:32:1;;;;9738:2;9723:18;;9716:60;-1:-1:-1;;;9807:3:1;9792:19;9785:35;9704:3;8846:980;-1:-1:-1;;;8846:980:1:o

Swarm Source

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