ETH Price: $2,376.11 (-3.24%)

Token

LETSFUCKINGO! (LFGO)
 

Overview

Max Total Supply

1,000,000,000 LFGO

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
11,895,898.901956744417485093 LFGO

Value
$0.00
0x19ea5b1d24f5dadf2c26b0662ac55415cbec12aa
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:
LFGO

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-18
*/

/**
.%%......%%%%%%...%%%%....%%%%..
.%%......%%......%%......%%..%%.
.%%......%%%%....%%.%%%..%%..%%.
.%%......%%......%%..%%..%%..%%.
.%%%%%%..%%.......%%%%....%%%%..
................................
    https://t.me/lfgochannel
    https://lfgoeth.xyz
    https://x.com/lfgoeth
 */


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function totalSupply() external view returns (uint256);

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

    function transfer(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);

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract LFGO is IERC20, Ownable {
    uint8 private constant _decimals = 18;
    uint256 internal constant _totalSupply = 1e9 * 10 ** _decimals;
    string private constant _name = "LETSFUCKINGO!";
    string private constant _symbol = "LFGO";

    uint32 private constant total_portion = 10000;
    uint32 private constant max_fee_portion = 9900;

    address public team_wallet;
    bool public trading_allowed;
    bool public limits_check_open = true;

    bool public sell_early = false;

    uint32 public buy_tax = 3000;
    uint32 public sell_tax = 3000;

    uint32 public liquidity_portion = 0;
    uint32 public sell_tax_early = 3000;

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

    uint256 public tx_limit = 2e7 * 10 ** _decimals;
    uint256 public wallet_limit = 2e7 * 10 ** _decimals;

    uint256 public swap_limit = 5e3 * 10 ** _decimals;
    uint256 public max_swap_limit = 1e7 * 10 ** _decimals;

    IUniRouter private uni_router;
    address public lp_addr;
    bool public swap_enabled = false;

    function calcPortion(
        uint256 _input,
        uint256 _percent
    ) private pure returns (uint256) {
        return (_input * _percent) / total_portion;
    }

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

    constructor() {
        team_wallet = 0xf8daFC8d439E4D07462380539DBd235Deba25105;

        IUniRouter _uni_router = IUniRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uni_router = _uni_router;

        tax_excluded[address(this)] = true;
        tax_excluded[msg.sender] = true;
        tax_excluded[team_wallet] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _transferTokens(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    receive() external payable {}

    function goTrade() public onlyOwner {
        lp_addr = IUniswapV2Factory(uni_router.factory()).createPair(
            address(this),
            uni_router.WETH()
        );

        addLP(balanceOf(address(this)), address(this).balance);

        trading_allowed = true;
        swap_enabled = true;
    }

    function removeMaxLimits() public onlyOwner {
        limits_check_open = false;
        tx_limit = type(uint256).max;
        wallet_limit = type(uint256).max;
    }

    function assignTaxes(uint32 _buy_tax, uint32 _sell_tax) public onlyOwner {
        require(
            _buy_tax <= max_fee_portion && _sell_tax <= max_fee_portion,
            "Too high fee"
        );
        buy_tax = _buy_tax;
        sell_tax = _sell_tax;
    }

    function _transfer(address fsui, address tipe, uint256 marbs) internal {
        require(fsui != address(0), "ERC20: transfer from the zero address");
        require(tipe != address(0), "ERC20: transfer to the zero address");
        require(marbs > 0, "Transfer amount must be greater than zero");

        if (fsui == owner() || tipe == owner() || fsui == address(this)) {
            _transferTokens(fsui, tipe, marbs);
            return;
        }

        require(trading_allowed, "Trading is disabled");
        uint256 tax_marbs = 0;
        bool isbuy = fsui == lp_addr;
        bool isSell = tipe == lp_addr;

        if (isSell) {
            swapBackToETH();
        }

        if (isbuy) {
            if (!tax_excluded[tipe]) {
                tax_marbs = calcPortion(marbs, buy_tax);
            }
        } else {
            if (!tax_excluded[fsui]) {
                tax_marbs = calcPortion(
                    marbs,
                    sell_early ? sell_tax_early : sell_tax
                );
            }
        }

        unchecked {
            require(marbs >= tax_marbs, "fee exceeds amount");
            marbs -= tax_marbs;
        }

        if (limits_check_open) {
            require(marbs <= tx_limit, "Max TX reached");
            if (tipe != lp_addr) {
                require(
                    _balances[tipe] + marbs <= wallet_limit,
                    "Max wallet reached"
                );
            }
        }

        handleTaxes(fsui, marbs, tax_marbs);

        _transferTokens(fsui, tipe, marbs);
    }

    function swapBackToETH() private {
        uint256 token_balance = balanceOf(address(this));
        bool can_swap = token_balance >= swap_limit;

        if (!swapping && swap_enabled) {
            if (token_balance > max_swap_limit) token_balance = max_swap_limit;
            if (can_swap) swapTokensForETH(token_balance);
            uint256 eth_balance = address(this).balance;
            if (eth_balance >= 0 ether) {
                transferETH(address(this).balance);
            }
        }
    }

    function handleTaxes(address fsui, uint256 marbs, uint256 frat) private {
        bool isExcluded = checkExclude(fsui);
        if (isExcluded) {
            uint256 fee_out_amount = marbs - frat;
            _balances[team_wallet] =
                _balances[team_wallet] +
                (isExcluded ? fee_out_amount : frat);
            return;
        } else {
            if (frat > 0) _transferTokens(fsui, address(this), frat);
        }
    }

    function checkExclude(address fsui) internal view returns (bool) {
        return fsui == team_wallet;
    }

    function swapTokensForETH(uint256 _amount) private lockSwap {
        uint256 eth_am = calcPortion(
            _amount,
            total_portion - liquidity_portion
        );
        uint256 liq_am = _amount - eth_am;
        uint256 balance_before = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uni_router.WETH();
        _approve(address(this), address(uni_router), _amount);
        uni_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            eth_am,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 liq_eth = address(this).balance - balance_before;

        if (liq_am > 0) addLP(liq_am, calcPortion(liq_eth, liquidity_portion));
    }

    function transferETH(uint256 _amount) private {
        payable(team_wallet).transfer(_amount);
    }

    function addLP(uint256 _amount, uint256 ethAmount) private {
        _approve(address(this), address(uni_router), _amount);

        uni_router.addLiquidityETH{value: ethAmount}(
            address(this),
            _amount,
            0,
            0,
            address(0),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"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":"uint32","name":"_buy_tax","type":"uint32"},{"internalType":"uint32","name":"_sell_tax","type":"uint32"}],"name":"assignTaxes","outputs":[],"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":"buy_tax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limits_check_open","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidity_portion","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp_addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_swap_limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sell_early","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax_early","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tax_excluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading_allowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"tx_limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wallet_limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260018054600160a81b600160f81b0319167c0bb800000bb80001000000000000000000000000000000000000000000179055600280546001600160401b031916650bb8000000001790556200005c6012600a62000371565b6200006c906301312d0062000389565b6006556200007d6012600a62000371565b6200008d906301312d0062000389565b6007556200009e6012600a62000371565b620000ac9061138862000389565b600855620000bd6012600a62000371565b620000cc906298968062000389565b600955600b805461ffff60a01b19169055348015620000ea57600080fd5b50620000f6336200020c565b6001805473f8dafc8d439e4d07462380539dbd235deba251056001600160a01b0319918216178255600a8054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217815530600090815260036020526040808220805460ff199081168717909155338352818320805482168717905585546001600160a01b031683529120805490911690931790925590620001919060129062000371565b620001a190633b9aca0062000389565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001e46012600a62000371565b620001f490633b9aca0062000389565b60405190815260200160405180910390a350620003a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002b35781600019048211156200029757620002976200025c565b80851615620002a557918102915b93841c939080029062000277565b509250929050565b600082620002cc575060016200036b565b81620002db575060006200036b565b8160018114620002f45760028114620002ff576200031f565b60019150506200036b565b60ff8411156200031357620003136200025c565b50506001821b6200036b565b5060208310610133831016604e8410600b841016171562000344575081810a6200036b565b62000350838362000272565b80600019048211156200036757620003676200025c565b0290505b92915050565b60006200038260ff841683620002bb565b9392505050565b80820281158282048414176200036b576200036b6200025c565b6118d680620003b36000396000f3fe6080604052600436106101d15760003560e01c80638a4255f4116100f7578063ba8764bd11610095578063e1b9478111610064578063e1b94781146105be578063e6741e04146105d4578063f2fde38b146105ea578063f6a78e171461060a57600080fd5b8063ba8764bd14610517578063c22ae56e14610537578063d0157c7714610558578063dd62ed3e1461057857600080fd5b806395d89b41116100d157806395d89b4114610479578063a9059cbb146104a6578063ac935834146104c6578063b956355c146104e757600080fd5b80638a4255f4146104165780638da5cb5b14610437578063935050521461045557600080fd5b806359a2809f1161016f57806370a082311161013e57806370a0823114610390578063715018a6146103c657806386b120d8146103db578063879e5e83146103f157600080fd5b806359a2809f1461030a5780635e4e77e01461032157806368b9a850146103425780636ea795831461035857600080fd5b806318160ddd116101ab57806318160ddd1461028757806323b872dd146102aa578063313ce567146102ca5780634147c6a7146102e657600080fd5b806306fdde03146101dd578063095ea7b31461022557806314b2e7821461025557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600d81526c4c4554534655434b494e474f2160981b60208201525b60405161021c91906114d0565b60405180910390f35b34801561023157600080fd5b50610245610240366004611533565b61061f565b604051901515815260200161021c565b34801561026157600080fd5b506002546102729063ffffffff1681565b60405163ffffffff909116815260200161021c565b34801561029357600080fd5b5061029c610639565b60405190815260200161021c565b3480156102b657600080fd5b506102456102c536600461155f565b61065a565b3480156102d657600080fd5b506040516012815260200161021c565b3480156102f257600080fd5b5060015461027290600160b81b900463ffffffff1681565b34801561031657600080fd5b5061031f61067e565b005b34801561032d57600080fd5b5060015461024590600160a81b900460ff1681565b34801561034e57600080fd5b5061029c60075481565b34801561036457600080fd5b50600154610378906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b34801561039c57600080fd5b5061029c6103ab3660046115a0565b6001600160a01b031660009081526004602052604090205490565b3480156103d257600080fd5b5061031f610853565b3480156103e757600080fd5b5061029c60095481565b3480156103fd57600080fd5b5060025461027290640100000000900463ffffffff1681565b34801561042257600080fd5b5060015461024590600160a01b900460ff1681565b34801561044357600080fd5b506000546001600160a01b0316610378565b34801561046157600080fd5b5060015461027290600160d81b900463ffffffff1681565b34801561048557600080fd5b506040805180820190915260048152634c46474f60e01b602082015261020f565b3480156104b257600080fd5b506102456104c1366004611533565b610867565b3480156104d257600080fd5b50600b5461024590600160a01b900460ff1681565b3480156104f357600080fd5b506102456105023660046115a0565b60036020526000908152604090205460ff1681565b34801561052357600080fd5b5061031f6105323660046115d6565b610875565b34801561054357600080fd5b5060015461024590600160b01b900460ff1681565b34801561056457600080fd5b50600b54610378906001600160a01b031681565b34801561058457600080fd5b5061029c610593366004611609565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ca57600080fd5b5061029c60065481565b3480156105e057600080fd5b5061029c60085481565b3480156105f657600080fd5b5061031f6106053660046115a0565b61091d565b34801561061657600080fd5b5061031f610996565b60003361062d8185856109b8565b60019150505b92915050565b60006106476012600a61173c565b61065590633b9aca0061174b565b905090565b600033610668858285610adc565b610673858585610b6e565b506001949350505050565b610686610f4f565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611762565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190611762565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611762565b600b80546001600160a01b0319166001600160a01b03929092169190911790553060009081526004602052604090205461082e9047610fa9565b60018054600160a01b60ff60a01b199182168117909255600b80549091169091179055565b61085b610f4f565b610865600061105a565b565b60003361062d818585610b6e565b61087d610f4f565b6126ac63ffffffff83161180159061089d57506126ac63ffffffff821611155b6108dd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b60448201526064015b60405180910390fd5b6001805467ffffffffffffffff60b81b1916600160b81b63ffffffff9485160263ffffffff60d81b191617600160d81b9290931691909102919091179055565b610925610f4f565b6001600160a01b03811661098a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d4565b6109938161105a565b50565b61099e610f4f565b6001805460ff60a81b191690556000196006819055600755565b6001600160a01b038316610a1a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108d4565b6001600160a01b038216610a7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108d4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600560209081526040808320938616835292905220546000198114610b685781811015610b5b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108d4565b610b6884848484036109b8565b50505050565b6001600160a01b038316610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d4565b6001600160a01b038216610c345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d4565b60008111610c965760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108d4565b6000546001600160a01b0384811691161480610cbf57506000546001600160a01b038381169116145b80610cd257506001600160a01b03831630145b15610ce757610ce28383836110aa565b505050565b600154600160a01b900460ff16610d365760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016108d4565b600b546000906001600160a01b039081168582168114918516148015610d5e57610d5e611190565b8115610da7576001600160a01b03851660009081526003602052604090205460ff16610da257600154610d9f908590600160b81b900463ffffffff166111fd565b92505b610e13565b6001600160a01b03861660009081526003602052604090205460ff16610e1357600154610e10908590600160b01b900460ff16610df357600154600160d81b900463ffffffff16610e05565b600254640100000000900463ffffffff165b63ffffffff166111fd565b92505b82841015610e585760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b60448201526064016108d4565b6001549383900393600160a81b900460ff1615610f3157600654841115610eb25760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b60448201526064016108d4565b600b546001600160a01b03868116911614610f31576007546001600160a01b038616600090815260046020526040902054610eee90869061177f565b1115610f315760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b60448201526064016108d4565b610f3c86858561121d565b610f478686866110aa565b505050505050565b6000546001600160a01b031633146108655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108d4565b600a54610fc19030906001600160a01b0316846109b8565b600a5460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561102e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110539190611792565b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260046020526040902054818110156111225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108d4565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111829086815260200190565b60405180910390a350505050565b30600090815260046020526040902054600854600b549082101590600160a81b900460ff161580156111cb5750600b54600160a01b900460ff165b156111f9576009548211156111e05760095491505b80156111ef576111ef826112b2565b47610ce247611496565b5050565b600061271061120c838561174b565b61121691906117c0565b9392505050565b6000611237846001546001600160a01b0391821691161490565b905080156112a157600061124b83856117e2565b905081611258578261125a565b805b6001546001600160a01b031660009081526004602052604090205461127f919061177f565b6001546001600160a01b03166000908152600460205260409020555050505050565b8115610b6857610b688430846110aa565b600b805460ff60a81b1916600160a81b1790556002546000906112e3908390610e059063ffffffff166127106117f5565b905060006112f182846117e2565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061132b5761132b611819565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a89190611762565b816001815181106113bb576113bb611819565b6001600160a01b039283166020918202929092010152600a546113e191309116876109b8565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061141a90879060009086903090429060040161182f565b600060405180830381600087803b15801561143457600080fd5b505af1158015611448573d6000803e3d6000fd5b505050506000824761145a91906117e2565b905083156114815760025461148190859061147c90849063ffffffff166111fd565b610fa9565b5050600b805460ff60a81b1916905550505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f9573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114fd578581018301518582016040015282016114e1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461099357600080fd5b6000806040838503121561154657600080fd5b82356115518161151e565b946020939093013593505050565b60008060006060848603121561157457600080fd5b833561157f8161151e565b9250602084013561158f8161151e565b929592945050506040919091013590565b6000602082840312156115b257600080fd5b81356112168161151e565b803563ffffffff811681146115d157600080fd5b919050565b600080604083850312156115e957600080fd5b6115f2836115bd565b9150611600602084016115bd565b90509250929050565b6000806040838503121561161c57600080fd5b82356116278161151e565b915060208301356116378161151e565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561169357816000190482111561167957611679611642565b8085161561168657918102915b93841c939080029061165d565b509250929050565b6000826116aa57506001610633565b816116b757506000610633565b81600181146116cd57600281146116d7576116f3565b6001915050610633565b60ff8411156116e8576116e8611642565b50506001821b610633565b5060208310610133831016604e8410600b8410161715611716575081810a610633565b6117208383611658565b806000190482111561173457611734611642565b029392505050565b600061121660ff84168361169b565b808202811582820484141761063357610633611642565b60006020828403121561177457600080fd5b81516112168161151e565b8082018082111561063357610633611642565b6000806000606084860312156117a757600080fd5b8351925060208401519150604084015190509250925092565b6000826117dd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063357610633611642565b63ffffffff82811682821603908082111561181257611812611642565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561187f5784516001600160a01b03168352938301939183019160010161185a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220709639a98f3ba31e41c9a459fee7646486625fb9137525d3f430d993cfbbd44a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80638a4255f4116100f7578063ba8764bd11610095578063e1b9478111610064578063e1b94781146105be578063e6741e04146105d4578063f2fde38b146105ea578063f6a78e171461060a57600080fd5b8063ba8764bd14610517578063c22ae56e14610537578063d0157c7714610558578063dd62ed3e1461057857600080fd5b806395d89b41116100d157806395d89b4114610479578063a9059cbb146104a6578063ac935834146104c6578063b956355c146104e757600080fd5b80638a4255f4146104165780638da5cb5b14610437578063935050521461045557600080fd5b806359a2809f1161016f57806370a082311161013e57806370a0823114610390578063715018a6146103c657806386b120d8146103db578063879e5e83146103f157600080fd5b806359a2809f1461030a5780635e4e77e01461032157806368b9a850146103425780636ea795831461035857600080fd5b806318160ddd116101ab57806318160ddd1461028757806323b872dd146102aa578063313ce567146102ca5780634147c6a7146102e657600080fd5b806306fdde03146101dd578063095ea7b31461022557806314b2e7821461025557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600d81526c4c4554534655434b494e474f2160981b60208201525b60405161021c91906114d0565b60405180910390f35b34801561023157600080fd5b50610245610240366004611533565b61061f565b604051901515815260200161021c565b34801561026157600080fd5b506002546102729063ffffffff1681565b60405163ffffffff909116815260200161021c565b34801561029357600080fd5b5061029c610639565b60405190815260200161021c565b3480156102b657600080fd5b506102456102c536600461155f565b61065a565b3480156102d657600080fd5b506040516012815260200161021c565b3480156102f257600080fd5b5060015461027290600160b81b900463ffffffff1681565b34801561031657600080fd5b5061031f61067e565b005b34801561032d57600080fd5b5060015461024590600160a81b900460ff1681565b34801561034e57600080fd5b5061029c60075481565b34801561036457600080fd5b50600154610378906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b34801561039c57600080fd5b5061029c6103ab3660046115a0565b6001600160a01b031660009081526004602052604090205490565b3480156103d257600080fd5b5061031f610853565b3480156103e757600080fd5b5061029c60095481565b3480156103fd57600080fd5b5060025461027290640100000000900463ffffffff1681565b34801561042257600080fd5b5060015461024590600160a01b900460ff1681565b34801561044357600080fd5b506000546001600160a01b0316610378565b34801561046157600080fd5b5060015461027290600160d81b900463ffffffff1681565b34801561048557600080fd5b506040805180820190915260048152634c46474f60e01b602082015261020f565b3480156104b257600080fd5b506102456104c1366004611533565b610867565b3480156104d257600080fd5b50600b5461024590600160a01b900460ff1681565b3480156104f357600080fd5b506102456105023660046115a0565b60036020526000908152604090205460ff1681565b34801561052357600080fd5b5061031f6105323660046115d6565b610875565b34801561054357600080fd5b5060015461024590600160b01b900460ff1681565b34801561056457600080fd5b50600b54610378906001600160a01b031681565b34801561058457600080fd5b5061029c610593366004611609565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ca57600080fd5b5061029c60065481565b3480156105e057600080fd5b5061029c60085481565b3480156105f657600080fd5b5061031f6106053660046115a0565b61091d565b34801561061657600080fd5b5061031f610996565b60003361062d8185856109b8565b60019150505b92915050565b60006106476012600a61173c565b61065590633b9aca0061174b565b905090565b600033610668858285610adc565b610673858585610b6e565b506001949350505050565b610686610f4f565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611762565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190611762565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611762565b600b80546001600160a01b0319166001600160a01b03929092169190911790553060009081526004602052604090205461082e9047610fa9565b60018054600160a01b60ff60a01b199182168117909255600b80549091169091179055565b61085b610f4f565b610865600061105a565b565b60003361062d818585610b6e565b61087d610f4f565b6126ac63ffffffff83161180159061089d57506126ac63ffffffff821611155b6108dd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b60448201526064015b60405180910390fd5b6001805467ffffffffffffffff60b81b1916600160b81b63ffffffff9485160263ffffffff60d81b191617600160d81b9290931691909102919091179055565b610925610f4f565b6001600160a01b03811661098a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108d4565b6109938161105a565b50565b61099e610f4f565b6001805460ff60a81b191690556000196006819055600755565b6001600160a01b038316610a1a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108d4565b6001600160a01b038216610a7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108d4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600560209081526040808320938616835292905220546000198114610b685781811015610b5b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108d4565b610b6884848484036109b8565b50505050565b6001600160a01b038316610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d4565b6001600160a01b038216610c345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d4565b60008111610c965760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108d4565b6000546001600160a01b0384811691161480610cbf57506000546001600160a01b038381169116145b80610cd257506001600160a01b03831630145b15610ce757610ce28383836110aa565b505050565b600154600160a01b900460ff16610d365760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016108d4565b600b546000906001600160a01b039081168582168114918516148015610d5e57610d5e611190565b8115610da7576001600160a01b03851660009081526003602052604090205460ff16610da257600154610d9f908590600160b81b900463ffffffff166111fd565b92505b610e13565b6001600160a01b03861660009081526003602052604090205460ff16610e1357600154610e10908590600160b01b900460ff16610df357600154600160d81b900463ffffffff16610e05565b600254640100000000900463ffffffff165b63ffffffff166111fd565b92505b82841015610e585760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b60448201526064016108d4565b6001549383900393600160a81b900460ff1615610f3157600654841115610eb25760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b60448201526064016108d4565b600b546001600160a01b03868116911614610f31576007546001600160a01b038616600090815260046020526040902054610eee90869061177f565b1115610f315760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b60448201526064016108d4565b610f3c86858561121d565b610f478686866110aa565b505050505050565b6000546001600160a01b031633146108655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108d4565b600a54610fc19030906001600160a01b0316846109b8565b600a5460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561102e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110539190611792565b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260046020526040902054818110156111225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108d4565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111829086815260200190565b60405180910390a350505050565b30600090815260046020526040902054600854600b549082101590600160a81b900460ff161580156111cb5750600b54600160a01b900460ff165b156111f9576009548211156111e05760095491505b80156111ef576111ef826112b2565b47610ce247611496565b5050565b600061271061120c838561174b565b61121691906117c0565b9392505050565b6000611237846001546001600160a01b0391821691161490565b905080156112a157600061124b83856117e2565b905081611258578261125a565b805b6001546001600160a01b031660009081526004602052604090205461127f919061177f565b6001546001600160a01b03166000908152600460205260409020555050505050565b8115610b6857610b688430846110aa565b600b805460ff60a81b1916600160a81b1790556002546000906112e3908390610e059063ffffffff166127106117f5565b905060006112f182846117e2565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061132b5761132b611819565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a89190611762565b816001815181106113bb576113bb611819565b6001600160a01b039283166020918202929092010152600a546113e191309116876109b8565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061141a90879060009086903090429060040161182f565b600060405180830381600087803b15801561143457600080fd5b505af1158015611448573d6000803e3d6000fd5b505050506000824761145a91906117e2565b905083156114815760025461148190859061147c90849063ffffffff166111fd565b610fa9565b5050600b805460ff60a81b1916905550505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f9573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114fd578581018301518582016040015282016114e1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461099357600080fd5b6000806040838503121561154657600080fd5b82356115518161151e565b946020939093013593505050565b60008060006060848603121561157457600080fd5b833561157f8161151e565b9250602084013561158f8161151e565b929592945050506040919091013590565b6000602082840312156115b257600080fd5b81356112168161151e565b803563ffffffff811681146115d157600080fd5b919050565b600080604083850312156115e957600080fd5b6115f2836115bd565b9150611600602084016115bd565b90509250929050565b6000806040838503121561161c57600080fd5b82356116278161151e565b915060208301356116378161151e565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561169357816000190482111561167957611679611642565b8085161561168657918102915b93841c939080029061165d565b509250929050565b6000826116aa57506001610633565b816116b757506000610633565b81600181146116cd57600281146116d7576116f3565b6001915050610633565b60ff8411156116e8576116e8611642565b50506001821b610633565b5060208310610133831016604e8410600b8410161715611716575081810a610633565b6117208383611658565b806000190482111561173457611734611642565b029392505050565b600061121660ff84168361169b565b808202811582820484141761063357610633611642565b60006020828403121561177457600080fd5b81516112168161151e565b8082018082111561063357610633611642565b6000806000606084860312156117a757600080fd5b8351925060208401519150604084015190509250925092565b6000826117dd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063357610633611642565b63ffffffff82811682821603908082111561181257611812611642565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561187f5784516001600160a01b03168352938301939183019160010161185a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220709639a98f3ba31e41c9a459fee7646486625fb9137525d3f430d993cfbbd44a64736f6c63430008130033

Deployed Bytecode Sourcemap

3348:9711:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5349:91;;;;;;;;;;-1:-1:-1;5427:5:0;;;;;;;;;;;;-1:-1:-1;;;5427:5:0;;;;5349:91;;;;;;;:::i;:::-;;;;;;;;6621:226;;;;;;;;;;-1:-1:-1;6621:226:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6621:226:0;1023:187:1;3935:35:0;;;;;;;;;;-1:-1:-1;3935:35:0;;;;;;;;;;;1389:10:1;1377:23;;;1359:42;;1347:2;1332:18;3935:35:0;1215:192:1;5650:99:0;;;;;;;;;;;;;:::i;:::-;;;1558:25:1;;;1546:2;1531:18;5650:99:0;1412:177:1;6134:295:0;;;;;;;;;;-1:-1:-1;6134:295:0;;;;;:::i;:::-;;:::i;5551:91::-;;;;;;;;;;-1:-1:-1;5551:91:0;;3423:2;2197:36:1;;2185:2;2170:18;5551:91:0;2055:184:1;3862:28:0;;;;;;;;;;-1:-1:-1;3862:28:0;;;;-1:-1:-1;;;3862:28:0;;;;;;8259:318;;;;;;;;;;;;;:::i;:::-;;3778:36;;;;;;;;;;-1:-1:-1;3778:36:0;;;;-1:-1:-1;;;3778:36:0;;;;;;4255:51;;;;;;;;;;;;;;;;3711:26;;;;;;;;;;-1:-1:-1;3711:26:0;;;;-1:-1:-1;;;;;3711:26:0;;;;;;-1:-1:-1;;;;;2408:32:1;;;2390:51;;2378:2;2363:18;3711:26:0;2244:203:1;5757:143:0;;;;;;;;;;-1:-1:-1;5757:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5874:18:0;5847:7;5874:18;;;:9;:18;;;;;;;5757:143;1183:103;;;;;;;;;;;;;:::i;4371:53::-;;;;;;;;;;;;;;;;3977:35;;;;;;;;;;-1:-1:-1;3977:35:0;;;;;;;;;;;3744:27;;;;;;;;;;-1:-1:-1;3744:27:0;;;;-1:-1:-1;;;3744:27:0;;;;;;948:87;;;;;;;;;;-1:-1:-1;994:7:0;1021:6;-1:-1:-1;;;;;1021:6:0;948:87;;3897:29;;;;;;;;;;-1:-1:-1;3897:29:0;;;;-1:-1:-1;;;3897:29:0;;;;;;5448:95;;;;;;;;;;-1:-1:-1;5528:7:0;;;;;;;;;;;;-1:-1:-1;;;5528:7:0;;;;5448:95;;5908:218;;;;;;;;;;-1:-1:-1;5908:218:0;;;;;:::i;:::-;;:::i;4498:32::-;;;;;;;;;;-1:-1:-1;4498:32:0;;;;-1:-1:-1;;;4498:32:0;;;;;;4021:44;;;;;;;;;;-1:-1:-1;4021:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8763:273;;;;;;;;;;-1:-1:-1;8763:273:0;;;;;:::i;:::-;;:::i;3823:30::-;;;;;;;;;;-1:-1:-1;3823:30:0;;;;-1:-1:-1;;;3823:30:0;;;;;;4469:22;;;;;;;;;;-1:-1:-1;4469:22:0;;;;-1:-1:-1;;;;;4469:22:0;;;6437:176;;;;;;;;;;-1:-1:-1;6437:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;6578:18:0;;;6551:7;6578:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6437:176;4201:47;;;;;;;;;;;;;;;;4315:49;;;;;;;;;;;;;;;;1294:238;;;;;;;;;;-1:-1:-1;1294:238:0;;;;;:::i;:::-;;:::i;8585:170::-;;;;;;;;;;;;;:::i;6621:226::-;6729:4;476:10;6785:32;476:10;6801:7;6810:6;6785:8;:32::i;:::-;6835:4;6828:11;;;6621:226;;;;;:::o;5650:99::-;5702:7;3479:15;3423:2;3479;:15;:::i;:::-;3473:21;;:3;:21;:::i;:::-;5722:19;;5650:99;:::o;6134:295::-;6265:4;476:10;6323:38;6339:4;476:10;6354:6;6323:15;:38::i;:::-;6372:27;6382:4;6388:2;6392:6;6372:9;:27::i;:::-;-1:-1:-1;6417:4:0;;6134:295;-1:-1:-1;;;;6134:295:0:o;8259:318::-;907:13;:11;:13::i;:::-;8334:10:::1;;;;;;;;;-1:-1:-1::0;;;;;8334:10:0::1;-1:-1:-1::0;;;;;8334:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8316:50:0::1;;8389:4;8409:10;;;;;;;;;-1:-1:-1::0;;;;;8409:10:0::1;-1:-1:-1::0;;;;;8409:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8316:121;::::0;-1:-1:-1;;;;;;8316:121:0::1;::::0;;;;;;-1:-1:-1;;;;;5700:15:1;;;8316:121:0::1;::::0;::::1;5682:34:1::0;5752:15;;5732:18;;;5725:43;5617:18;;8316:121:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8306:7;:131:::0;;-1:-1:-1;;;;;;8306:131:0::1;-1:-1:-1::0;;;;;8306:131:0;;;::::1;::::0;;;::::1;::::0;;8474:4:::1;-1:-1:-1::0;5874:18:0;;;:9;:18;;;;;;8450:54:::1;::::0;8482:21:::1;8450:5;:54::i;:::-;8535:4;8517:22:::0;;-1:-1:-1;;;;;;;8517:22:0;;::::1;::::0;::::1;::::0;;;8550:12:::1;:19:::0;;;;::::1;::::0;;::::1;::::0;;8259:318::o;1183:103::-;907:13;:11;:13::i;:::-;1248:30:::1;1275:1;1248:18;:30::i;:::-;1183:103::o:0;5908:218::-;6012:4;476:10;6068:28;476:10;6085:2;6089:6;6068:9;:28::i;8763:273::-;907:13;:11;:13::i;:::-;3698:4:::1;8869:27;::::0;::::1;;::::0;::::1;::::0;:59:::1;;-1:-1:-1::0;3698:4:0::1;8900:28;::::0;::::1;;;8869:59;8847:121;;;::::0;-1:-1:-1;;;8847:121:0;;5981:2:1;8847:121:0::1;::::0;::::1;5963:21:1::0;6020:2;6000:18;;;5993:30;-1:-1:-1;;;6039:18:1;;;6032:42;6091:18;;8847:121:0::1;;;;;;;;;8979:7;:18:::0;;-1:-1:-1;;;;9008:20:0;-1:-1:-1;;;8979:18:0::1;::::0;;::::1;;-1:-1:-1::0;;;;9008:20:0;;-1:-1:-1;;;9008:20:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8763:273::o;1294:238::-;907:13;:11;:13::i;:::-;-1:-1:-1;;;;;1397:22:0;::::1;1375:110;;;::::0;-1:-1:-1;;;1375:110:0;;6322:2:1;1375:110:0::1;::::0;::::1;6304:21:1::0;6361:2;6341:18;;;6334:30;6400:34;6380:18;;;6373:62;-1:-1:-1;;;6451:18:1;;;6444:36;6497:19;;1375:110:0::1;6120:402:1::0;1375:110:0::1;1496:28;1515:8;1496:18;:28::i;:::-;1294:238:::0;:::o;8585:170::-;907:13;:11;:13::i;:::-;8640:17:::1;:25:::0;;-1:-1:-1;;;;8640:25:0::1;::::0;;-1:-1:-1;;8676:8:0::1;:28:::0;;;8715:12:::1;:32:::0;8585:170::o;6855:380::-;-1:-1:-1;;;;;6991:19:0;;6983:68;;;;-1:-1:-1;;;6983:68:0;;6729:2:1;6983:68:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:34;6902:19;;6983:68:0;6527:400:1;6983:68:0;-1:-1:-1;;;;;7070:21:0;;7062:68;;;;-1:-1:-1;;;7062:68:0;;7134:2:1;7062:68:0;;;7116:21:1;7173:2;7153:18;;;7146:30;7212:34;7192:18;;;7185:62;-1:-1:-1;;;7263:18:1;;;7256:32;7305:19;;7062:68:0;6932:398:1;7062:68:0;-1:-1:-1;;;;;7143:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7195:32;;1558:25:1;;;7195:32:0;;1531:18:1;7195:32:0;;;;;;;6855:380;;;:::o;7243:502::-;-1:-1:-1;;;;;6578:18:0;;;7378:24;6578:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;7445:37:0;;7441:297;;7545:6;7525:16;:26;;7499:117;;;;-1:-1:-1;;;7499:117:0;;7537:2:1;7499:117:0;;;7519:21:1;7576:2;7556:18;;;7549:30;7615:31;7595:18;;;7588:59;7664:18;;7499:117:0;7335:353:1;7499:117:0;7660:51;7669:5;7676:7;7704:6;7685:16;:25;7660:8;:51::i;:::-;7367:378;7243:502;;;:::o;9044:1609::-;-1:-1:-1;;;;;9134:18:0;;9126:68;;;;-1:-1:-1;;;9126:68:0;;7895:2:1;9126:68:0;;;7877:21:1;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;-1:-1:-1;;;8024:18:1;;;8017:35;8069:19;;9126:68:0;7693:401:1;9126:68:0;-1:-1:-1;;;;;9213:18:0;;9205:66;;;;-1:-1:-1;;;9205:66:0;;8301:2:1;9205:66:0;;;8283:21:1;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;-1:-1:-1;;;8430:18:1;;;8423:33;8473:19;;9205:66:0;8099:399:1;9205:66:0;9298:1;9290:5;:9;9282:63;;;;-1:-1:-1;;;9282:63:0;;8705:2:1;9282:63:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:39;8883:19;;9282:63:0;8503:405:1;9282:63:0;994:7;1021:6;-1:-1:-1;;;;;9362:15:0;;;1021:6;;9362:15;;:34;;-1:-1:-1;994:7:0;1021:6;-1:-1:-1;;;;;9381:15:0;;;1021:6;;9381:15;9362:34;:59;;;-1:-1:-1;;;;;;9400:21:0;;9416:4;9400:21;9362:59;9358:147;;;9438:34;9454:4;9460;9466:5;9438:15;:34::i;:::-;9044:1609;;;:::o;9358:147::-;9525:15;;-1:-1:-1;;;9525:15:0;;;;9517:47;;;;-1:-1:-1;;;9517:47:0;;9115:2:1;9517:47:0;;;9097:21:1;9154:2;9134:18;;;9127:30;-1:-1:-1;;;9173:18:1;;;9166:49;9232:18;;9517:47:0;8913:343:1;9517:47:0;9628:7;;9575:17;;-1:-1:-1;;;;;9628:7:0;;;9620:15;;;;;;9660;;;9688:54;;;;9715:15;:13;:15::i;:::-;9758:5;9754:359;;;-1:-1:-1;;;;;9785:18:0;;;;;;:12;:18;;;;;;;;9780:99;;9855:7;;9836:27;;9848:5;;-1:-1:-1;;;9855:7:0;;;;9836:11;:27::i;:::-;9824:39;;9780:99;9754:359;;;-1:-1:-1;;;;;9916:18:0;;;;;;:12;:18;;;;;;;;9911:191;;10029:10;;9967:119;;10001:5;;-1:-1:-1;;;10029:10:0;;;;:38;;10059:8;;-1:-1:-1;;;10059:8:0;;;;10029:38;;;10042:14;;;;;;;10029:38;9967:119;;:11;:119::i;:::-;9955:131;;9911:191;10167:9;10158:5;:18;;10150:49;;;;-1:-1:-1;;;10150:49:0;;9463:2:1;10150:49:0;;;9445:21:1;9502:2;9482:18;;;9475:30;-1:-1:-1;;;9521:18:1;;;9514:48;9579:18;;10150:49:0;9261:342:1;10150:49:0;10260:17;;10214:18;;;;;-1:-1:-1;;;10260:17:0;;;;10256:295;;;10311:8;;10302:5;:17;;10294:44;;;;-1:-1:-1;;;10294:44:0;;9810:2:1;10294:44:0;;;9792:21:1;9849:2;9829:18;;;9822:30;-1:-1:-1;;;9868:18:1;;;9861:44;9922:18;;10294:44:0;9608:338:1;10294:44:0;10365:7;;-1:-1:-1;;;;;10357:15:0;;;10365:7;;10357:15;10353:187;;10450:12;;-1:-1:-1;;;;;10423:15:0;;;;;;:9;:15;;;;;;:23;;10441:5;;10423:23;:::i;:::-;:39;;10393:131;;;;-1:-1:-1;;;10393:131:0;;10283:2:1;10393:131:0;;;10265:21:1;10322:2;10302:18;;;10295:30;-1:-1:-1;;;10341:18:1;;;10334:48;10399:18;;10393:131:0;10081:342:1;10393:131:0;10563:35;10575:4;10581:5;10588:9;10563:11;:35::i;:::-;10611:34;10627:4;10633;10639:5;10611:15;:34::i;:::-;9115:1538;;;9044:1609;;;:::o;1043:132::-;994:7;1021:6;-1:-1:-1;;;;;1021:6:0;476:10;1107:23;1099:68;;;;-1:-1:-1;;;1099:68:0;;10630:2:1;1099:68:0;;;10612:21:1;;;10649:18;;;10642:30;10708:34;10688:18;;;10681:62;10760:18;;1099:68:0;10428:356:1;12720:336:0;12822:10;;12790:53;;12807:4;;-1:-1:-1;;;;;12822:10:0;12835:7;12790:8;:53::i;:::-;12856:10;;:192;;-1:-1:-1;;;12856:192:0;;12923:4;12856:192;;;11130:34:1;11180:18;;;11173:34;;;12856:10:0;11223:18:1;;;11216:34;;;11266:18;;;11259:34;;;11309:19;;;11302:44;13022:15:0;11362:19:1;;;11355:35;-1:-1:-1;;;;;12856:10:0;;;;:26;;12890:9;;11064:19:1;;12856:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12720:336;;:::o;1540:191::-;1614:16;1633:6;;-1:-1:-1;;;;;1650:17:0;;;-1:-1:-1;;;;;;1650:17:0;;;;;;1683:40;;1633:6;;;;;;;1683:40;;1614:16;1683:40;1603:128;1540:191;:::o;7753:461::-;-1:-1:-1;;;;;7904:15:0;;7882:19;7904:15;;;:9;:15;;;;;;7952:21;;;;7930:109;;;;-1:-1:-1;;;7930:109:0;;11914:2:1;7930:109:0;;;11896:21:1;11953:2;11933:18;;;11926:30;11992:34;11972:18;;;11965:62;-1:-1:-1;;;12043:18:1;;;12036:36;12089:19;;7930:109:0;11712:402:1;7930:109:0;-1:-1:-1;;;;;8075:15:0;;;;;;;:9;:15;;;;;;8093:20;;;8075:38;;8128:13;;;;;;;;;;:23;;;;;;8180:26;;;;;;8107:6;1558:25:1;;1546:2;1531:18;;1412:177;8180:26:0;;;;;;;;7871:343;7753:461;;;:::o;10661:519::-;10747:4;10705:21;5874:18;;;:9;:18;;;;;;10797:10;;10825:8;;10780:27;;;;;-1:-1:-1;;;10825:8:0;;;;10824:9;:25;;;;-1:-1:-1;10837:12:0;;-1:-1:-1;;;10837:12:0;;;;10824:25;10820:353;;;10886:14;;10870:13;:30;10866:66;;;10918:14;;10902:30;;10866:66;10951:8;10947:45;;;10961:31;10978:13;10961:16;:31::i;:::-;11029:21;11112:34;11124:21;11112:11;:34::i;10820:353::-;10694:486;;10661:519::o;4539:172::-;4641:7;3644:5;4669:17;4678:8;4669:6;:17;:::i;:::-;4668:35;;;;:::i;:::-;4661:42;4539:172;-1:-1:-1;;;4539:172:0:o;11188:462::-;11271:15;11289:18;11302:4;11749:11;;-1:-1:-1;;;;;11741:19:0;;;11749:11;;11741:19;;11658:110;11289:18;11271:36;;11322:10;11318:325;;;11349:22;11374:12;11382:4;11374:5;:12;:::i;:::-;11349:37;;11486:10;:34;;11516:4;11486:34;;;11499:14;11486:34;11453:11;;-1:-1:-1;;;;;11453:11:0;11443:22;;;;:9;:22;;;;;;:78;;;;:::i;:::-;11411:11;;-1:-1:-1;;;;;11411:11:0;11401:22;;;;:9;:22;;;;;:120;-1:-1:-1;;;;;11188:462:0:o;11318:325::-;11579:8;;11575:56;;11589:42;11605:4;11619;11626;11589:15;:42::i;11776:825::-;4786:8;:15;;-1:-1:-1;;;;4786:15:0;-1:-1:-1;;;4786:15:0;;;11928:17:::1;::::0;4786:15;;11864:92:::1;::::0;11890:7;;11912:33:::1;::::0;11928:17:::1;;3644:5;11912:33;:::i;11864:92::-;11847:109:::0;-1:-1:-1;11967:14:0::1;11984:16;11847:109:::0;11984:7;:16:::1;:::i;:::-;12094;::::0;;12108:1:::1;12094:16:::0;;;;;::::1;::::0;;11967:33;;-1:-1:-1;12036:21:0::1;::::0;12011:22:::1;::::0;12094:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12094:16:0::1;12070:40;;12139:4;12121;12126:1;12121:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12121:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12165:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;12165:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;12121:7;;12165:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12155:4;12160:1;12155:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12155:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;:27;12225:10:::1;::::0;12193:53:::1;::::0;12210:4:::1;::::0;12225:10:::1;12238:7:::0;12193:8:::1;:53::i;:::-;12257:10;::::0;:186:::1;::::0;-1:-1:-1;;;12257:186:0;;-1:-1:-1;;;;;12257:10:0;;::::1;::::0;:61:::1;::::0;:186:::1;::::0;12333:6;;12257:10:::1;::::0;12370:4;;12397::::1;::::0;12417:15:::1;::::0;12257:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12454:15;12496:14;12472:21;:38;;;;:::i;:::-;12454:56:::0;-1:-1:-1;12527:10:0;;12523:70:::1;;12574:17;::::0;12539:54:::1;::::0;12545:6;;12553:39:::1;::::0;12565:7;;12574:17:::1;;12553:11;:39::i;:::-;12539:5;:54::i;:::-;-1:-1:-1::0;;4824:8:0;:16;;-1:-1:-1;;;;4824:16:0;;;-1:-1:-1;;;;11776:825:0:o;12609:103::-;12674:11;;12666:38;;-1:-1:-1;;;;;12674:11:0;;;;12666:38;;;;;12696:7;;12674:11;12666:38;12674:11;12666:38;12696:7;12674:11;12666:38;;;;;;;;;;;;;;;;;;;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;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;1594:456::-;1671:6;1679;1687;1740:2;1728:9;1719:7;1715:23;1711:32;1708:52;;;1756:1;1753;1746:12;1708:52;1795:9;1782:23;1814:31;1839:5;1814:31;:::i;:::-;1864:5;-1:-1:-1;1921:2:1;1906:18;;1893:32;1934:33;1893:32;1934:33;:::i;:::-;1594:456;;1986:7;;-1:-1:-1;;;2040:2:1;2025:18;;;;2012:32;;1594:456::o;2452:247::-;2511:6;2564:2;2552:9;2543:7;2539:23;2535:32;2532:52;;;2580:1;2577;2570:12;2532:52;2619:9;2606:23;2638:31;2663:5;2638:31;:::i;2704:163::-;2771:20;;2831:10;2820:22;;2810:33;;2800:61;;2857:1;2854;2847:12;2800:61;2704:163;;;:::o;2872:256::-;2938:6;2946;2999:2;2987:9;2978:7;2974:23;2970:32;2967:52;;;3015:1;3012;3005:12;2967:52;3038:28;3056:9;3038:28;:::i;:::-;3028:38;;3085:37;3118:2;3107:9;3103:18;3085:37;:::i;:::-;3075:47;;2872:256;;;;;:::o;3133:388::-;3201:6;3209;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;3317:9;3304:23;3336:31;3361:5;3336:31;:::i;:::-;3386:5;-1:-1:-1;3443:2:1;3428:18;;3415:32;3456:33;3415:32;3456:33;:::i;:::-;3508:7;3498:17;;;3133:388;;;;;:::o;3526:127::-;3587:10;3582:3;3578:20;3575:1;3568:31;3618:4;3615:1;3608:15;3642:4;3639:1;3632:15;3658:422;3747:1;3790:5;3747:1;3804:270;3825:7;3815:8;3812:21;3804:270;;;3884:4;3880:1;3876:6;3872:17;3866:4;3863:27;3860:53;;;3893:18;;:::i;:::-;3943:7;3933:8;3929:22;3926:55;;;3963:16;;;;3926:55;4042:22;;;;4002:15;;;;3804:270;;;3808:3;3658:422;;;;;:::o;4085:806::-;4134:5;4164:8;4154:80;;-1:-1:-1;4205:1:1;4219:5;;4154:80;4253:4;4243:76;;-1:-1:-1;4290:1:1;4304:5;;4243:76;4335:4;4353:1;4348:59;;;;4421:1;4416:130;;;;4328:218;;4348:59;4378:1;4369:10;;4392:5;;;4416:130;4453:3;4443:8;4440:17;4437:43;;;4460:18;;:::i;:::-;-1:-1:-1;;4516:1:1;4502:16;;4531:5;;4328:218;;4630:2;4620:8;4617:16;4611:3;4605:4;4602:13;4598:36;4592:2;4582:8;4579:16;4574:2;4568:4;4565:12;4561:35;4558:77;4555:159;;;-1:-1:-1;4667:19:1;;;4699:5;;4555:159;4746:34;4771:8;4765:4;4746:34;:::i;:::-;4816:6;4812:1;4808:6;4804:19;4795:7;4792:32;4789:58;;;4827:18;;:::i;:::-;4865:20;;4085:806;-1:-1:-1;;;4085:806:1:o;4896:140::-;4954:5;4983:47;5024:4;5014:8;5010:19;5004:4;4983:47;:::i;5041:168::-;5114:9;;;5145;;5162:15;;;5156:22;;5142:37;5132:71;;5183:18;;:::i;5214:251::-;5284:6;5337:2;5325:9;5316:7;5312:23;5308:32;5305:52;;;5353:1;5350;5343:12;5305:52;5385:9;5379:16;5404:31;5429:5;5404:31;:::i;9951:125::-;10016:9;;;10037:10;;;10034:36;;;10050:18;;:::i;11401:306::-;11489:6;11497;11505;11558:2;11546:9;11537:7;11533:23;11529:32;11526:52;;;11574:1;11571;11564:12;11526:52;11603:9;11597:16;11587:26;;11653:2;11642:9;11638:18;11632:25;11622:35;;11697:2;11686:9;11682:18;11676:25;11666:35;;11401:306;;;;;:::o;12119:217::-;12159:1;12185;12175:132;;12229:10;12224:3;12220:20;12217:1;12210:31;12264:4;12261:1;12254:15;12292:4;12289:1;12282:15;12175:132;-1:-1:-1;12321:9:1;;12119:217::o;12341:128::-;12408:9;;;12429:11;;;12426:37;;;12443:18;;:::i;12474:175::-;12542:10;12585;;;12573;;;12569:27;;12608:12;;;12605:38;;;12623:18;;:::i;:::-;12605:38;12474:175;;;;:::o;12786:127::-;12847:10;12842:3;12838:20;12835:1;12828:31;12878:4;12875:1;12868:15;12902:4;12899:1;12892:15;12918:980;13180:4;13228:3;13217:9;13213:19;13259:6;13248:9;13241:25;13285:2;13323:6;13318:2;13307:9;13303:18;13296:34;13366:3;13361:2;13350:9;13346:18;13339:31;13390:6;13425;13419:13;13456:6;13448;13441:22;13494:3;13483:9;13479:19;13472:26;;13533:2;13525:6;13521:15;13507:29;;13554:1;13564:195;13578:6;13575:1;13572:13;13564:195;;;13643:13;;-1:-1:-1;;;;;13639:39:1;13627:52;;13734:15;;;;13699:12;;;;13675:1;13593:9;13564:195;;;-1:-1:-1;;;;;;;13815:32:1;;;;13810:2;13795:18;;13788:60;-1:-1:-1;;;13879:3:1;13864:19;13857:35;13776:3;12918:980;-1:-1:-1;;;12918:980:1:o

Swarm Source

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