ETH Price: $3,129.22 (-0.24%)

Token

Pepe Rebase (PEPE)
 

Overview

Max Total Supply

248,734,529,238.519405277 PEPE

Holders

129

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
275,514,632.388559907 PEPE

Value
$0.00
0x0538aaB946e6fCd221C5e740a659196c409f08dc
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:
PepeRebase

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-11
*/

// SPDX-License-Identifier: MIT

// X:        https://x.com/Peperebase
// Telegram: https://t.me/peperebase
// Website:  https://peperebase.com

pragma solidity 0.8.17;

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

interface InterfaceLP {
    function sync() external;
    function mint(address to) external returns (uint liquidity);
}

abstract contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(
        string memory _tokenName,
        string memory _tokenSymbol,
        uint8 _tokenDecimals
    ) {
        _name = _tokenName;
        _symbol = _tokenSymbol;
        _decimals = _tokenDecimals;
    }

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

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

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

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

contract Ownable {
    address private _owner;

    event OwnershipRenounced(address indexed previousOwner);

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

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(msg.sender == _owner, "Not owner");
        _;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(_owner);
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Address {
    /**
     * @dev The ETH balance of the account is not enough to perform the operation.
     */
    error AddressInsufficientBalance(address account);

    /**
     * @dev There's no code at `target` (it is not a contract).
     */
    error AddressEmptyCode(address target);

    /**
     * @dev A call to an address target failed. The target may have reverted.
     */
    error FailedInnerCall();

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        if (address(this).balance < amount) {
            revert AddressInsufficientBalance(address(this));
        }

        (bool success, ) = recipient.call{value: amount}("");
        if (!success) {
            revert FailedInnerCall();
        }
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason or custom error, it is bubbled
     * up by this function (like regular Solidity function calls). However, if
     * the call reverted with no returned reason, this function reverts with a
     * {FailedInnerCall} error.
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        if (address(this).balance < value) {
            revert AddressInsufficientBalance(address(this));
        }
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target
     * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an
     * unsuccessful call.
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata
    ) internal view returns (bytes memory) {
        if (!success) {
            _revert(returndata);
        } else {
            // only check if target is a contract if the call was successful and the return data is empty
            // otherwise we already know that it was a contract
            if (returndata.length == 0 && target.code.length == 0) {
                revert AddressEmptyCode(target);
            }
            return returndata;
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the
     * revert reason or with a default {FailedInnerCall} error.
     */
    function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {
        if (!success) {
            _revert(returndata);
        } else {
            return returndata;
        }
    }

    /**
     * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.
     */
    function _revert(bytes memory returndata) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert FailedInnerCall();
        }
    }
}

interface IWETH {
    function deposit() external payable;
}

contract PepeRebase is ERC20Detailed, Ownable {

    uint256 public rebaseFrequency = 3 hours;
    uint256 public nextRebase;
    uint256 public finalRebase;
    bool public autoRebase = true;
    bool public rebaseStarted = false;
    uint256 public rebasesThisCycle;
    uint256 public lastRebaseThisCycle;

    uint256 public maxWallet;

    address public taxWallet;
    address devWallet = 0x9353a7C47c10Ae9A525331ffec06f6c9E4d45676;
    uint256 public taxPercentBuy;
    uint256 public taxPercentSell;

    mapping (address => bool) public isWhitelisted;

    uint8 private constant DECIMALS = 9;
    uint256 private constant INITIAL_TOKENS_SUPPLY = 819214465182 * 10**DECIMALS;
    uint256 private constant TOTAL_PARTS = type(uint256).max - (type(uint256).max % INITIAL_TOKENS_SUPPLY);
    string public _1_x;
    string public _2_telegram;
    string public _3_website;
    event Rebase(uint256 indexed time, uint256 totalSupply);

    IWETH public immutable weth;

    IDEXRouter public immutable router;
    address public immutable pair;
    
    bool public limitsInEffect = true;
    bool public tradingIsLive = false;
    
    uint256 private _totalSupply;
    uint256 private _partsPerToken;
    uint256 private partsSwapThreshold = (TOTAL_PARTS / 10000 * 25);

    mapping(address => uint256) private _partBalances;
    mapping(address => mapping(address => uint256)) private _allowedTokens;
    
    modifier validRecipient(address to) {
        require(to != address(0x0));
        _;
    }

    bool inSwap;

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

    constructor() ERC20Detailed("Pepe Rebase", "PEPE", DECIMALS) {
        address dexAddress;
        dexAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

        taxWallet = 0x5e31C0098c739259647d7e9BF5C23D4B9F7884aE;
        taxPercentBuy = 25;
        taxPercentSell = 25;

        finalRebase = type(uint256).max;
        nextRebase = type(uint256).max;

        router = IDEXRouter(dexAddress);

        _totalSupply = INITIAL_TOKENS_SUPPLY;
        _partBalances[msg.sender] = TOTAL_PARTS;
        _partsPerToken = TOTAL_PARTS/(_totalSupply);

        isWhitelisted[address(this)] = true;
        isWhitelisted[address(router)] = true;
        isWhitelisted[msg.sender] = true;

        maxWallet = _totalSupply * 2 / 100;

        weth = IWETH(router.WETH());
        pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());

        _allowedTokens[address(this)][address(router)] = type(uint256).max;
        _allowedTokens[address(this)][address(this)] = type(uint256).max;
        _allowedTokens[address(msg.sender)][address(router)] = type(uint256).max;

        _1_x = "x.com/Peperebase";
        _2_telegram = "t.me/peperebase";
        _3_website = "peperebase.com";
        emit Transfer(address(0x0), address(msg.sender), balanceOf(address(this)));
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function allowance(address owner_, address spender) external view override returns (uint256){
        return _allowedTokens[owner_][spender];
    }

    function balanceOf(address who) public view override returns (uint256) {
        return _partBalances[who]/(_partsPerToken);
    }

    function shouldRebase() public view returns (bool) {
        return nextRebase <= block.timestamp || (autoRebase && rebaseStarted && rebasesThisCycle < 10 && lastRebaseThisCycle + 60 <= block.timestamp);
    }

    function lpSync() internal {
        InterfaceLP _pair = InterfaceLP(pair);
        _pair.sync();
    }

    function transfer(address to, uint256 value) external override validRecipient(to) returns (bool){
        _transferFrom(msg.sender, to, value);
        return true;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect, "Limits already removed");
        limitsInEffect = false;
    }

    function whitelistWallet(address _address, bool _isWhitelisted) external onlyOwner {
        isWhitelisted[_address] = _isWhitelisted;
    }

    function updateTaxWallet(address _address) external onlyOwner {
        require(_address != address(0), "Zero Address");
        taxWallet = _address;
    }

    function updateTaxPercent(uint256 _taxPercentBuy, uint256 _taxPercentSell) external onlyOwner {
        require(_taxPercentBuy <= taxPercentBuy || _taxPercentBuy <= 50, "Tax too high");
        require(_taxPercentSell <= taxPercentSell  || _taxPercentSell <= 50, "Tax too high");
        taxPercentBuy = _taxPercentBuy;
        taxPercentSell = _taxPercentSell;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        address pairAddress = pair;
        uint256 partAmount = amount*(_partsPerToken);

        if(autoRebase && !inSwap && !isWhitelisted[sender] && !isWhitelisted[recipient]){
            require(tradingIsLive, "Trading not live");
            if(limitsInEffect){
                if (recipient != pairAddress){
                    require(balanceOf(recipient) + amount <= maxWallet, "Max Wallet Exceeded");
                }
            }

            if(recipient == pairAddress){
                if(balanceOf(address(this)) >= partsSwapThreshold/(_partsPerToken)){
                    try this.swapBack(){} catch {}
                }
                if(shouldRebase()){
                    rebase();
                }
            }

            uint256 taxPartAmount;

            if(sender == pairAddress){
                taxPartAmount = partAmount * taxPercentBuy / 100;
            }
            else if (recipient == pairAddress) {
                taxPartAmount = partAmount * taxPercentSell / 100;
            }

            if(taxPartAmount > 0){
                _partBalances[sender] -= taxPartAmount;
                _partBalances[address(this)] += taxPartAmount;
                emit Transfer(sender, address(this), taxPartAmount / _partsPerToken);
                partAmount -= taxPartAmount;
            }
            
        }

        _partBalances[sender] = _partBalances[sender]-(partAmount);
        _partBalances[recipient] = _partBalances[recipient]+(partAmount);

        emit Transfer(sender, recipient, partAmount/(_partsPerToken));

        return true;
    }

    function transferFrom(address from, address to,  uint256 value) external override validRecipient(to) returns (bool) {
        if (_allowedTokens[from][msg.sender] != type(uint256).max) {
            require(_allowedTokens[from][msg.sender] >= value,"Insufficient Allowance");
            _allowedTokens[from][msg.sender] = _allowedTokens[from][msg.sender]-(value);
        }
        _transferFrom(from, to, value);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool){
        uint256 oldValue = _allowedTokens[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedTokens[msg.sender][spender] = 0;
        } else {
            _allowedTokens[msg.sender][spender] = oldValue-(
                subtractedValue
            );
        }
        emit Approval(
            msg.sender,
            spender,
            _allowedTokens[msg.sender][spender]
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool){
        _allowedTokens[msg.sender][spender] = _allowedTokens[msg.sender][
        spender
        ]+(addedValue);
        emit Approval(
            msg.sender,
            spender,
            _allowedTokens[msg.sender][spender]
        );
        return true;
    }

    function approve(address spender, uint256 value) public override returns (bool){
        _allowedTokens[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function rebase() internal returns (uint256) {
        uint256 time = block.timestamp;

        uint256 supplyDelta = _totalSupply * 2 / 100;
        if(nextRebase < block.timestamp){
            rebasesThisCycle = 1;
            nextRebase += rebaseFrequency;
        } else {
            rebasesThisCycle += 1;
            lastRebaseThisCycle = block.timestamp;
        }

        if (supplyDelta == 0) {
            emit Rebase(time, _totalSupply);
            return _totalSupply;
        }

        _totalSupply = _totalSupply-supplyDelta;

        if (nextRebase >= finalRebase) {
            nextRebase = type(uint256).max;
            autoRebase = false;
            _totalSupply = 10e6 * (10 ** decimals());

            if(limitsInEffect){
                limitsInEffect = false;
            }

            if(balanceOf(address(this)) > 0){
                try this.swapBack(){} catch {}
            }

            taxPercentBuy = 0;
            taxPercentSell = 0;
        }

        _partsPerToken = TOTAL_PARTS/(_totalSupply);

        lpSync();

        emit Rebase(time, _totalSupply);
        return _totalSupply;
    }

    function manualRebase() external {
        require(shouldRebase(), "Not in time");
        rebase();
    }

    function enableTrading() external onlyOwner {
        require(!tradingIsLive, "Trading Live Already");
        tradingIsLive = true;
    }

    function startRebaseCycles() external onlyOwner {
        require(!rebaseStarted, "already started");
        nextRebase = block.timestamp + rebaseFrequency;
        finalRebase = block.timestamp + 7 days;
        rebaseStarted = true;
    }

    function swapBack() public swapping {
        uint256 contractBalance = balanceOf(address(this));
        if(contractBalance == 0){
            return;
        }

        if(contractBalance > partsSwapThreshold/(_partsPerToken) * 20){
            contractBalance = partsSwapThreshold/(_partsPerToken) * 20;
        }

        swapTokensForETH(contractBalance);
    }

    function swapTokensForETH(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = address(router.WETH());

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount
            path,
            address(this),
            block.timestamp
        );
        payable(taxWallet).transfer(address(this).balance * 4 / 5);
        payable(devWallet).transfer(address(this).balance);
    }

    function setDevWallet(address a) external onlyOwner {
        devWallet = a;
    }

    function refreshBalances(address[] memory wallets) external {
        address wallet;
        for(uint256 i = 0; i < wallets.length; i++){
            wallet = wallets[i];
            emit Transfer(wallet, wallet, 0);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"Rebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_1_x","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_2_telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_3_website","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebaseThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","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":"nextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebasesThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"refreshBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startRebaseCycles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","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":"tradingIsLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"value","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":[{"internalType":"uint256","name":"_taxPercentBuy","type":"uint256"},{"internalType":"uint256","name":"_taxPercentSell","type":"uint256"}],"name":"updateTaxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"name":"whitelistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052612a306003556006805461ffff199081166001908117909255600b80546001600160a01b031916739353a7c47c10ae9a525331ffec06f6c9e4d45676179055601280549091169091179055612710620000606009600a62000711565b620000719064bebcfcb89e62000729565b6200007f9060001962000759565b6200008d9060001962000770565b62000099919062000786565b620000a690601962000729565b601555348015620000b657600080fd5b506040518060400160405280600b81526020016a506570652052656261736560a81b815250604051806040016040528060048152602001635045504560e01b815250600982600090816200010b919062000842565b5060016200011a838262000842565b506002805433610100026001600160a81b031990911660ff909316929092179190911790555050600a80546001600160a01b031916735e31c0098c739259647d7e9bf5c23d4b9f7884ae1781556019600c819055600d556000196005819055600455737a250d5630b4cf539739df2c5dacb4c659f2488d60a081905290620001a59060099062000711565b620001b69064bebcfcb89e62000729565b601355620001c76009600a62000711565b620001d89064bebcfcb89e62000729565b620001e69060001962000759565b620001f49060001962000770565b33600090815260166020526040902055601354620002156009600a62000711565b620002269064bebcfcb89e62000729565b620002349060001962000759565b620002429060001962000770565b6200024e919062000786565b601455306000908152600e60205260408082208054600160ff19918216811790925560a0516001600160a01b0316845282842080548216831790553384529190922080549091169091179055601354606490620002ad90600262000729565b620002b9919062000786565b60098190555060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032691906200090e565b6001600160a01b03166080816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a691906200090e565b6001600160a01b031663c9c653963060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041c91906200090e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200046a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049091906200090e565b6001600160a01b0390811660c05230600081815260176020818152604080842060a0519096168085529582528084206000199081905594845280842085905533845291815281832094835293845290819020919091558051808201909152601081526f782e636f6d2f5065706572656261736560801b91810191909152600f906200051c908262000842565b5060408051808201909152600f81526e742e6d652f7065706572656261736560881b602082015260109062000552908262000842565b5060408051808201909152600e81526d706570657265626173652e636f6d60901b602082015260119062000587908262000842565b503360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005b730620005cf565b60405190815260200160405180910390a35062000939565b6014546001600160a01b0382166000908152601660205260408120549091620005f89162000786565b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000655578160001904821115620006395762000639620005fe565b808516156200064757918102915b93841c939080029062000619565b509250929050565b6000826200066e57506001620005f8565b816200067d57506000620005f8565b8160018114620006965760028114620006a157620006c1565b6001915050620005f8565b60ff841115620006b557620006b5620005fe565b50506001821b620005f8565b5060208310610133831016604e8410600b8410161715620006e6575081810a620005f8565b620006f2838362000614565b8060001904821115620007095762000709620005fe565b029392505050565b60006200072260ff8416836200065d565b9392505050565b8082028115828204841417620005f857620005f8620005fe565b634e487b7160e01b600052601260045260246000fd5b6000826200076b576200076b62000743565b500690565b81810381811115620005f857620005f8620005fe565b60008262000798576200079862000743565b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007c857607f821691505b602082108103620007e957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200083d57600081815260208120601f850160051c81016020861015620008185750805b601f850160051c820191505b81811015620008395782815560010162000824565b5050505b505050565b81516001600160401b038111156200085e576200085e6200079d565b62000876816200086f8454620007b3565b84620007ef565b602080601f831160018114620008ae5760008415620008955750858301515b600019600386901b1c1916600185901b17855562000839565b600085815260208120601f198616915b82811015620008df57888601518255948401946001909101908401620008be565b5085821015620008fe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200092157600080fd5b81516001600160a01b03811681146200072257600080fd5b60805160a05160c0516120f86200098560003960008181610678015281816112ce0152611b400152600081816107be0152818161190e01526119c60152600061044f01526120f86000f3fe6080604052600436106102765760003560e01c806374c9f6031161014f578063a8aa1b31116100c1578063dd62ed3e1161007a578063dd62ed3e1461071a578063f0d00f2e14610760578063f2fde38b14610776578063f7d0432114610796578063f887ea40146107ac578063f8b45b05146107e057600080fd5b8063a8aa1b3114610666578063a9059cbb1461069a578063bac154ea146106ba578063bc7e68a3146106cf578063c5c0050e146106e5578063da07e4d71461070457600080fd5b80638da5cb5b116101135780638da5cb5b146105c95780639079f932146105ec5780639367ffcd1461060657806395d89b411461061b5780639833d9ec14610630578063a457c2d71461064657600080fd5b806374c9f60314610549578063751039fc1461056957806389375abf1461057e57806389d81e9d146105945780638a8c523c146105b457600080fd5b80633b68edea116101e857806361a9d1b1116101ac57806361a9d1b1146104c057806363eab10a146104d55780636ac5eeee146104ea57806370a08231146104ff578063713be5ef1461051f578063715018a61461053457600080fd5b80633b68edea1461041e5780633fc8cef31461043d57806342295e1b146104715780634a62bb65146104865780636135af2a146104a057600080fd5b806323b872dd1161023a57806323b872dd146103345780632dc0562d146103545780632e3259831461038c578063313ce567146103ac57806339509351146103ce5780633af32abf146103ee57600080fd5b806303e2c14c1461028257806306fdde03146102ab578063095ea7b3146102cd57806318160ddd146102fd5780631f53ac021461031257600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610298600d5481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b506102c06107f6565b6040516102a29190611bb7565b3480156102d957600080fd5b506102ed6102e8366004611c2a565b610888565b60405190151581526020016102a2565b34801561030957600080fd5b50601354610298565b34801561031e57600080fd5b5061033261032d366004611c56565b6108f5565b005b34801561034057600080fd5b506102ed61034f366004611c7a565b61094f565b34801561036057600080fd5b50600a54610374906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561039857600080fd5b506103326103a7366004611cd1565b610a68565b3480156103b857600080fd5b5060025460405160ff90911681526020016102a2565b3480156103da57600080fd5b506102ed6103e9366004611c2a565b610af6565b3480156103fa57600080fd5b506102ed610409366004611c56565b600e6020526000908152604090205460ff1681565b34801561042a57600080fd5b506012546102ed90610100900460ff1681565b34801561044957600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b34801561047d57600080fd5b50610332610b7c565b34801561049257600080fd5b506012546102ed9060ff1681565b3480156104ac57600080fd5b506103326104bb366004611d96565b610c26565b3480156104cc57600080fd5b50610332610c80565b3480156104e157600080fd5b506102ed610ccd565b3480156104f657600080fd5b50610332610d21565b34801561050b57600080fd5b5061029861051a366004611c56565b610da0565b34801561052b57600080fd5b506102c0610dc7565b34801561054057600080fd5b50610332610e55565b34801561055557600080fd5b50610332610564366004611c56565b610ed3565b34801561057557600080fd5b50610332610f69565b34801561058a57600080fd5b5061029860035481565b3480156105a057600080fd5b506103326105af366004611dd4565b610fef565b3480156105c057600080fd5b506103326110c3565b3480156105d557600080fd5b5060025461010090046001600160a01b0316610374565b3480156105f857600080fd5b506006546102ed9060ff1681565b34801561061257600080fd5b506102c0611152565b34801561062757600080fd5b506102c061115f565b34801561063c57600080fd5b5061029860085481565b34801561065257600080fd5b506102ed610661366004611c2a565b61116e565b34801561067257600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a657600080fd5b506102ed6106b5366004611c2a565b611255565b3480156106c657600080fd5b506102c0611281565b3480156106db57600080fd5b5061029860045481565b3480156106f157600080fd5b506006546102ed90610100900460ff1681565b34801561071057600080fd5b5061029860055481565b34801561072657600080fd5b50610298610735366004611df6565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b34801561076c57600080fd5b5061029860075481565b34801561078257600080fd5b50610332610791366004611c56565b61128e565b3480156107a257600080fd5b50610298600c5481565b3480156107b857600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b3480156107ec57600080fd5b5061029860095481565b60606000805461080590611e24565b80601f016020809104026020016040519081016040528092919081815260200182805461083190611e24565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b3360008181526017602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e39086815260200190565b60405180910390a35060015b92915050565b60025461010090046001600160a01b0316331461092d5760405162461bcd60e51b815260040161092490611e5e565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b03811661096557600080fd5b6001600160a01b038516600090815260176020908152604080832033845290915290205460001914610a51576001600160a01b03851660009081526017602090815260408083203384529091529020548311156109fd5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610924565b6001600160a01b0385166000908152601760209081526040808320338452909152902054610a2c908490611e97565b6001600160a01b03861660009081526017602090815260408083203384529091529020555b610a5c8585856112c6565b50600195945050505050565b6000805b8251811015610af157828181518110610a8757610a87611eaa565b60200260200101519150816001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051610ad791815260200190565b60405180910390a380610ae981611ec0565b915050610a6c565b505050565b3360009081526017602090815260408083206001600160a01b0386168452909152812054610b25908390611ed9565b3360008181526017602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016108e3565b60025461010090046001600160a01b03163314610bab5760405162461bcd60e51b815260040161092490611e5e565b600654610100900460ff1615610bf55760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610924565b600354610c029042611ed9565b600455610c124262093a80611ed9565b6005556006805461ff001916610100179055565b60025461010090046001600160a01b03163314610c555760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b610c88610ccd565b610cc25760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610924565b610cca6116ac565b50565b600042600454111580610d1c575060065460ff168015610cf45750600654610100900460ff165b8015610d025750600a600754105b8015610d1c575042600854603c610d199190611ed9565b11155b905090565b6018805460ff191660011790556000610d3930610da0565b905080600003610d495750610d94565b601454601554610d599190611f02565b610d64906014611f16565b811115610d8957601454601554610d7b9190611f02565b610d86906014611f16565b90505b610d92816118b7565b505b6018805460ff19169055565b6014546001600160a01b03821660009081526016602052604081205490916108ef91611f02565b600f8054610dd490611e24565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0090611e24565b8015610e4d5780601f10610e2257610100808354040283529160200191610e4d565b820191906000526020600020905b815481529060010190602001808311610e3057829003601f168201915b505050505081565b60025461010090046001600160a01b03163314610e845760405162461bcd60e51b815260040161092490611e5e565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610f025760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610924565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b03163314610f985760405162461bcd60e51b815260040161092490611e5e565b60125460ff16610fe35760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b6044820152606401610924565b6012805460ff19169055565b60025461010090046001600160a01b0316331461101e5760405162461bcd60e51b815260040161092490611e5e565b600c5482111580611030575060328211155b61106b5760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600d548111158061107d575060328111155b6110b85760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600c91909155600d55565b60025461010090046001600160a01b031633146110f25760405162461bcd60e51b815260040161092490611e5e565b601254610100900460ff16156111415760405162461bcd60e51b815260206004820152601460248201527354726164696e67204c69766520416c726561647960601b6044820152606401610924565b6012805461ff001916610100179055565b60108054610dd490611e24565b60606001805461080590611e24565b3360009081526017602090815260408083206001600160a01b03861684529091528120548083106111c2573360009081526017602090815260408083206001600160a01b03881684529091528120556111f1565b6111cc8382611e97565b3360009081526017602090815260408083206001600160a01b03891684529091529020555b3360008181526017602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b03811661126b57600080fd5b6112763385856112c6565b506001949350505050565b60118054610dd490611e24565b60025461010090046001600160a01b031633146112bd5760405162461bcd60e51b815260040161092490611e5e565b610cca81611ac2565b6014546000907f00000000000000000000000000000000000000000000000000000000000000009082906112fa9085611f16565b60065490915060ff168015611312575060185460ff16155b801561133757506001600160a01b0386166000908152600e602052604090205460ff16155b801561135c57506001600160a01b0385166000908152600e602052604090205460ff16155b156115eb57601254610100900460ff166113ab5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610924565b60125460ff161561142a57816001600160a01b0316856001600160a01b03161461142a57600954846113dc87610da0565b6113e69190611ed9565b111561142a5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610924565b816001600160a01b0316856001600160a01b0316036114c6576014546015546114539190611f02565b61145c30610da0565b106114af57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561149c57600080fd5b505af19250505080156114ad575060015b505b6114b7610ccd565b156114c6576114c46116ac565b505b6000826001600160a01b0316876001600160a01b031603611502576064600c54836114f19190611f16565b6114fb9190611f02565b9050611538565b826001600160a01b0316866001600160a01b031603611538576064600d548361152b9190611f16565b6115359190611f02565b90505b80156115e9576001600160a01b03871660009081526016602052604081208054839290611566908490611e97565b9091555050306000908152601660205260408120805483929061158a908490611ed9565b909155505060145430906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115cb9085611f02565b60405190815260200160405180910390a36115e68183611e97565b91505b505b6001600160a01b03861660009081526016602052604090205461160f908290611e97565b6001600160a01b03808816600090815260166020526040808220939093559087168152205461163f908290611ed9565b6001600160a01b03808716600081815260166020526040902092909255601454908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168f9085611f02565b60405190815260200160405180910390a350600195945050505050565b6000804290506000606460135460026116c59190611f16565b6116cf9190611f02565b9050426004541015611700576001600755600354600480546000906116f5908490611ed9565b9091555061171d9050565b6001600760008282546117139190611ed9565b9091555050426008555b8060000361176b57817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60405180910390a26013549250505090565b806013546117799190611e97565b60135560055460045410611838576000196004556006805460ff1916905560025460ff166117a890600a612011565b6117b59062989680611f16565b60135560125460ff16156117ce576012805460ff191690555b60006117d930610da0565b111561182d57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561181a57600080fd5b505af192505050801561182b575060015b505b6000600c819055600d555b6013546118476009600a612011565b6118569064bebcfcb89e611f16565b61186290600019612020565b61186e90600019611e97565b6118789190611f02565b601455611883611b3c565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118ec576118ec611eaa565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e9190612034565b816001815181106119a1576119a1611eaa565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790611a06908590600090869030904290600401612051565b600060405180830381600087803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b5050600a546001600160a01b031691506108fc90506005611a56476004611f16565b611a609190611f02565b6040518115909202916000818181858888f19350505050158015611a88573d6000803e3d6000fd5b50600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610af1573d6000803e3d6000fd5b6001600160a01b038116611ad557600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b9c57600080fd5b505af1158015611bb0573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015611be457858101830151858201604001528201611bc8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cca57600080fd5b8035611c2581611c05565b919050565b60008060408385031215611c3d57600080fd5b8235611c4881611c05565b946020939093013593505050565b600060208284031215611c6857600080fd5b8135611c7381611c05565b9392505050565b600080600060608486031215611c8f57600080fd5b8335611c9a81611c05565b92506020840135611caa81611c05565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611ce457600080fd5b823567ffffffffffffffff80821115611cfc57600080fd5b818501915085601f830112611d1057600080fd5b813581811115611d2257611d22611cbb565b8060051b604051601f19603f83011681018181108582111715611d4757611d47611cbb565b604052918252848201925083810185019188831115611d6557600080fd5b938501935b82851015611d8a57611d7b85611c1a565b84529385019392850192611d6a565b98975050505050505050565b60008060408385031215611da957600080fd5b8235611db481611c05565b915060208301358015158114611dc957600080fd5b809150509250929050565b60008060408385031215611de757600080fd5b50508035926020909101359150565b60008060408385031215611e0957600080fd5b8235611e1481611c05565b91506020830135611dc981611c05565b600181811c90821680611e3857607f821691505b602082108103611e5857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108ef576108ef611e81565b634e487b7160e01b600052603260045260246000fd5b600060018201611ed257611ed2611e81565b5060010190565b808201808211156108ef576108ef611e81565b634e487b7160e01b600052601260045260246000fd5b600082611f1157611f11611eec565b500490565b80820281158282048414176108ef576108ef611e81565b600181815b80851115611f68578160001904821115611f4e57611f4e611e81565b80851615611f5b57918102915b93841c9390800290611f32565b509250929050565b600082611f7f575060016108ef565b81611f8c575060006108ef565b8160018114611fa25760028114611fac57611fc8565b60019150506108ef565b60ff841115611fbd57611fbd611e81565b50506001821b6108ef565b5060208310610133831016604e8410600b8410161715611feb575081810a6108ef565b611ff58383611f2d565b806000190482111561200957612009611e81565b029392505050565b6000611c7360ff841683611f70565b60008261202f5761202f611eec565b500690565b60006020828403121561204657600080fd5b8151611c7381611c05565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120a15784516001600160a01b03168352938301939183019160010161207c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9c12e2e16325910238ca161d3a31fa76567490694925e1427a0cfbd61e94c4564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102765760003560e01c806374c9f6031161014f578063a8aa1b31116100c1578063dd62ed3e1161007a578063dd62ed3e1461071a578063f0d00f2e14610760578063f2fde38b14610776578063f7d0432114610796578063f887ea40146107ac578063f8b45b05146107e057600080fd5b8063a8aa1b3114610666578063a9059cbb1461069a578063bac154ea146106ba578063bc7e68a3146106cf578063c5c0050e146106e5578063da07e4d71461070457600080fd5b80638da5cb5b116101135780638da5cb5b146105c95780639079f932146105ec5780639367ffcd1461060657806395d89b411461061b5780639833d9ec14610630578063a457c2d71461064657600080fd5b806374c9f60314610549578063751039fc1461056957806389375abf1461057e57806389d81e9d146105945780638a8c523c146105b457600080fd5b80633b68edea116101e857806361a9d1b1116101ac57806361a9d1b1146104c057806363eab10a146104d55780636ac5eeee146104ea57806370a08231146104ff578063713be5ef1461051f578063715018a61461053457600080fd5b80633b68edea1461041e5780633fc8cef31461043d57806342295e1b146104715780634a62bb65146104865780636135af2a146104a057600080fd5b806323b872dd1161023a57806323b872dd146103345780632dc0562d146103545780632e3259831461038c578063313ce567146103ac57806339509351146103ce5780633af32abf146103ee57600080fd5b806303e2c14c1461028257806306fdde03146102ab578063095ea7b3146102cd57806318160ddd146102fd5780631f53ac021461031257600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610298600d5481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b506102c06107f6565b6040516102a29190611bb7565b3480156102d957600080fd5b506102ed6102e8366004611c2a565b610888565b60405190151581526020016102a2565b34801561030957600080fd5b50601354610298565b34801561031e57600080fd5b5061033261032d366004611c56565b6108f5565b005b34801561034057600080fd5b506102ed61034f366004611c7a565b61094f565b34801561036057600080fd5b50600a54610374906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561039857600080fd5b506103326103a7366004611cd1565b610a68565b3480156103b857600080fd5b5060025460405160ff90911681526020016102a2565b3480156103da57600080fd5b506102ed6103e9366004611c2a565b610af6565b3480156103fa57600080fd5b506102ed610409366004611c56565b600e6020526000908152604090205460ff1681565b34801561042a57600080fd5b506012546102ed90610100900460ff1681565b34801561044957600080fd5b506103747f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561047d57600080fd5b50610332610b7c565b34801561049257600080fd5b506012546102ed9060ff1681565b3480156104ac57600080fd5b506103326104bb366004611d96565b610c26565b3480156104cc57600080fd5b50610332610c80565b3480156104e157600080fd5b506102ed610ccd565b3480156104f657600080fd5b50610332610d21565b34801561050b57600080fd5b5061029861051a366004611c56565b610da0565b34801561052b57600080fd5b506102c0610dc7565b34801561054057600080fd5b50610332610e55565b34801561055557600080fd5b50610332610564366004611c56565b610ed3565b34801561057557600080fd5b50610332610f69565b34801561058a57600080fd5b5061029860035481565b3480156105a057600080fd5b506103326105af366004611dd4565b610fef565b3480156105c057600080fd5b506103326110c3565b3480156105d557600080fd5b5060025461010090046001600160a01b0316610374565b3480156105f857600080fd5b506006546102ed9060ff1681565b34801561061257600080fd5b506102c0611152565b34801561062757600080fd5b506102c061115f565b34801561063c57600080fd5b5061029860085481565b34801561065257600080fd5b506102ed610661366004611c2a565b61116e565b34801561067257600080fd5b506103747f000000000000000000000000f1e0f665e3825d76020d11126cda385fed4fa11381565b3480156106a657600080fd5b506102ed6106b5366004611c2a565b611255565b3480156106c657600080fd5b506102c0611281565b3480156106db57600080fd5b5061029860045481565b3480156106f157600080fd5b506006546102ed90610100900460ff1681565b34801561071057600080fd5b5061029860055481565b34801561072657600080fd5b50610298610735366004611df6565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b34801561076c57600080fd5b5061029860075481565b34801561078257600080fd5b50610332610791366004611c56565b61128e565b3480156107a257600080fd5b50610298600c5481565b3480156107b857600080fd5b506103747f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156107ec57600080fd5b5061029860095481565b60606000805461080590611e24565b80601f016020809104026020016040519081016040528092919081815260200182805461083190611e24565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b3360008181526017602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e39086815260200190565b60405180910390a35060015b92915050565b60025461010090046001600160a01b0316331461092d5760405162461bcd60e51b815260040161092490611e5e565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b03811661096557600080fd5b6001600160a01b038516600090815260176020908152604080832033845290915290205460001914610a51576001600160a01b03851660009081526017602090815260408083203384529091529020548311156109fd5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610924565b6001600160a01b0385166000908152601760209081526040808320338452909152902054610a2c908490611e97565b6001600160a01b03861660009081526017602090815260408083203384529091529020555b610a5c8585856112c6565b50600195945050505050565b6000805b8251811015610af157828181518110610a8757610a87611eaa565b60200260200101519150816001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051610ad791815260200190565b60405180910390a380610ae981611ec0565b915050610a6c565b505050565b3360009081526017602090815260408083206001600160a01b0386168452909152812054610b25908390611ed9565b3360008181526017602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016108e3565b60025461010090046001600160a01b03163314610bab5760405162461bcd60e51b815260040161092490611e5e565b600654610100900460ff1615610bf55760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610924565b600354610c029042611ed9565b600455610c124262093a80611ed9565b6005556006805461ff001916610100179055565b60025461010090046001600160a01b03163314610c555760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b610c88610ccd565b610cc25760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610924565b610cca6116ac565b50565b600042600454111580610d1c575060065460ff168015610cf45750600654610100900460ff165b8015610d025750600a600754105b8015610d1c575042600854603c610d199190611ed9565b11155b905090565b6018805460ff191660011790556000610d3930610da0565b905080600003610d495750610d94565b601454601554610d599190611f02565b610d64906014611f16565b811115610d8957601454601554610d7b9190611f02565b610d86906014611f16565b90505b610d92816118b7565b505b6018805460ff19169055565b6014546001600160a01b03821660009081526016602052604081205490916108ef91611f02565b600f8054610dd490611e24565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0090611e24565b8015610e4d5780601f10610e2257610100808354040283529160200191610e4d565b820191906000526020600020905b815481529060010190602001808311610e3057829003601f168201915b505050505081565b60025461010090046001600160a01b03163314610e845760405162461bcd60e51b815260040161092490611e5e565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610f025760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610924565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b03163314610f985760405162461bcd60e51b815260040161092490611e5e565b60125460ff16610fe35760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b6044820152606401610924565b6012805460ff19169055565b60025461010090046001600160a01b0316331461101e5760405162461bcd60e51b815260040161092490611e5e565b600c5482111580611030575060328211155b61106b5760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600d548111158061107d575060328111155b6110b85760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600c91909155600d55565b60025461010090046001600160a01b031633146110f25760405162461bcd60e51b815260040161092490611e5e565b601254610100900460ff16156111415760405162461bcd60e51b815260206004820152601460248201527354726164696e67204c69766520416c726561647960601b6044820152606401610924565b6012805461ff001916610100179055565b60108054610dd490611e24565b60606001805461080590611e24565b3360009081526017602090815260408083206001600160a01b03861684529091528120548083106111c2573360009081526017602090815260408083206001600160a01b03881684529091528120556111f1565b6111cc8382611e97565b3360009081526017602090815260408083206001600160a01b03891684529091529020555b3360008181526017602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b03811661126b57600080fd5b6112763385856112c6565b506001949350505050565b60118054610dd490611e24565b60025461010090046001600160a01b031633146112bd5760405162461bcd60e51b815260040161092490611e5e565b610cca81611ac2565b6014546000907f000000000000000000000000f1e0f665e3825d76020d11126cda385fed4fa1139082906112fa9085611f16565b60065490915060ff168015611312575060185460ff16155b801561133757506001600160a01b0386166000908152600e602052604090205460ff16155b801561135c57506001600160a01b0385166000908152600e602052604090205460ff16155b156115eb57601254610100900460ff166113ab5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610924565b60125460ff161561142a57816001600160a01b0316856001600160a01b03161461142a57600954846113dc87610da0565b6113e69190611ed9565b111561142a5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610924565b816001600160a01b0316856001600160a01b0316036114c6576014546015546114539190611f02565b61145c30610da0565b106114af57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561149c57600080fd5b505af19250505080156114ad575060015b505b6114b7610ccd565b156114c6576114c46116ac565b505b6000826001600160a01b0316876001600160a01b031603611502576064600c54836114f19190611f16565b6114fb9190611f02565b9050611538565b826001600160a01b0316866001600160a01b031603611538576064600d548361152b9190611f16565b6115359190611f02565b90505b80156115e9576001600160a01b03871660009081526016602052604081208054839290611566908490611e97565b9091555050306000908152601660205260408120805483929061158a908490611ed9565b909155505060145430906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115cb9085611f02565b60405190815260200160405180910390a36115e68183611e97565b91505b505b6001600160a01b03861660009081526016602052604090205461160f908290611e97565b6001600160a01b03808816600090815260166020526040808220939093559087168152205461163f908290611ed9565b6001600160a01b03808716600081815260166020526040902092909255601454908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168f9085611f02565b60405190815260200160405180910390a350600195945050505050565b6000804290506000606460135460026116c59190611f16565b6116cf9190611f02565b9050426004541015611700576001600755600354600480546000906116f5908490611ed9565b9091555061171d9050565b6001600760008282546117139190611ed9565b9091555050426008555b8060000361176b57817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60405180910390a26013549250505090565b806013546117799190611e97565b60135560055460045410611838576000196004556006805460ff1916905560025460ff166117a890600a612011565b6117b59062989680611f16565b60135560125460ff16156117ce576012805460ff191690555b60006117d930610da0565b111561182d57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561181a57600080fd5b505af192505050801561182b575060015b505b6000600c819055600d555b6013546118476009600a612011565b6118569064bebcfcb89e611f16565b61186290600019612020565b61186e90600019611e97565b6118789190611f02565b601455611883611b3c565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118ec576118ec611eaa565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e9190612034565b816001815181106119a1576119a1611eaa565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790611a06908590600090869030904290600401612051565b600060405180830381600087803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b5050600a546001600160a01b031691506108fc90506005611a56476004611f16565b611a609190611f02565b6040518115909202916000818181858888f19350505050158015611a88573d6000803e3d6000fd5b50600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610af1573d6000803e3d6000fd5b6001600160a01b038116611ad557600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60007f000000000000000000000000f1e0f665e3825d76020d11126cda385fed4fa1139050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b9c57600080fd5b505af1158015611bb0573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015611be457858101830151858201604001528201611bc8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cca57600080fd5b8035611c2581611c05565b919050565b60008060408385031215611c3d57600080fd5b8235611c4881611c05565b946020939093013593505050565b600060208284031215611c6857600080fd5b8135611c7381611c05565b9392505050565b600080600060608486031215611c8f57600080fd5b8335611c9a81611c05565b92506020840135611caa81611c05565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611ce457600080fd5b823567ffffffffffffffff80821115611cfc57600080fd5b818501915085601f830112611d1057600080fd5b813581811115611d2257611d22611cbb565b8060051b604051601f19603f83011681018181108582111715611d4757611d47611cbb565b604052918252848201925083810185019188831115611d6557600080fd5b938501935b82851015611d8a57611d7b85611c1a565b84529385019392850192611d6a565b98975050505050505050565b60008060408385031215611da957600080fd5b8235611db481611c05565b915060208301358015158114611dc957600080fd5b809150509250929050565b60008060408385031215611de757600080fd5b50508035926020909101359150565b60008060408385031215611e0957600080fd5b8235611e1481611c05565b91506020830135611dc981611c05565b600181811c90821680611e3857607f821691505b602082108103611e5857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108ef576108ef611e81565b634e487b7160e01b600052603260045260246000fd5b600060018201611ed257611ed2611e81565b5060010190565b808201808211156108ef576108ef611e81565b634e487b7160e01b600052601260045260246000fd5b600082611f1157611f11611eec565b500490565b80820281158282048414176108ef576108ef611e81565b600181815b80851115611f68578160001904821115611f4e57611f4e611e81565b80851615611f5b57918102915b93841c9390800290611f32565b509250929050565b600082611f7f575060016108ef565b81611f8c575060006108ef565b8160018114611fa25760028114611fac57611fc8565b60019150506108ef565b60ff841115611fbd57611fbd611e81565b50506001821b6108ef565b5060208310610133831016604e8410600b8410161715611feb575081810a6108ef565b611ff58383611f2d565b806000190482111561200957612009611e81565b029392505050565b6000611c7360ff841683611f70565b60008261202f5761202f611eec565b500690565b60006020828403121561204657600080fd5b8151611c7381611c05565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120a15784516001600160a01b03168352938301939183019160010161207c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9c12e2e16325910238ca161d3a31fa76567490694925e1427a0cfbd61e94c4564736f6c63430008110033

Deployed Bytecode Sourcemap

9256:11183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9748:29;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9748:29:0;;;;;;;;1333:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17178:215::-;;;;;;;;;;-1:-1:-1;17178:215:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;17178:215:0;1344:187:1;12270:102:0;;;;;;;;;;-1:-1:-1;12352:12:0;;12270:102;;20068:84;;;;;;;;;;-1:-1:-1;20068:84:0;;;;;:::i;:::-;;:::i;:::-;;15783:448;;;;;;;;;;-1:-1:-1;15783:448:0;;;;;:::i;:::-;;:::i;9613:24::-;;;;;;;;;;-1:-1:-1;9613:24:0;;;;-1:-1:-1;;;;;9613:24:0;;;;;;-1:-1:-1;;;;;2413:32:1;;;2395:51;;2383:2;2368:18;9613:24:0;2249:203:1;20160:239:0;;;;;;;;;;-1:-1:-1;20160:239:0;;;;;:::i;:::-;;:::i;1519:83::-;;;;;;;;;;-1:-1:-1;1585:9:0;;1519:83;;1585:9;;;;3857:36:1;;3845:2;3830:18;1519:83:0;3715:184:1;16804:366:0;;;;;;;;;;-1:-1:-1;16804:366:0;;;;;:::i;:::-;;:::i;9786:46::-;;;;;;;;;;-1:-1:-1;9786:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10386:33;;;;;;;;;;-1:-1:-1;10386:33:0;;;;;;;;;;;10227:27;;;;;;;;;;;;;;;18852:246;;;;;;;;;;;;;:::i;10346:33::-;;;;;;;;;;-1:-1:-1;10346:33:0;;;;;;;;13343:142;;;;;;;;;;-1:-1:-1;13343:142:0;;;;;:::i;:::-;;:::i;18586:109::-;;;;;;;;;;;;;:::i;12677:211::-;;;;;;;;;;;;;:::i;19106:377::-;;;;;;;;;;;;;:::i;12537:132::-;;;;;;;;;;-1:-1:-1;12537:132:0;;;;;:::i;:::-;;:::i;10075:18::-;;;;;;;;;;;;;:::i;2525:126::-;;;;;;;;;;;;;:::i;13493:159::-;;;;;;;;;;-1:-1:-1;13493:159:0;;;;;:::i;:::-;;:::i;13191:144::-;;;;;;;;;;;;;:::i;9311:40::-;;;;;;;;;;;;;;;;13660:372;;;;;;;;;;-1:-1:-1;13660:372:0;;;;;:::i;:::-;;:::i;18703:141::-;;;;;;;;;;;;;:::i;2336:79::-;;;;;;;;;;-1:-1:-1;2401:6:0;;;;;-1:-1:-1;;;;;2401:6:0;2336:79;;9423:29;;;;;;;;;;-1:-1:-1;9423:29:0;;;;;;;;10100:25;;;;;;;;;;;;;:::i;1424:87::-;;;;;;;;;;;;;:::i;9537:34::-;;;;;;;;;;;;;;;;16239:557;;;;;;;;;;-1:-1:-1;16239:557:0;;;;;:::i;:::-;;:::i;10304:29::-;;;;;;;;;;;;;;;13010:173;;;;;;;;;;-1:-1:-1;13010:173:0;;;;;:::i;:::-;;:::i;10132:24::-;;;;;;;;;;;;;:::i;9358:25::-;;;;;;;;;;;;;;;;9459:33;;;;;;;;;;-1:-1:-1;9459:33:0;;;;;;;;;;;9390:26;;;;;;;;;;;;;;;;12380:149;;;;;;;;;;-1:-1:-1;12380:149:0;;;;;:::i;:::-;-1:-1:-1;;;;;12490:22:0;;;12464:7;12490:22;;;:14;:22;;;;;;;;:31;;;;;;;;;;;;;12380:149;9499:31;;;;;;;;;;;;;;;;2659:109;;;;;;;;;;-1:-1:-1;2659:109:0;;;;;:::i;:::-;;:::i;9713:28::-;;;;;;;;;;;;;;;;10263:34;;;;;;;;;;;;;;;9580:24;;;;;;;;;;;;;;;;1333:83;1370:13;1403:5;1396:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:83;:::o;17178:215::-;17283:10;17252:4;17268:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17268:35:0;;;;;;;;;;:43;;;17327:36;17252:4;;17268:35;;17327:36;;;;17306:5;160:25:1;;148:2;133:18;;14:177;17327:36:0;;;;;;;;-1:-1:-1;17381:4:0;17178:215;;;;;:::o;20068:84::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;;;;;;;;;20131:9:::1;:13:::0;;-1:-1:-1;;;;;;20131:13:0::1;-1:-1:-1::0;;;;;20131:13:0;;;::::1;::::0;;;::::1;::::0;;20068:84::o;15783:448::-;15893:4;15880:2;-1:-1:-1;;;;;10770:18:0;;10762:27;;;;;;-1:-1:-1;;;;;15914:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;15935:10:::1;15914:32:::0;;;;;;;;-1:-1:-1;;15914:53:0::1;15910:251;;-1:-1:-1::0;;;;;15992:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16013:10:::1;15992:32:::0;;;;;;;;:41;-1:-1:-1;15992:41:0::1;15984:75;;;::::0;-1:-1:-1;;;15984:75:0;;6342:2:1;15984:75:0::1;::::0;::::1;6324:21:1::0;6381:2;6361:18;;;6354:30;-1:-1:-1;;;6400:18:1;;;6393:52;6462:18;;15984:75:0::1;6140:346:1::0;15984:75:0::1;-1:-1:-1::0;;;;;16109:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16130:10:::1;16109:32:::0;;;;;;;;:40:::1;::::0;16143:5;;16109:40:::1;:::i;:::-;-1:-1:-1::0;;;;;16074:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16095:10:::1;16074:32:::0;;;;;;;:75;15910:251:::1;16171:30;16185:4;16191:2;16195:5;16171:13;:30::i;:::-;-1:-1:-1::0;16219:4:0::1;::::0;15783:448;-1:-1:-1;;;;;15783:448:0:o;20160:239::-;20231:14;;20256:136;20279:7;:14;20275:1;:18;20256:136;;;20323:7;20331:1;20323:10;;;;;;;;:::i;:::-;;;;;;;20314:19;;20370:6;-1:-1:-1;;;;;20353:27:0;20362:6;-1:-1:-1;;;;;20353:27:0;;20378:1;20353:27;;;;160:25:1;;148:2;133:18;;14:177;20353:27:0;;;;;;;;20295:3;;;;:::i;:::-;;;;20256:136;;;;20220:179;20160:239;:::o;16804:366::-;16955:10;16886:4;16940:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16940:55:0;;;;;;;;;;:68;;16997:10;;16940:68;:::i;:::-;16917:10;16902:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16902:35:0;;;;;;;;;;;;:106;;;17024:116;160:25:1;;;16902:35:0;;17024:116;;133:18:1;17024:116:0;14:177:1;18852:246:0;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;18920:13:::1;::::0;::::1;::::0;::::1;;;18919:14;18911:42;;;::::0;-1:-1:-1;;;18911:42:0;;7550:2:1;18911:42:0::1;::::0;::::1;7532:21:1::0;7589:2;7569:18;;;7562:30;-1:-1:-1;;;7608:18:1;;;7601:45;7663:18;;18911:42:0::1;7348:339:1::0;18911:42:0::1;18995:15;::::0;18977:33:::1;::::0;:15:::1;:33;:::i;:::-;18964:10;:46:::0;19035:24:::1;:15;19053:6;19035:24;:::i;:::-;19021:11;:38:::0;19070:13:::1;:20:::0;;-1:-1:-1;;19070:20:0::1;;;::::0;;18852:246::o;13343:142::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13437:23:0;;;::::1;;::::0;;;:13:::1;:23;::::0;;;;:40;;-1:-1:-1;;13437:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13343:142::o;18586:109::-;18638:14;:12;:14::i;:::-;18630:38;;;;-1:-1:-1;;;18630:38:0;;7894:2:1;18630:38:0;;;7876:21:1;7933:2;7913:18;;;7906:30;-1:-1:-1;;;7952:18:1;;;7945:41;8003:18;;18630:38:0;7692:335:1;18630:38:0;18679:8;:6;:8::i;:::-;;18586:109::o;12677:211::-;12722:4;12760:15;12746:10;;:29;;:134;;;-1:-1:-1;12780:10:0;;;;:27;;;;-1:-1:-1;12794:13:0;;;;;;;12780:27;:52;;;;;12830:2;12811:16;;:21;12780:52;:99;;;;;12864:15;12836:19;;12858:2;12836:24;;;;:::i;:::-;:43;;12780:99;12739:141;;12677:211;:::o;19106:377::-;10868:6;:13;;-1:-1:-1;;10868:13:0;10877:4;10868:13;;;:6;19179:24:::1;19197:4;19179:9;:24::i;:::-;19153:50;;19217:15;19236:1;19217:20:::0;19214:57:::1;;19253:7;;;19214:57;19324:14;;19304:18;;:35;;;;:::i;:::-;:40;::::0;19342:2:::1;19304:40;:::i;:::-;19286:15;:58;19283:147;;;19398:14;;19378:18;;:35;;;;:::i;:::-;:40;::::0;19416:2:::1;19378:40;:::i;:::-;19360:58;;19283:147;19442:33;19459:15;19442:16;:33::i;:::-;19142:341;10892:1;10904:6:::0;:14;;-1:-1:-1;;10904:14:0;;;19106:377::o;12537:132::-;12646:14;;-1:-1:-1;;;;;12626:18:0;;12599:7;12626:18;;;:13;:18;;;;;;12599:7;;12626:35;;;:::i;10075:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2525:126::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;2606:6:::1;::::0;2587:26:::1;::::0;2606:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;2606:6:0::1;::::0;2587:26:::1;::::0;;;::::1;2624:6;:19:::0;;-1:-1:-1;;;;;;2624:19:0::1;::::0;;2525:126::o;13493:159::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13574:22:0;::::1;13566:47;;;::::0;-1:-1:-1;;;13566:47:0;;8664:2:1;13566:47:0::1;::::0;::::1;8646:21:1::0;8703:2;8683:18;;;8676:30;-1:-1:-1;;;8722:18:1;;;8715:42;8774:18;;13566:47:0::1;8462:336:1::0;13566:47:0::1;13624:9;:20:::0;;-1:-1:-1;;;;;;13624:20:0::1;-1:-1:-1::0;;;;;13624:20:0;;;::::1;::::0;;;::::1;::::0;;13493:159::o;13191:144::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;13253:14:::1;::::0;::::1;;13245:49;;;::::0;-1:-1:-1;;;13245:49:0;;9005:2:1;13245:49:0::1;::::0;::::1;8987:21:1::0;9044:2;9024:18;;;9017:30;-1:-1:-1;;;9063:18:1;;;9056:52;9125:18;;13245:49:0::1;8803:346:1::0;13245:49:0::1;13305:14;:22:::0;;-1:-1:-1;;13305:22:0::1;::::0;;13191:144::o;13660:372::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;13791:13:::1;;13773:14;:31;;:55;;;;13826:2;13808:14;:20;;13773:55;13765:80;;;::::0;-1:-1:-1;;;13765:80:0;;9356:2:1;13765:80:0::1;::::0;::::1;9338:21:1::0;9395:2;9375:18;;;9368:30;-1:-1:-1;;;9414:18:1;;;9407:42;9466:18;;13765:80:0::1;9154:336:1::0;13765:80:0::1;13883:14;;13864:15;:33;;:59;;;;13921:2;13902:15;:21;;13864:59;13856:84;;;::::0;-1:-1:-1;;;13856:84:0;;9356:2:1;13856:84:0::1;::::0;::::1;9338:21:1::0;9395:2;9375:18;;;9368:30;-1:-1:-1;;;9414:18:1;;;9407:42;9466:18;;13856:84:0::1;9154:336:1::0;13856:84:0::1;13951:13;:30:::0;;;;13992:14:::1;:32:::0;13660:372::o;18703:141::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;18767:13:::1;::::0;::::1;::::0;::::1;;;18766:14;18758:47;;;::::0;-1:-1:-1;;;18758:47:0;;9697:2:1;18758:47:0::1;::::0;::::1;9679:21:1::0;9736:2;9716:18;;;9709:30;-1:-1:-1;;;9755:18:1;;;9748:50;9815:18;;18758:47:0::1;9495:344:1::0;18758:47:0::1;18816:13;:20:::0;;-1:-1:-1;;18816:20:0::1;;;::::0;;18703:141::o;10100:25::-;;;;;;;:::i;1424:87::-;1463:13;1496:7;1489:14;;;;;:::i;16239:557::-;16376:10;16326:4;16361:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16361:35:0;;;;;;;;;;16411:27;;;16407:228;;16470:10;16493:1;16455:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16455:35:0;;;;;;;;;:39;16407:228;;;16565:58;16593:15;16565:8;:58;:::i;:::-;16542:10;16527:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16527:35:0;;;;;;;;;:96;16407:228;16673:10;16720:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16650:116:0;;16720:35;;;;;;;;;;;16650:116;;160:25:1;;;16650:116:0;;16673:10;16650:116;;133:18:1;16650:116:0;;;;;;;-1:-1:-1;16784:4:0;;16239:557;-1:-1:-1;;;16239:557:0:o;13010:173::-;13101:4;13088:2;-1:-1:-1;;;;;10770:18:0;;10762:27;;;;;;13117:36:::1;13131:10;13143:2;13147:5;13117:13;:36::i;:::-;-1:-1:-1::0;13171:4:0::1;::::0;13010:173;-1:-1:-1;;;;13010:173:0:o;10132:24::-;;;;;;;:::i;2659:109::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;2732:28:::1;2751:8;2732:18;:28::i;14040:1735::-:0;14215:14;;14132:4;;14171;;14132;;14207:23;;:6;:23;:::i;:::-;14246:10;;14186:44;;-1:-1:-1;14246:10:0;;:21;;;;-1:-1:-1;14261:6:0;;;;14260:7;14246:21;:47;;;;-1:-1:-1;;;;;;14272:21:0;;;;;;:13;:21;;;;;;;;14271:22;14246:47;:76;;;;-1:-1:-1;;;;;;14298:24:0;;;;;;:13;:24;;;;;;;;14297:25;14246:76;14243:1281;;;14346:13;;;;;;;14338:42;;;;-1:-1:-1;;;14338:42:0;;10046:2:1;14338:42:0;;;10028:21:1;10085:2;10065:18;;;10058:30;-1:-1:-1;;;10104:18:1;;;10097:46;10160:18;;14338:42:0;9844:340:1;14338:42:0;14398:14;;;;14395:198;;;14449:11;-1:-1:-1;;;;;14436:24:0;:9;-1:-1:-1;;;;;14436:24:0;;14432:146;;14525:9;;14515:6;14492:20;14502:9;14492;:20::i;:::-;:29;;;;:::i;:::-;:42;;14484:74;;;;-1:-1:-1;;;14484:74:0;;10391:2:1;14484:74:0;;;10373:21:1;10430:2;10410:18;;;10403:30;-1:-1:-1;;;10449:18:1;;;10442:49;10508:18;;14484:74:0;10189:343:1;14484:74:0;14625:11;-1:-1:-1;;;;;14612:24:0;:9;-1:-1:-1;;;;;14612:24:0;;14609:288;;14707:14;;14687:18;;:35;;;;:::i;:::-;14659:24;14677:4;14659:9;:24::i;:::-;:63;14656:139;;14750:4;-1:-1:-1;;;;;14750:13:0;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14746:30;;14816:14;:12;:14::i;:::-;14813:69;;;14854:8;:6;:8::i;:::-;;14813:69;14913:21;14964:11;-1:-1:-1;;;;;14954:21:0;:6;-1:-1:-1;;;;;14954:21:0;;14951:241;;15040:3;15024:13;;15011:10;:26;;;;:::i;:::-;:32;;;;:::i;:::-;14995:48;;14951:241;;;15095:11;-1:-1:-1;;;;;15082:24:0;:9;-1:-1:-1;;;;;15082:24:0;;15078:114;;15173:3;15156:14;;15143:10;:27;;;;:::i;:::-;:33;;;;:::i;:::-;15127:49;;15078:114;15211:17;;15208:291;;-1:-1:-1;;;;;15248:21:0;;;;;;:13;:21;;;;;:38;;15273:13;;15248:21;:38;;15273:13;;15248:38;:::i;:::-;;;;-1:-1:-1;;15327:4:0;15305:28;;;;:13;:28;;;;;:45;;15337:13;;15305:28;:45;;15337:13;;15305:45;:::i;:::-;;;;-1:-1:-1;;15422:14:0;;15399:4;;-1:-1:-1;;;;;15374:63:0;;;;;15406:30;;:13;:30;:::i;:::-;15374:63;;160:25:1;;;148:2;133:18;15374:63:0;;;;;;;15456:27;15470:13;15456:27;;:::i;:::-;;;15208:291;14323:1201;14243:1281;-1:-1:-1;;;;;15560:21:0;;;;;;:13;:21;;;;;;:34;;15583:10;;15560:34;:::i;:::-;-1:-1:-1;;;;;15536:21:0;;;;;;;:13;:21;;;;;;:58;;;;15632:24;;;;;;;:37;;15658:10;;15632:37;:::i;:::-;-1:-1:-1;;;;;15605:24:0;;;;;;;:13;:24;;;;;:64;;;;15727:14;;15687:56;;;;;;15715:27;;:10;:27;:::i;:::-;15687:56;;160:25:1;;;148:2;133:18;15687:56:0;;;;;;;-1:-1:-1;15763:4:0;;14040:1735;-1:-1:-1;;;;;14040:1735:0:o;17401:1177::-;17437:7;17457:12;17472:15;17457:30;;17500:19;17541:3;17522:12;;17537:1;17522:16;;;;:::i;:::-;:22;;;;:::i;:::-;17500:44;;17571:15;17558:10;;:28;17555:229;;;17621:1;17602:16;:20;17651:15;;17637:10;:29;;:10;;:29;;17651:15;;17637:29;:::i;:::-;;;;-1:-1:-1;17555:229:0;;-1:-1:-1;17555:229:0;;17719:1;17699:16;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;17757:15:0;17735:19;:37;17555:229;17800:11;17815:1;17800:16;17796:114;;17845:4;17838:26;17851:12;;17838:26;;;;160:25:1;;148:2;133:18;;14:177;17838:26:0;;;;;;;;17886:12;;17879:19;;;;17401:1177;:::o;17796:114::-;17950:11;17937:12;;:24;;;;:::i;:::-;17922:12;:39;17992:11;;17978:10;;:25;17974:446;;-1:-1:-1;;18020:10:0;:30;18065:10;:18;;-1:-1:-1;;18065:18:0;;;1585:9;;;;18121:16;;:2;:16;:::i;:::-;18113:25;;:4;:25;:::i;:::-;18098:12;:40;18158:14;;;;18155:75;;;18192:14;:22;;-1:-1:-1;;18192:22:0;;;18155:75;18276:1;18249:24;18267:4;18249:9;:24::i;:::-;:28;18246:96;;;18301:4;-1:-1:-1;;;;;18301:13:0;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18297:30;;18374:1;18358:13;:17;;;18390:14;:18;17974:446;18462:12;;9947;9875:1;9947:2;:12;:::i;:::-;9932:27;;:12;:27;:::i;:::-;10026:41;;-1:-1:-1;;10026:41:0;:::i;:::-;10005:63;;-1:-1:-1;;10005:63:0;:::i;:::-;18449:26;;;;:::i;:::-;18432:14;:43;18488:8;:6;:8::i;:::-;18521:4;18514:26;18527:12;;18514:26;;;;160:25:1;;148:2;133:18;;14:177;19491:569:0;19582:16;;;19596:1;19582:16;;;;;;;;19558:21;;19582:16;;;;;;;;;;-1:-1:-1;19582:16:0;19558:40;;19627:4;19609;19614:1;19609:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19609:23:0;;;-1:-1:-1;;;;;19609:23:0;;;;;19661:6;-1:-1:-1;;;;;19661:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19643:4;19648:1;19643:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19643:32:0;;;:7;;;;;;;;;:32;19714:208;;-1:-1:-1;;;19714:208:0;;:6;:57;;;;;;:208;;19786:11;;19812:1;;19849:4;;19876;;19896:15;;19714:208;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19941:9:0;;-1:-1:-1;;;;;19941:9:0;;-1:-1:-1;19933:58:0;;-1:-1:-1;19989:1:0;19961:25;:21;19985:1;19961:25;:::i;:::-;:29;;;;:::i;:::-;19933:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20010:9:0;;20002:50;;-1:-1:-1;;;;;20010:9:0;;;;20030:21;20002:50;;;;;20010:9;20002:50;20010:9;20002:50;20030:21;20010:9;20002:50;;;;;;;;;;;;;;;;;;;2776:187;-1:-1:-1;;;;;2850:22:0;;2842:31;;;;;;2910:6;;2889:38;;-1:-1:-1;;;;;2889:38:0;;;;2910:6;;;;;2889:38;;;;;2938:6;:17;;-1:-1:-1;;;;;2938:17:0;;;;;-1:-1:-1;;;;;;2938:17:0;;;;;;;;;2776:187::o;12896:106::-;12934:17;12966:4;12934:37;;12982:5;-1:-1:-1;;;;;12982:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12923:79;12896:106::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:247::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;1703:9;1690:23;1722:31;1747:5;1722:31;:::i;:::-;1772:5;1536:247;-1:-1:-1;;;1536:247:1:o;1788:456::-;1865:6;1873;1881;1934:2;1922:9;1913:7;1909:23;1905:32;1902:52;;;1950:1;1947;1940:12;1902:52;1989:9;1976:23;2008:31;2033:5;2008:31;:::i;:::-;2058:5;-1:-1:-1;2115:2:1;2100:18;;2087:32;2128:33;2087:32;2128:33;:::i;:::-;1788:456;;2180:7;;-1:-1:-1;;;2234:2:1;2219:18;;;;2206:32;;1788:456::o;2457:127::-;2518:10;2513:3;2509:20;2506:1;2499:31;2549:4;2546:1;2539:15;2573:4;2570:1;2563:15;2589:1121;2673:6;2704:2;2747;2735:9;2726:7;2722:23;2718:32;2715:52;;;2763:1;2760;2753:12;2715:52;2803:9;2790:23;2832:18;2873:2;2865:6;2862:14;2859:34;;;2889:1;2886;2879:12;2859:34;2927:6;2916:9;2912:22;2902:32;;2972:7;2965:4;2961:2;2957:13;2953:27;2943:55;;2994:1;2991;2984:12;2943:55;3030:2;3017:16;3052:2;3048;3045:10;3042:36;;;3058:18;;:::i;:::-;3104:2;3101:1;3097:10;3136:2;3130:9;3199:2;3195:7;3190:2;3186;3182:11;3178:25;3170:6;3166:38;3254:6;3242:10;3239:22;3234:2;3222:10;3219:18;3216:46;3213:72;;;3265:18;;:::i;:::-;3301:2;3294:22;3351:18;;;3385:15;;;;-1:-1:-1;3427:11:1;;;3423:20;;;3455:19;;;3452:39;;;3487:1;3484;3477:12;3452:39;3511:11;;;;3531:148;3547:6;3542:3;3539:15;3531:148;;;3613:23;3632:3;3613:23;:::i;:::-;3601:36;;3564:12;;;;3657;;;;3531:148;;;3698:6;2589:1121;-1:-1:-1;;;;;;;;2589:1121:1:o;4125:416::-;4190:6;4198;4251:2;4239:9;4230:7;4226:23;4222:32;4219:52;;;4267:1;4264;4257:12;4219:52;4306:9;4293:23;4325:31;4350:5;4325:31;:::i;:::-;4375:5;-1:-1:-1;4432:2:1;4417:18;;4404:32;4474:15;;4467:23;4455:36;;4445:64;;4505:1;4502;4495:12;4445:64;4528:7;4518:17;;;4125:416;;;;;:::o;4546:248::-;4614:6;4622;4675:2;4663:9;4654:7;4650:23;4646:32;4643:52;;;4691:1;4688;4681:12;4643:52;-1:-1:-1;;4714:23:1;;;4784:2;4769:18;;;4756:32;;-1:-1:-1;4546:248:1:o;4799:388::-;4867:6;4875;4928:2;4916:9;4907:7;4903:23;4899:32;4896:52;;;4944:1;4941;4934:12;4896:52;4983:9;4970:23;5002:31;5027:5;5002:31;:::i;:::-;5052:5;-1:-1:-1;5109:2:1;5094:18;;5081:32;5122:33;5081:32;5122:33;:::i;5418:380::-;5497:1;5493:12;;;;5540;;;5561:61;;5615:4;5607:6;5603:17;5593:27;;5561:61;5668:2;5660:6;5657:14;5637:18;5634:38;5631:161;;5714:10;5709:3;5705:20;5702:1;5695:31;5749:4;5746:1;5739:15;5777:4;5774:1;5767:15;5631:161;;5418:380;;;:::o;5803:332::-;6005:2;5987:21;;;6044:1;6024:18;;;6017:29;-1:-1:-1;;;6077:2:1;6062:18;;6055:39;6126:2;6111:18;;5803:332::o;6491:127::-;6552:10;6547:3;6543:20;6540:1;6533:31;6583:4;6580:1;6573:15;6607:4;6604:1;6597:15;6623:128;6690:9;;;6711:11;;;6708:37;;;6725:18;;:::i;6756:127::-;6817:10;6812:3;6808:20;6805:1;6798:31;6848:4;6845:1;6838:15;6872:4;6869:1;6862:15;7078:135;7117:3;7138:17;;;7135:43;;7158:18;;:::i;:::-;-1:-1:-1;7205:1:1;7194:13;;7078:135::o;7218:125::-;7283:9;;;7304:10;;;7301:36;;;7317:18;;:::i;8032:127::-;8093:10;8088:3;8084:20;8081:1;8074:31;8124:4;8121:1;8114:15;8148:4;8145:1;8138:15;8164:120;8204:1;8230;8220:35;;8235:18;;:::i;:::-;-1:-1:-1;8269:9:1;;8164:120::o;8289:168::-;8362:9;;;8393;;8410:15;;;8404:22;;8390:37;8380:71;;8431:18;;:::i;10537:422::-;10626:1;10669:5;10626:1;10683:270;10704:7;10694:8;10691:21;10683:270;;;10763:4;10759:1;10755:6;10751:17;10745:4;10742:27;10739:53;;;10772:18;;:::i;:::-;10822:7;10812:8;10808:22;10805:55;;;10842:16;;;;10805:55;10921:22;;;;10881:15;;;;10683:270;;;10687:3;10537:422;;;;;:::o;10964:806::-;11013:5;11043:8;11033:80;;-1:-1:-1;11084:1:1;11098:5;;11033:80;11132:4;11122:76;;-1:-1:-1;11169:1:1;11183:5;;11122:76;11214:4;11232:1;11227:59;;;;11300:1;11295:130;;;;11207:218;;11227:59;11257:1;11248:10;;11271:5;;;11295:130;11332:3;11322:8;11319:17;11316:43;;;11339:18;;:::i;:::-;-1:-1:-1;;11395:1:1;11381:16;;11410:5;;11207:218;;11509:2;11499:8;11496:16;11490:3;11484:4;11481:13;11477:36;11471:2;11461:8;11458:16;11453:2;11447:4;11444:12;11440:35;11437:77;11434:159;;;-1:-1:-1;11546:19:1;;;11578:5;;11434:159;11625:34;11650:8;11644:4;11625:34;:::i;:::-;11695:6;11691:1;11687:6;11683:19;11674:7;11671:32;11668:58;;;11706:18;;:::i;:::-;11744:20;;10964:806;-1:-1:-1;;;10964:806:1:o;11775:140::-;11833:5;11862:47;11903:4;11893:8;11889:19;11883:4;11862:47;:::i;11920:112::-;11952:1;11978;11968:35;;11983:18;;:::i;:::-;-1:-1:-1;12017:9:1;;11920:112::o;12037:251::-;12107:6;12160:2;12148:9;12139:7;12135:23;12131:32;12128:52;;;12176:1;12173;12166:12;12128:52;12208:9;12202:16;12227:31;12252:5;12227:31;:::i;12293:980::-;12555:4;12603:3;12592:9;12588:19;12634:6;12623:9;12616:25;12660:2;12698:6;12693:2;12682:9;12678:18;12671:34;12741:3;12736:2;12725:9;12721:18;12714:31;12765:6;12800;12794:13;12831:6;12823;12816:22;12869:3;12858:9;12854:19;12847:26;;12908:2;12900:6;12896:15;12882:29;;12929:1;12939:195;12953:6;12950:1;12947:13;12939:195;;;13018:13;;-1:-1:-1;;;;;13014:39:1;13002:52;;13109:15;;;;13074:12;;;;13050:1;12968:9;12939:195;;;-1:-1:-1;;;;;;;13190:32:1;;;;13185:2;13170:18;;13163:60;-1:-1:-1;;;13254:3:1;13239:19;13232:35;13151:3;12293:980;-1:-1:-1;;;12293:980:1:o

Swarm Source

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