ETH Price: $3,698.21 (+2.90%)

Token

Pax Unitas (PAXU)
 

Overview

Max Total Supply

650,000,000,000 PAXU

Holders

1,371

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: PAXU
Balance
185,991,648,092.212831946059620222 PAXU

Value
$0.00
0xa9c00d741b2bd8cb5e57e70cfc8316c87f7c9b47
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:
PaxUnitas

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-14
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

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

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function setLpPair(address pair, bool enabled) external;
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setProtections(bool _as, bool _ab) external;
    function removeSniper(address account) external;
}

contract PaxUnitas is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromLimits;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 650_000_000_000;
    string constant private _name = "Pax Unitas";
    string constant private _symbol = "PAXU";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        originalDeployer = msg.sender;
        
        _liquidityHolders[_owner] = true;
        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

    address public originalDeployer;
    address public operator;

    // Function to set an operator to allow someone other the deployer to create things such as launchpads.
    // Only callable by original deployer.
    function setOperator(address newOperator) public {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        address oldOperator = operator;
        if (oldOperator != address(0)) {
            _liquidityHolders[oldOperator] = false;
        }
        operator = newOperator;
        _liquidityHolders[newOperator] = true;
    }

    function renounceOriginalDeployer() external {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        setOperator(address(0));
        originalDeployer = address(0);
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; }
    function decimals() external pure override returns (uint8) { if (_tTotal == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

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

        return _transfer(sender, recipient, amount);
    }

    function setInitializer(address _initializer) public onlyOwner {
        require(!tradingEnabled);
        require(_initializer != address(this), "Can't be self.");
        initializer = Initializer(_initializer);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[constructorLP] = true;
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function removeSniper(address account) external onlyOwner {
        initializer.removeSniper(account);
    }

    function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner {
        initializer.setProtections(_antiSnipe, _antiBlock);
    }

    function excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) 
                && presale != address(this) 
                && lpPair != router 
                && lpPair != presale, "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
        }
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
        }

        return finalizeTransfer(from, to, amount, other);
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            } else {
                _liquidityHolders[from] = true;
                _hasLiqBeenAdded = true;
            }
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        tradingEnabled = true;
        allowedPresaleExclusion = false;
    }

    function sweepBalance() external onlyOwner {
        payable(_owner).transfer(address(this).balance);
    }
    
    function sweepExternalTokens(address token) external onlyOwner {
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool other) internal returns (bool) {
        if (_hasLimits(from, to)) { bool checked;
            try initializer.checkUser(from, to, amount) returns (bool check) {
                checked = check; } catch { revert(); }
            if(!checked) { revert(); }
        }
        _tOwned[from] -= amount;
        _tOwned[to] += amount;
        emit Transfer(from, to, amount);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060409081526000600281905560078054600160ff1991821681179092556008805461ffff60a01b19169055600a8054336001600160a01b031991821681178355600b80549092168117909155845260046020529390922080549092161790556200006e9060129062000212565b6200007f9064975704e4006200022a565b600a80546001600160a01b0390811660009081526020819052604081209390935581541691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620000d59060129062000212565b620000e69064975704e4006200022a565b60405190815260200160405180910390a362000244565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000154578160001904821115620001385762000138620000fd565b808516156200014657918102915b93841c939080029062000118565b509250929050565b6000826200016d575060016200020c565b816200017c575060006200020c565b8160018114620001955760028114620001a057620001c0565b60019150506200020c565b60ff841115620001b457620001b4620000fd565b50506001821b6200020c565b5060208310610133831016604e8410600b8410161715620001e5575081810a6200020c565b620001f1838362000113565b8060001904821115620002085762000208620000fd565b0290505b92915050565b60006200022360ff8416836200015c565b9392505050565b80820281158282048414176200020c576200020c620000fd565b6124b780620002546000396000f3fe6080604052600436106101fd5760003560e01c80634fb2e45d1161010d5780638a63bd9b116100a0578063ab558e4d1161006f578063ab558e4d146105fe578063b3ab15fb1461061e578063c3513f6d1461063e578063dd62ed3e14610653578063feadde9c1461069957600080fd5b80638a63bd9b146105875780638a8c523c1461059c57806395d89b41146105b1578063a9059cbb146105de57600080fd5b806370a08231116100dc57806370a08231146104fe578063715018a61461053457806381cf58a914610549578063893d20e81461056957600080fd5b80634fb2e45d1461047d57806350a8e0161461049d578063570ca735146104be5780635c24b074146104de57600080fd5b806318160ddd11610190578063313ce5671161015f578063313ce567146103e057806333251a0b1461040757806339a0590214610427578063452ed4f11461043c5780634ada218b1461045c57600080fd5b806318160ddd1461036857806323b872dd1461038b5780632610eaca146103ab5780632b112e49146103cb57600080fd5b806307dd79e0116101cc57806307dd79e0146102c0578063095ea7b3146102ef5780630dcbcf1c1461030f57806313b4a7f41461034857600080fd5b806303fd2a4514610209578063044df7261461023c57806306fdde031461025e5780630758d9241461029a57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025c610257366004611f95565b6106b9565b005b34801561026a57600080fd5b5060408051808201909152600a81526950617820556e6974617360b01b60208201525b6040516102339190611fce565b3480156102a657600080fd5b5060075461021f906201000090046001600160a01b031681565b3480156102cc57600080fd5b506007546102df90610100900460ff1681565b6040519015158152602001610233565b3480156102fb57600080fd5b506102df61030a366004612031565b610777565b34801561031b57600080fd5b506102df61032a36600461205d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561035457600080fd5b5061025c61036336600461207a565b61078e565b34801561037457600080fd5b5061037d6108f8565b604051908152602001610233565b34801561039757600080fd5b506102df6103a63660046120a8565b610941565b3480156103b757600080fd5b5061025c6103c63660046121bf565b6109b9565b3480156103d757600080fd5b5061037d610b71565b3480156103ec57600080fd5b506103f5610bf0565b60405160ff9091168152602001610233565b34801561041357600080fd5b5061025c61042236600461205d565b610c1f565b34801561043357600080fd5b5061025c610ccf565b34801561044857600080fd5b5060085461021f906001600160a01b031681565b34801561046857600080fd5b506008546102df90600160a01b900460ff1681565b34801561048957600080fd5b5061025c61049836600461205d565b610d56565b3480156104a957600080fd5b506008546102df90600160a81b900460ff1681565b3480156104ca57600080fd5b50600c5461021f906001600160a01b031681565b3480156104ea57600080fd5b5061025c6104f936600461205d565b610f3c565b34801561050a57600080fd5b5061037d61051936600461205d565b6001600160a01b031660009081526020819052604090205490565b34801561054057600080fd5b5061025c611118565b34801561055557600080fd5b50600b5461021f906001600160a01b031681565b34801561057557600080fd5b50600a546001600160a01b031661021f565b34801561059357600080fd5b506102df611233565b3480156105a857600080fd5b5061025c6112aa565b3480156105bd57600080fd5b506040805180820190915260048152635041585560e01b602082015261028d565b3480156105ea57600080fd5b506102df6105f9366004612031565b61146b565b34801561060a57600080fd5b5061025c61061936600461205d565b611482565b34801561062a57600080fd5b5061025c61063936600461205d565b6115d2565b34801561064a57600080fd5b5061025c6116ab565b34801561065f57600080fd5b5061037d61066e36600461207a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106a557600080fd5b5061025c6106b4366004612281565b611732565b600a546001600160a01b0316331461070c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60095460405163efbdbabd60e01b8152831515600482015282151560248201526001600160a01b039091169063efbdbabd90604401600060405180830381600087803b15801561075b57600080fd5b505af115801561076f573d6000803e3d6000fd5b505050505050565b60006107843384846117ab565b5060015b92915050565b600a546001600160a01b031633146107dc5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b60075460ff166107eb57600080fd5b6001600160a01b038216301480159061080d57506001600160a01b0381163014155b801561082757506008546001600160a01b03838116911614155b801561084157506008546001600160a01b03828116911614155b61087b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610703565b806001600160a01b0316826001600160a01b0316036108bb576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b60006109066012600a612399565b6109159064975704e4006123a8565b60000361092157600080fd5b61092d6012600a612399565b61093c9064975704e4006123a8565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146109a6576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906109a09084906123bf565b90915550505b6109b18484846118a4565b949350505050565b600a546001600160a01b03163314610a075760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b8051825114610a585760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610703565b60005b82518161ffff161015610b6c57610a746012600a612399565b828261ffff1681518110610a8a57610a8a6123d2565b6020026020010151610a9c91906123a8565b336000908152602081905260409020541015610afa5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610703565b610b5933848361ffff1681518110610b1457610b146123d2565b60200260200101516012600a610b2a9190612399565b858561ffff1681518110610b4057610b406123d2565b6020026020010151610b5291906123a8565b6001611b53565b5080610b64816123e8565b915050610a5b565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610bcb9190612409565b610bd76012600a612399565b610be69064975704e4006123a8565b61093c91906123bf565b6000610bfe6012600a612399565b610c0d9064975704e4006123a8565b600003610c1957600080fd5b50601290565b600a546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6009546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b158015610cb457600080fd5b505af1158015610cc8573d6000803e3d6000fd5b5050505050565b600b546001600160a01b03163314610d3a5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610703565b610d4460006115d2565b600b80546001600160a01b0319169055565b600a546001600160a01b03163314610da45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6001600160a01b038116610e205760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610703565b61deac196001600160a01b03821601610ea15760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610703565b600a546001600160a01b031660009081526020819052604090205415610eea57600a546001600160a01b0316600081815260208190526040902054610ee891908390610b52565b505b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b03163314610f8a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600854600160a01b900460ff1615610fa157600080fd5b306001600160a01b03821603610ff95760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610703565b600980546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301816000875af192505050801561106d575060408051601f3d908101601f1916820190925261106a9181019061241c565b60015b61107657600080fd5b6007805475ffffffffffffffffffffffffffffffffffffffff00001916620100006001600160a01b038581168202929092178355600880546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055600a5492546110f593831692919004166000196117ab565b600754610b6c9030906201000090046001600160a01b03166000196117ab565b50565b600a546001600160a01b031633146111665760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600854600160a01b900460ff166111e55760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610703565b600a80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600a546000906001600160a01b031633146112845760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6007546112a49030906201000090046001600160a01b03166000196117ab565b50600190565b600a546001600160a01b031633146112f85760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600854600160a01b900460ff16156113525760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610703565b600854600160a81b900460ff166113ab5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610703565b6009546001600160a01b03166113ce57600980546001600160a01b031916301790555b600954600854604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152911690636c115c3490608401600060405180830381600087803b15801561143a57600080fd5b505af192505050801561144b575060015b506008805460ff60a01b1916600160a01b1790556007805460ff19169055565b60006114783384846118a4565b5060019392505050565b600a546001600160a01b031633146114d05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600a546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b919061244b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156115ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190612464565b600b546001600160a01b0316331461163d5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610703565b600c546001600160a01b03168015611670576001600160a01b0381166000908152600460205260409020805460ff191690555b50600c80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b600a546001600160a01b031633146116f95760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611115573d6000803e3d6000fd5b600a546001600160a01b031633146117805760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166117f75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610703565b6001600160a01b0382166118435760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610703565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661190a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610703565b6001600160a01b03831661196c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610703565b600082116119ce5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610703565b6001600160a01b0384166000908152600160205260408120548190819060ff16156119fc5760019250611a2a565b6001600160a01b03861660009081526001602052604090205460ff1615611a265760019150611a2a565b5060015b611a348787611d8d565b15611b3c57600854600160a01b900460ff16611b3c5780611a975760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610703565b6001600160a01b03871660009081526005602052604090205460ff16158015611ad957506001600160a01b03861660009081526005602052604090205460ff16155b15611b3c5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610703565b611b4887878784611b53565b979650505050505050565b6000611b5f8585611d8d565b15611bf35760095460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092169063ecd07a53906064016020604051808303816000875af1925050508015611bdc575060408051601f3d908101601f19168201909252611bd991810190612464565b60015b611be557600080fd5b905080611bf157600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611c1b9084906123bf565b90915550506001600160a01b03841660009081526020819052604081208054859290611c48908490612409565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c9491815260200190565b60405180910390a3600854600160a81b900460ff16611d8257611cb78585611e98565b600854600160a81b900460ff16158015611cd65750611cd68585611d8d565b8015611cfb57506001600160a01b03851660009081526005602052604090205460ff16155b8015611d2057506001600160a01b03841660009081526005602052604090205460ff16155b8015611d2a575081155b15611d825760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610703565b506001949350505050565b600a546000906001600160a01b03848116911614801590611dbc5750600a546001600160a01b03838116911614155b8015611dd35750600a546001600160a01b03163214155b8015611df857506001600160a01b03821660009081526004602052604090205460ff16155b8015611e1d57506001600160a01b03831660009081526004602052604090205460ff16155b8015611e3457506001600160a01b03821661dead14155b8015611e4857506001600160a01b03821615155b8015611e5d57506001600160a01b0383163014155b8015611e7757506009546001600160a01b03848116911614155b8015611e9157506009546001600160a01b03838116911614155b9392505050565b600854600160a81b900460ff1615611efe5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610703565b611f088282611d8d565b158015611f2257506008546001600160a01b038281169116145b156108f4576009546001600160a01b0316611f4d57600980546001600160a01b031916301790555050565b6001600160a01b0382166000908152600460205260409020805460ff191660011790556008805460ff60a81b1916600160a81b1790555050565b801515811461111557600080fd5b60008060408385031215611fa857600080fd5b8235611fb381611f87565b91506020830135611fc381611f87565b809150509250929050565b600060208083528351808285015260005b81811015611ffb57858101830151858201604001528201611fdf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461111557600080fd5b6000806040838503121561204457600080fd5b823561204f8161201c565b946020939093013593505050565b60006020828403121561206f57600080fd5b8135611e918161201c565b6000806040838503121561208d57600080fd5b82356120988161201c565b91506020830135611fc38161201c565b6000806000606084860312156120bd57600080fd5b83356120c88161201c565b925060208401356120d88161201c565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612128576121286120e9565b604052919050565b600067ffffffffffffffff82111561214a5761214a6120e9565b5060051b60200190565b600082601f83011261216557600080fd5b8135602061217a61217583612130565b6120ff565b82815260059290921b8401810191818101908684111561219957600080fd5b8286015b848110156121b4578035835291830191830161219d565b509695505050505050565b600080604083850312156121d257600080fd5b823567ffffffffffffffff808211156121ea57600080fd5b818501915085601f8301126121fe57600080fd5b8135602061220e61217583612130565b82815260059290921b8401810191818101908984111561222d57600080fd5b948201945b838610156122545785356122458161201c565b82529482019490820190612232565b9650508601359250508082111561226a57600080fd5b5061227785828601612154565b9150509250929050565b6000806040838503121561229457600080fd5b8235611fb38161201c565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156122f05781600019048211156122d6576122d661229f565b808516156122e357918102915b93841c93908002906122ba565b509250929050565b60008261230757506001610788565b8161231457506000610788565b816001811461232a576002811461233457612350565b6001915050610788565b60ff8411156123455761234561229f565b50506001821b610788565b5060208310610133831016604e8410600b8410161715612373575081810a610788565b61237d83836122b5565b80600019048211156123915761239161229f565b029392505050565b6000611e9160ff8416836122f8565b80820281158282048414176107885761078861229f565b818103818111156107885761078861229f565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036123ff576123ff61229f565b6001019392505050565b808201808211156107885761078861229f565b6000806040838503121561242f57600080fd5b825161243a8161201c565b6020840151909250611fc38161201c565b60006020828403121561245d57600080fd5b5051919050565b60006020828403121561247657600080fd5b8151611e9181611f8756fea2646970667358221220f3ceed72a411f67d5c710121a955d9df9dc91a6fdf0e46ffbc6601d41ae4abee64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80634fb2e45d1161010d5780638a63bd9b116100a0578063ab558e4d1161006f578063ab558e4d146105fe578063b3ab15fb1461061e578063c3513f6d1461063e578063dd62ed3e14610653578063feadde9c1461069957600080fd5b80638a63bd9b146105875780638a8c523c1461059c57806395d89b41146105b1578063a9059cbb146105de57600080fd5b806370a08231116100dc57806370a08231146104fe578063715018a61461053457806381cf58a914610549578063893d20e81461056957600080fd5b80634fb2e45d1461047d57806350a8e0161461049d578063570ca735146104be5780635c24b074146104de57600080fd5b806318160ddd11610190578063313ce5671161015f578063313ce567146103e057806333251a0b1461040757806339a0590214610427578063452ed4f11461043c5780634ada218b1461045c57600080fd5b806318160ddd1461036857806323b872dd1461038b5780632610eaca146103ab5780632b112e49146103cb57600080fd5b806307dd79e0116101cc57806307dd79e0146102c0578063095ea7b3146102ef5780630dcbcf1c1461030f57806313b4a7f41461034857600080fd5b806303fd2a4514610209578063044df7261461023c57806306fdde031461025e5780630758d9241461029a57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025c610257366004611f95565b6106b9565b005b34801561026a57600080fd5b5060408051808201909152600a81526950617820556e6974617360b01b60208201525b6040516102339190611fce565b3480156102a657600080fd5b5060075461021f906201000090046001600160a01b031681565b3480156102cc57600080fd5b506007546102df90610100900460ff1681565b6040519015158152602001610233565b3480156102fb57600080fd5b506102df61030a366004612031565b610777565b34801561031b57600080fd5b506102df61032a36600461205d565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561035457600080fd5b5061025c61036336600461207a565b61078e565b34801561037457600080fd5b5061037d6108f8565b604051908152602001610233565b34801561039757600080fd5b506102df6103a63660046120a8565b610941565b3480156103b757600080fd5b5061025c6103c63660046121bf565b6109b9565b3480156103d757600080fd5b5061037d610b71565b3480156103ec57600080fd5b506103f5610bf0565b60405160ff9091168152602001610233565b34801561041357600080fd5b5061025c61042236600461205d565b610c1f565b34801561043357600080fd5b5061025c610ccf565b34801561044857600080fd5b5060085461021f906001600160a01b031681565b34801561046857600080fd5b506008546102df90600160a01b900460ff1681565b34801561048957600080fd5b5061025c61049836600461205d565b610d56565b3480156104a957600080fd5b506008546102df90600160a81b900460ff1681565b3480156104ca57600080fd5b50600c5461021f906001600160a01b031681565b3480156104ea57600080fd5b5061025c6104f936600461205d565b610f3c565b34801561050a57600080fd5b5061037d61051936600461205d565b6001600160a01b031660009081526020819052604090205490565b34801561054057600080fd5b5061025c611118565b34801561055557600080fd5b50600b5461021f906001600160a01b031681565b34801561057557600080fd5b50600a546001600160a01b031661021f565b34801561059357600080fd5b506102df611233565b3480156105a857600080fd5b5061025c6112aa565b3480156105bd57600080fd5b506040805180820190915260048152635041585560e01b602082015261028d565b3480156105ea57600080fd5b506102df6105f9366004612031565b61146b565b34801561060a57600080fd5b5061025c61061936600461205d565b611482565b34801561062a57600080fd5b5061025c61063936600461205d565b6115d2565b34801561064a57600080fd5b5061025c6116ab565b34801561065f57600080fd5b5061037d61066e36600461207a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106a557600080fd5b5061025c6106b4366004612281565b611732565b600a546001600160a01b0316331461070c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60095460405163efbdbabd60e01b8152831515600482015282151560248201526001600160a01b039091169063efbdbabd90604401600060405180830381600087803b15801561075b57600080fd5b505af115801561076f573d6000803e3d6000fd5b505050505050565b60006107843384846117ab565b5060015b92915050565b600a546001600160a01b031633146107dc5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b60075460ff166107eb57600080fd5b6001600160a01b038216301480159061080d57506001600160a01b0381163014155b801561082757506008546001600160a01b03838116911614155b801561084157506008546001600160a01b03828116911614155b61087b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610703565b806001600160a01b0316826001600160a01b0316036108bb576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b60006109066012600a612399565b6109159064975704e4006123a8565b60000361092157600080fd5b61092d6012600a612399565b61093c9064975704e4006123a8565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146109a6576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906109a09084906123bf565b90915550505b6109b18484846118a4565b949350505050565b600a546001600160a01b03163314610a075760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b8051825114610a585760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610703565b60005b82518161ffff161015610b6c57610a746012600a612399565b828261ffff1681518110610a8a57610a8a6123d2565b6020026020010151610a9c91906123a8565b336000908152602081905260409020541015610afa5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610703565b610b5933848361ffff1681518110610b1457610b146123d2565b60200260200101516012600a610b2a9190612399565b858561ffff1681518110610b4057610b406123d2565b6020026020010151610b5291906123a8565b6001611b53565b5080610b64816123e8565b915050610a5b565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610bcb9190612409565b610bd76012600a612399565b610be69064975704e4006123a8565b61093c91906123bf565b6000610bfe6012600a612399565b610c0d9064975704e4006123a8565b600003610c1957600080fd5b50601290565b600a546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6009546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b158015610cb457600080fd5b505af1158015610cc8573d6000803e3d6000fd5b5050505050565b600b546001600160a01b03163314610d3a5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610703565b610d4460006115d2565b600b80546001600160a01b0319169055565b600a546001600160a01b03163314610da45760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6001600160a01b038116610e205760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610703565b61deac196001600160a01b03821601610ea15760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610703565b600a546001600160a01b031660009081526020819052604090205415610eea57600a546001600160a01b0316600081815260208190526040902054610ee891908390610b52565b505b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b03163314610f8a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600854600160a01b900460ff1615610fa157600080fd5b306001600160a01b03821603610ff95760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610703565b600980546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301816000875af192505050801561106d575060408051601f3d908101601f1916820190925261106a9181019061241c565b60015b61107657600080fd5b6007805475ffffffffffffffffffffffffffffffffffffffff00001916620100006001600160a01b038581168202929092178355600880546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055600a5492546110f593831692919004166000196117ab565b600754610b6c9030906201000090046001600160a01b03166000196117ab565b50565b600a546001600160a01b031633146111665760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600854600160a01b900460ff166111e55760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610703565b600a80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600a546000906001600160a01b031633146112845760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6007546112a49030906201000090046001600160a01b03166000196117ab565b50600190565b600a546001600160a01b031633146112f85760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600854600160a01b900460ff16156113525760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610703565b600854600160a81b900460ff166113ab5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610703565b6009546001600160a01b03166113ce57600980546001600160a01b031916301790555b600954600854604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152911690636c115c3490608401600060405180830381600087803b15801561143a57600080fd5b505af192505050801561144b575060015b506008805460ff60a01b1916600160a01b1790556007805460ff19169055565b60006114783384846118a4565b5060019392505050565b600a546001600160a01b031633146114d05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600a546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b919061244b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156115ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190612464565b600b546001600160a01b0316331461163d5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610703565b600c546001600160a01b03168015611670576001600160a01b0381166000908152600460205260409020805460ff191690555b50600c80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b600a546001600160a01b031633146116f95760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611115573d6000803e3d6000fd5b600a546001600160a01b031633146117805760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610703565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166117f75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610703565b6001600160a01b0382166118435760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610703565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661190a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610703565b6001600160a01b03831661196c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610703565b600082116119ce5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610703565b6001600160a01b0384166000908152600160205260408120548190819060ff16156119fc5760019250611a2a565b6001600160a01b03861660009081526001602052604090205460ff1615611a265760019150611a2a565b5060015b611a348787611d8d565b15611b3c57600854600160a01b900460ff16611b3c5780611a975760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610703565b6001600160a01b03871660009081526005602052604090205460ff16158015611ad957506001600160a01b03861660009081526005602052604090205460ff16155b15611b3c5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610703565b611b4887878784611b53565b979650505050505050565b6000611b5f8585611d8d565b15611bf35760095460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092169063ecd07a53906064016020604051808303816000875af1925050508015611bdc575060408051601f3d908101601f19168201909252611bd991810190612464565b60015b611be557600080fd5b905080611bf157600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611c1b9084906123bf565b90915550506001600160a01b03841660009081526020819052604081208054859290611c48908490612409565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c9491815260200190565b60405180910390a3600854600160a81b900460ff16611d8257611cb78585611e98565b600854600160a81b900460ff16158015611cd65750611cd68585611d8d565b8015611cfb57506001600160a01b03851660009081526005602052604090205460ff16155b8015611d2057506001600160a01b03841660009081526005602052604090205460ff16155b8015611d2a575081155b15611d825760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610703565b506001949350505050565b600a546000906001600160a01b03848116911614801590611dbc5750600a546001600160a01b03838116911614155b8015611dd35750600a546001600160a01b03163214155b8015611df857506001600160a01b03821660009081526004602052604090205460ff16155b8015611e1d57506001600160a01b03831660009081526004602052604090205460ff16155b8015611e3457506001600160a01b03821661dead14155b8015611e4857506001600160a01b03821615155b8015611e5d57506001600160a01b0383163014155b8015611e7757506009546001600160a01b03848116911614155b8015611e9157506009546001600160a01b03838116911614155b9392505050565b600854600160a81b900460ff1615611efe5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610703565b611f088282611d8d565b158015611f2257506008546001600160a01b038281169116145b156108f4576009546001600160a01b0316611f4d57600980546001600160a01b031916301790555050565b6001600160a01b0382166000908152600460205260409020805460ff191660011790556008805460ff60a81b1916600160a81b1790555050565b801515811461111557600080fd5b60008060408385031215611fa857600080fd5b8235611fb381611f87565b91506020830135611fc381611f87565b809150509250929050565b600060208083528351808285015260005b81811015611ffb57858101830151858201604001528201611fdf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461111557600080fd5b6000806040838503121561204457600080fd5b823561204f8161201c565b946020939093013593505050565b60006020828403121561206f57600080fd5b8135611e918161201c565b6000806040838503121561208d57600080fd5b82356120988161201c565b91506020830135611fc38161201c565b6000806000606084860312156120bd57600080fd5b83356120c88161201c565b925060208401356120d88161201c565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612128576121286120e9565b604052919050565b600067ffffffffffffffff82111561214a5761214a6120e9565b5060051b60200190565b600082601f83011261216557600080fd5b8135602061217a61217583612130565b6120ff565b82815260059290921b8401810191818101908684111561219957600080fd5b8286015b848110156121b4578035835291830191830161219d565b509695505050505050565b600080604083850312156121d257600080fd5b823567ffffffffffffffff808211156121ea57600080fd5b818501915085601f8301126121fe57600080fd5b8135602061220e61217583612130565b82815260059290921b8401810191818101908984111561222d57600080fd5b948201945b838610156122545785356122458161201c565b82529482019490820190612232565b9650508601359250508082111561226a57600080fd5b5061227785828601612154565b9150509250929050565b6000806040838503121561229457600080fd5b8235611fb38161201c565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156122f05781600019048211156122d6576122d661229f565b808516156122e357918102915b93841c93908002906122ba565b509250929050565b60008261230757506001610788565b8161231457506000610788565b816001811461232a576002811461233457612350565b6001915050610788565b60ff8411156123455761234561229f565b50506001821b610788565b5060208310610133831016604e8410600b8410161715612373575081810a610788565b61237d83836122b5565b80600019048211156123915761239161229f565b029392505050565b6000611e9160ff8416836122f8565b80820281158282048414176107885761078861229f565b818103818111156107885761078861229f565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036123ff576123ff61229f565b6001019392505050565b808201808211156107885761078861229f565b6000806040838503121561242f57600080fd5b825161243a8161201c565b6020840151909250611fc38161201c565b60006020828403121561245d57600080fd5b5051919050565b60006020828403121561247657600080fd5b8151611e9181611f8756fea2646970667358221220f3ceed72a411f67d5c710121a955d9df9dc91a6fdf0e46ffbc6601d41ae4abee64736f6c63430008130033

Deployed Bytecode Sourcemap

4014:11881:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4876:73;;;;;;;;;;;;4907:42;4876:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;4876:73:0;;;;;;;;11234:153;;;;;;;;;;-1:-1:-1;11234:153:0;;;;;:::i;:::-;;:::i;:::-;;8476:80;;;;;;;;;;-1:-1:-1;8548:5:0;;;;;;;;;;;;-1:-1:-1;;;8548:5:0;;;;8476:80;;;;;;;:::i;4815:26::-;;;;;;;;;;-1:-1:-1;4815:26:0;;;;;;;-1:-1:-1;;;;;4815:26:0;;;4782;;;;;;;;;;-1:-1:-1;4782:26:0;;;;;;;;;;;;;;1715:14:1;;1708:22;1690:41;;1678:2;1663:18;4782:26:0;1550:187:1;9084:161:0;;;;;;;;;;-1:-1:-1;9084:161:0;;;;;:::i;:::-;;:::i;10663:140::-;;;;;;;;;;-1:-1:-1;10663:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;10761:34:0;10737:4;10761:34;;;:25;:34;;;;;;;;;10663:140;11395:523;;;;;;;;;;-1:-1:-1;11395:523:0;;;;;:::i;:::-;;:::i;8147:115::-;;;;;;;;;;;;;:::i;:::-;;;3012:25:1;;;3000:2;2985:18;8147:115:0;2866:177:1;9754:306:0;;;;;;;;;;-1:-1:-1;9754:306:0;;;;;:::i;:::-;;:::i;14661:433::-;;;;;;;;;;-1:-1:-1;14661:433:0;;;;;:::i;:::-;;:::i;10967:141::-;;;;;;;;;;;;;:::i;8268:112::-;;;;;;;;;;;;;:::i;:::-;;;6168:4:1;6156:17;;;6138:36;;6126:2;6111:18;8268:112:0;5996:184:1;11116:110:0;;;;;;;;;;-1:-1:-1;11116:110:0;;;;;:::i;:::-;;:::i;7571:221::-;;;;;;;;;;;;;:::i;4848:21::-;;;;;;;;;;-1:-1:-1;4848:21:0;;;;-1:-1:-1;;;;;4848:21:0;;;4956:34;;;;;;;;;;-1:-1:-1;4956:34:0;;;;-1:-1:-1;;;4956:34:0;;;;;;6141:539;;;;;;;;;;-1:-1:-1;6141:539:0;;;;;:::i;:::-;;:::i;4997:36::-;;;;;;;;;;-1:-1:-1;4997:36:0;;;;-1:-1:-1;;;4997:36:0;;;;;;6999:23;;;;;;;;;;-1:-1:-1;6999:23:0;;;;-1:-1:-1;;;;;6999:23:0;;;10068:587;;;;;;;;;;-1:-1:-1;10068:587:0;;;;;:::i;:::-;;:::i;8786:117::-;;;;;;;;;;-1:-1:-1;8786:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8879:16:0;8852:7;8879:16;;;;;;;;;;;;8786:117;6688:265;;;;;;;;;;;;;:::i;6961:31::-;;;;;;;;;;-1:-1:-1;6961:31:0;;;;-1:-1:-1;;;;;6961:31:0;;;8562:79;;;;;;;;;;-1:-1:-1;8632:6:0;;-1:-1:-1;;;;;8632:6:0;8562:79;;9571:175;;;;;;;;;;;;;:::i;13869:480::-;;;;;;;;;;;;;:::i;8386:84::-;;;;;;;;;;-1:-1:-1;8460:7:0;;;;;;;;;;;;-1:-1:-1;;;8460:7:0;;;;8386:84;;8911:165;;;;;;;;;;-1:-1:-1;8911:165:0;;;;;:::i;:::-;;:::i;14478:175::-;;;;;;;;;;-1:-1:-1;14478:175:0;;;;;:::i;:::-;;:::i;7184:379::-;;;;;;;;;;-1:-1:-1;7184:379:0;;;;;:::i;:::-;;:::i;14357:109::-;;;;;;;;;;;;;:::i;8647:133::-;;;;;;;;;;-1:-1:-1;8647:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8749:19:0;;;8731:7;8749:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8647:133;10811:148;;;;;;;;;;-1:-1:-1;10811:148:0;;;;;:::i;:::-;;:::i;11234:153::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;;;;;;;;;11329:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;11329:50:0;;7105:14:1;;7098:22;11329:50:0::1;::::0;::::1;7080:41:1::0;7164:14;;7157:22;7137:18;;;7130:50;-1:-1:-1;;;;;11329:11:0;;::::1;::::0;:26:::1;::::0;7053:18:1;;11329:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11234:153:::0;;:::o;9084:161::-;9161:4;9178:37;9187:10;9199:7;9208:6;9178:8;:37::i;:::-;-1:-1:-1;9233:4:0;9084:161;;;;;:::o;11395:523::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;11499:23:::1;::::0;::::1;;11491:32;;;::::0;::::1;;-1:-1:-1::0;;;;;11542:23:0;::::1;11560:4;11542:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;11587:24:0;::::1;11606:4;11587:24;;11542:69;:107;;;;-1:-1:-1::0;11633:6:0::1;::::0;-1:-1:-1;;;;;11633:16:0;;::::1;:6:::0;::::1;:16;;11542:107;:146;;;;-1:-1:-1::0;11671:6:0::1;::::0;-1:-1:-1;;;;;11671:17:0;;::::1;:6:::0;::::1;:17;;11542:146;11534:170;;;::::0;-1:-1:-1;;;11534:170:0;;7393:2:1;11534:170:0::1;::::0;::::1;7375:21:1::0;7432:2;7412:18;;;7405:30;-1:-1:-1;;;7451:18:1;;;7444:41;7502:18;;11534:170:0::1;7191:335:1::0;11534:170:0::1;11729:7;-1:-1:-1::0;;;;;11719:17:0::1;:6;-1:-1:-1::0;;;;;11719:17:0::1;::::0;11715:196:::1;;-1:-1:-1::0;;;;;11753:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;11753:33:0::1;11782:4;11753:33;::::0;;11395:523;;:::o;11715:196::-:1;-1:-1:-1::0;;;;;11819:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;:32;;11847:4:::1;-1:-1:-1::0;;11819:32:0;;::::1;::::0;::::1;::::0;;;11866:26;;::::1;::::0;;;;:33;;;;::::1;;::::0;;11715:196:::1;11395:523:::0;;:::o;8147:115::-;8202:7;4760:13;4699:2;4760;:13;:::i;:::-;4743:30;;4544:15;4743:30;:::i;:::-;8228:1;8217:12;8213:31;;8233:8;;;8213:31;4760:13;4699:2;4760;:13;:::i;:::-;4743:30;;4544:15;4743:30;:::i;:::-;8245:14;;8147:115;:::o;9754:306::-;-1:-1:-1;;;;;9875:19:0;;9854:4;9875:19;;;:11;:19;;;;;;;;9895:10;9875:31;;;;;;;;-1:-1:-1;;9875:52:0;9871:126;;-1:-1:-1;;;;;9944:19:0;;;;;;:11;:19;;;;;;;;9964:10;9944:31;;;;;;;:41;;9979:6;;9944:19;:41;;9979:6;;9944:41;:::i;:::-;;;;-1:-1:-1;;9871:126:0;10016:36;10026:6;10034:9;10045:6;10016:9;:36::i;:::-;10009:43;9754:306;-1:-1:-1;;;;9754:306:0:o;14661:433::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;14796:7:::1;:14;14777:8;:15;:33;14769:67;;;::::0;-1:-1:-1;;;14769:67:0;;9554:2:1;14769:67:0::1;::::0;::::1;9536:21:1::0;9593:2;9573:18;;;9566:30;9632:23;9612:18;;;9605:51;9673:18;;14769:67:0::1;9352:345:1::0;14769:67:0::1;14852:8;14847:240;14870:8;:15;14866:1;:19;;;14847:240;;;14951:13;4699:2;14951;:13;:::i;:::-;14940:7;14948:1;14940:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;14925:10;8852:7:::0;8879:16;;;;;;;;;;;14915:49:::1;;14907:80;;;::::0;-1:-1:-1;;;14907:80:0;;10036:2:1;14907:80:0::1;::::0;::::1;10018:21:1::0;10075:2;10055:18;;;10048:30;10114:20;10094:18;;;10087:48;10152:18;;14907:80:0::1;9834:342:1::0;14907:80:0::1;15002:73;15019:10;15031:8;15040:1;15031:11;;;;;;;;;;:::i;:::-;;;;;;;4699:2;15055;:13;;;;:::i;:::-;15044:7;15052:1;15044:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;15070:4;15002:16;:73::i;:::-;-1:-1:-1::0;14887:3:0;::::1;::::0;::::1;:::i;:::-;;;;14847:240;;;;14661:433:::0;;:::o;10967:141::-;11020:7;8879:16;;;;;;4907:42;8879:16;;;;11059:39;;8879:16;11059:39;:::i;:::-;4760:13;4699:2;4760;:13;:::i;:::-;4743:30;;4544:15;4743:30;:::i;:::-;11048:51;;;;:::i;8268:112::-;8320:5;4760:13;4699:2;4760;:13;:::i;:::-;4743:30;;4544:15;4743:30;:::i;:::-;8344:1;8333:12;8329:31;;8349:8;;;8329:31;-1:-1:-1;4699:2:0;;8268:112::o;11116:110::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;11185:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;11185:33:0;;-1:-1:-1;;;;;178:55:1;;;11185:33:0::1;::::0;::::1;160:74:1::0;11185:11:0;;::::1;::::0;:24:::1;::::0;133:18:1;;11185:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11116:110:::0;:::o;7571:221::-;7649:16;;-1:-1:-1;;;;;7649:16:0;7635:10;:30;7627:83;;;;-1:-1:-1;;;7627:83:0;;10715:2:1;7627:83:0;;;10697:21:1;10754:2;10734:18;;;10727:30;10793:34;10773:18;;;10766:62;-1:-1:-1;;;10844:18:1;;;10837:38;10892:19;;7627:83:0;10513:404:1;7627:83:0;7721:23;7741:1;7721:11;:23::i;:::-;7755:16;:29;;-1:-1:-1;;;;;;7755:29:0;;;7571:221::o;6141:539::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;-1:-1:-1;;;;;6220:22:0;::::1;6212:96;;;::::0;-1:-1:-1;;;6212:96:0;;11124:2:1;6212:96:0::1;::::0;::::1;11106:21:1::0;11163:2;11143:18;;;11136:30;11202:34;11182:18;;;11175:62;11273:31;11253:18;;;11246:59;11322:19;;6212:96:0::1;10922:425:1::0;6212:96:0::1;-1:-1:-1::0;;;;;;;6327:16:0;::::1;::::0;6319:90:::1;;;::::0;-1:-1:-1;;;6319:90:0;;11124:2:1;6319:90:0::1;::::0;::::1;11106:21:1::0;11163:2;11143:18;;;11136:30;11202:34;11182:18;;;11175:62;11273:31;11253:18;;;11246:59;11322:19;;6319:90:0::1;10922:425:1::0;6319:90:0::1;6434:6;::::0;-1:-1:-1;;;;;6434:6:0::1;6444:1;8879:16:::0;;;;;;;;;;;6424:21;6420:113:::1;;6479:6;::::0;-1:-1:-1;;;;;6479:6:0::1;8852:7:::0;8879:16;;;;;;;;;;;6462:59:::1;::::0;6479:6;6487:8;;6497:17:::1;8786:117:::0;6462:59:::1;;6420:113;6572:6;::::0;;-1:-1:-1;;;;;6589:17:0;;::::1;-1:-1:-1::0;;;;;;6589:17:0;::::1;::::0;::::1;::::0;;;6622:40:::1;::::0;6572:6;::::1;::::0;6589:17;6572:6;;6622:40:::1;::::0;6553:16:::1;::::0;6622:40:::1;6201:479;6141:539:::0;:::o;10068:587::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;10151:14:::1;::::0;-1:-1:-1;;;10151:14:0;::::1;;;10150:15;10142:24;;;::::0;::::1;;10209:4;-1:-1:-1::0;;;;;10185:29:0;::::1;::::0;10177:56:::1;;;::::0;-1:-1:-1;;;10177:56:0;;11554:2:1;10177:56:0::1;::::0;::::1;11536:21:1::0;11593:2;11573:18;;;11566:30;11632:16;11612:18;;;11605:44;11666:18;;10177:56:0::1;11352:338:1::0;10177:56:0::1;10244:11;:39:::0;;-1:-1:-1;;;;;;10244:39:0::1;-1:-1:-1::0;;;;;10244:39:0;::::1;::::0;;::::1;::::0;;;10298:23:::1;::::0;;-1:-1:-1;;;10298:23:0;;;;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;10244:39:0;10298:23:::1;;;;;;;;;;-1:-1:-1::0;10298:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;10298:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;10294:354;;10637:8;::::0;::::1;10294:354;10385:9;:29:::0;;-1:-1:-1;;10385:29:0::1;::::0;-1:-1:-1;;;;;10385:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;10416:6:::1;:22:::0;;-1:-1:-1;;;;;;10416:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10440:22:0;;;-1:-1:-1;10440:22:0::1;::::0;;;;;;;:29;;-1:-1:-1;;10440:29:0::1;::::0;;::::1;::::0;;10493:6:::1;::::0;10509:9;;10484:55:::1;::::0;10493:6;::::1;::::0;10509:9;;::::1;;-1:-1:-1::0;;10484:8:0::1;:55::i;:::-;10586:9;::::0;10554:62:::1;::::0;10571:4:::1;::::0;10586:9;;::::1;-1:-1:-1::0;;;;;10586:9:0::1;-1:-1:-1::0;;10554:8:0::1;:62::i;10294:354::-;10068:587:::0;:::o;6688:265::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;6755:14:::1;::::0;-1:-1:-1;;;6755:14:0;::::1;;;6747:74;;;::::0;-1:-1:-1;;;6747:74:0;;12287:2:1;6747:74:0::1;::::0;::::1;12269:21:1::0;12326:2;12306:18;;;12299:30;12365:34;12345:18;;;12338:62;12436:17;12416:18;;;12409:45;12471:19;;6747:74:0::1;12085:411:1::0;6747:74:0::1;6851:6;::::0;;-1:-1:-1;;;;;;6868:19:0;::::1;::::0;;;6903:42:::1;::::0;-1:-1:-1;;;;;6851:6:0;;::::1;::::0;6832:16:::1;::::0;6851:6;;6903:42:::1;::::0;6832:16;;6903:42:::1;6736:217;6688:265::o:0;9571:175::-;5995:6;;9637:4;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;9686:9:::1;::::0;9654:62:::1;::::0;9671:4:::1;::::0;9686:9;;::::1;-1:-1:-1::0;;;;;9686:9:0::1;-1:-1:-1::0;;9654:8:0::1;:62::i;:::-;-1:-1:-1::0;9734:4:0::1;9571:175:::0;:::o;13869:480::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;13931:14:::1;::::0;-1:-1:-1;;;13931:14:0;::::1;;;13930:15;13922:52;;;::::0;-1:-1:-1;;;13922:52:0;;12703:2:1;13922:52:0::1;::::0;::::1;12685:21:1::0;12742:2;12722:18;;;12715:30;12781:26;12761:18;;;12754:54;12825:18;;13922:52:0::1;12501:348:1::0;13922:52:0::1;13993:16;::::0;-1:-1:-1;;;13993:16:0;::::1;;;13985:53;;;::::0;-1:-1:-1;;;13985:53:0;;13056:2:1;13985:53:0::1;::::0;::::1;13038:21:1::0;13095:2;13075:18;;;13068:30;13134:26;13114:18;;;13107:54;13178:18;;13985:53:0::1;12854:348:1::0;13985:53:0::1;14061:11;::::0;-1:-1:-1;;;;;14061:11:0::1;14049:106;;14103:11;:40:::0;;-1:-1:-1;;;;;;14103:40:0::1;14137:4;14103:40;::::0;;14049:106:::1;14169:11;::::0;14191:6:::1;::::0;14169:87:::1;::::0;-1:-1:-1;;;14169:87:0;;-1:-1:-1;;;;;14191:6:0;;::::1;14169:87;::::0;::::1;13430:74:1::0;13552:10;14206:12:0::1;13540:23:1::0;13520:18;;;13513:51;13612:18;14228:15:0::1;13600:31:1::0;13580:18;;;13573:59;4699:2:0::1;13648:18:1::0;;;13641:45;14169:11:0;::::1;::::0;:21:::1;::::0;13402:19:1;;14169:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14165:103:::0;14278:14:::1;:21:::0;;-1:-1:-1;;;;14278:21:0::1;-1:-1:-1::0;;;14278:21:0::1;::::0;;14310:23:::1;:31:::0;;-1:-1:-1;;14310:31:0::1;::::0;;13869:480::o;8911:165::-;8989:4;9006:40;9016:10;9028:9;9039:6;9006:9;:40::i;:::-;-1:-1:-1;9064:4:0;;8911:165;-1:-1:-1;;;8911:165:0:o;14478:175::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;14606:6:::1;::::0;14614:30:::1;::::0;-1:-1:-1;;;14614:30:0;;14638:4:::1;14614:30;::::0;::::1;160:74:1::0;14574:5:0;;-1:-1:-1;;;;;14591:14:0;;::::1;::::0;::::1;::::0;14606:6;;;::::1;::::0;14591:14;;14614:15:::1;::::0;133:18:1;;14614:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14591:54;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;14078:55:1;;;14591:54:0::1;::::0;::::1;14060:74:1::0;14150:18;;;14143:34;14033:18;;14591:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7184:379::-:0;7266:16;;-1:-1:-1;;;;;7266:16:0;7252:10;:30;7244:83;;;;-1:-1:-1;;;7244:83:0;;10715:2:1;7244:83:0;;;10697:21:1;10754:2;10734:18;;;10727:30;10793:34;10773:18;;;10766:62;-1:-1:-1;;;10844:18:1;;;10837:38;10892:19;;7244:83:0;10513:404:1;7244:83:0;7360:8;;-1:-1:-1;;;;;7360:8:0;7383:25;;7379:96;;-1:-1:-1;;;;;7425:30:0;;7458:5;7425:30;;;:17;:30;;;;;:38;;-1:-1:-1;;7425:38:0;;;7379:96;-1:-1:-1;7485:8:0;:22;;-1:-1:-1;;;;;7485:22:0;;;-1:-1:-1;;;;;;7485:22:0;;;;;;;:8;7518:30;;;:17;:30;;;;;:37;;-1:-1:-1;;7518:37:0;7485:22;7518:37;;;7184:379::o;14357:109::-;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;14419:6:::1;::::0;14411:47:::1;::::0;-1:-1:-1;;;;;14419:6:0;;::::1;::::0;14436:21:::1;14411:47:::0;::::1;;;::::0;14419:6:::1;14411:47:::0;14419:6;14411:47;14436:21;14419:6;14411:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;10811:148:::0;5995:6;;-1:-1:-1;;;;;5995:6:0;6005:10;5995:20;5987:50;;;;-1:-1:-1;;;5987:50:0;;6774:2:1;5987:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5987:50:0;6572:341:1;5987:50:0;-1:-1:-1;;;;;10907:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;10907:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10811:148::o;9253:310::-;-1:-1:-1;;;;;9348:20:0;;9340:52;;;;-1:-1:-1;;;9340:52:0;;14640:2:1;9340:52:0;;;14622:21:1;14679:2;14659:18;;;14652:30;-1:-1:-1;;;14698:18:1;;;14691:49;14757:18;;9340:52:0;14438:343:1;9340:52:0;-1:-1:-1;;;;;9411:21:0;;9403:53;;;;-1:-1:-1;;;9403:53:0;;14640:2:1;9403:53:0;;;14622:21:1;14679:2;14659:18;;;14652:30;-1:-1:-1;;;14698:18:1;;;14691:49;14757:18;;9403:53:0;14438:343:1;9403:53:0;-1:-1:-1;;;;;9469:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9522:33;;3012:25:1;;;9522:33:0;;2985:18:1;9522:33:0;;;;;;;9253:310;;;:::o;12380:1020::-;12459:4;-1:-1:-1;;;;;12484:18:0;;12476:68;;;;-1:-1:-1;;;12476:68:0;;14988:2:1;12476:68:0;;;14970:21:1;15027:2;15007:18;;;15000:30;15066:34;15046:18;;;15039:62;-1:-1:-1;;;15117:18:1;;;15110:35;15162:19;;12476:68:0;14786:401:1;12476:68:0;-1:-1:-1;;;;;12563:16:0;;12555:64;;;;-1:-1:-1;;;12555:64:0;;15394:2:1;12555:64:0;;;15376:21:1;15433:2;15413:18;;;15406:30;15472:34;15452:18;;;15445:62;-1:-1:-1;;;15523:18:1;;;15516:33;15566:19;;12555:64:0;15192:399:1;12555:64:0;12647:1;12638:6;:10;12630:64;;;;-1:-1:-1;;;12630:64:0;;15798:2:1;12630:64:0;;;15780:21:1;15837:2;15817:18;;;15810:30;15876:34;15856:18;;;15849:62;-1:-1:-1;;;15927:18:1;;;15920:39;15976:19;;12630:64:0;15596:405:1;12630:64:0;-1:-1:-1;;;;;12793:13:0;;12705:8;12793:13;;;:7;:13;;;;;;12705:8;;;;12793:13;;12789:162;;;12829:4;12823:10;;12789:162;;;-1:-1:-1;;;;;12855:11:0;;;;;;:7;:11;;;;;;;;12851:100;;;12890:4;12883:11;;12851:100;;;-1:-1:-1;12935:4:0;12851:100;12965:20;12976:4;12982:2;12965:10;:20::i;:::-;12961:371;;;13006:14;;-1:-1:-1;;;13006:14:0;;;;13002:319;;13046:5;13041:265;;13076:34;;-1:-1:-1;;;13076:34:0;;16208:2:1;13076:34:0;;;16190:21:1;16247:2;16227:18;;;16220:30;16286:26;16266:18;;;16259:54;16330:18;;13076:34:0;16006:348:1;13041:265:0;-1:-1:-1;;;;;13141:31:0;;;;;;:25;:31;;;;;;;;13140:32;:66;;;;-1:-1:-1;;;;;;13177:29:0;;;;;;:25;:29;;;;;;;;13176:30;13140:66;13136:170;;;13231:55;;-1:-1:-1;;;13231:55:0;;16561:2:1;13231:55:0;;;16543:21:1;16600:2;16580:18;;;16573:30;16639:34;16619:18;;;16612:62;-1:-1:-1;;;16690:18:1;;;16683:43;16743:19;;13231:55:0;16359:409:1;13136:170:0;13351:41;13368:4;13374:2;13378:6;13386:5;13351:16;:41::i;:::-;13344:48;12380:1020;-1:-1:-1;;;;;;;12380:1020:0:o;15102:790::-;15200:4;15221:20;15232:4;15238:2;15221:10;:20::i;:::-;15217:228;;;15276:11;;:39;;-1:-1:-1;;;15276:39:0;;-1:-1:-1;;;;;17054:15:1;;;15276:39:0;;;17036:34:1;17106:15;;;17086:18;;;17079:43;17138:18;;;17131:34;;;15245:12:0;;15276:11;;:21;;16948:18:1;;15276:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;15276:39:0;;;;;;;;-1:-1:-1;;15276:39:0;;;;;;;;;;;;:::i;:::-;;;15272:122;;15383:8;;;15272:122;15366:5;-1:-1:-1;15412:7:0;15408:26;;15423:8;;;15408:26;15243:202;15217:228;-1:-1:-1;;;;;15455:13:0;;:7;:13;;;;;;;;;;:23;;15472:6;;15455:7;:23;;15472:6;;15455:23;:::i;:::-;;;;-1:-1:-1;;;;;;;15489:11:0;;:7;:11;;;;;;;;;;:21;;15504:6;;15489:7;:21;;15504:6;;15489:21;:::i;:::-;;;;;;;;15541:2;-1:-1:-1;;;;;15526:26:0;15535:4;-1:-1:-1;;;;;15526:26:0;;15545:6;15526:26;;;;3012:25:1;;3000:2;2985:18;;2866:177;15526:26:0;;;;;;;;15568:16;;-1:-1:-1;;;15568:16:0;;;;15563:298;;15601:28;15620:4;15626:2;15601:18;:28::i;:::-;15649:16;;-1:-1:-1;;;15649:16:0;;;;15648:17;:41;;;;;15669:20;15680:4;15686:2;15669:10;:20::i;:::-;15648:77;;;;-1:-1:-1;;;;;;15694:31:0;;;;;;:25;:31;;;;;;;;15693:32;15648:77;:111;;;;-1:-1:-1;;;;;;15730:29:0;;;;;;:25;:29;;;;;;;;15729:30;15648:111;:121;;;;;15764:5;15763:6;15648:121;15644:206;;;15790:44;;-1:-1:-1;;;15790:44:0;;17378:2:1;15790:44:0;;;17360:21:1;17417:2;17397:18;;;17390:30;17456:34;17436:18;;;17429:62;-1:-1:-1;;;17507:18:1;;;17500:32;17549:19;;15790:44:0;17176:398:1;15644:206:0;-1:-1:-1;15880:4:0;15102:790;;;;;;:::o;11926:446::-;12027:6;;11995:4;;-1:-1:-1;;;;;12019:14:0;;;12027:6;;12019:14;;;;:43;;-1:-1:-1;12056:6:0;;-1:-1:-1;;;;;12050:12:0;;;12056:6;;12050:12;;12019:43;:79;;;;-1:-1:-1;12092:6:0;;-1:-1:-1;;;;;12092:6:0;12079:9;:19;;12019:79;:118;;;;-1:-1:-1;;;;;;12116:21:0;;;;;;:17;:21;;;;;;;;12115:22;12019:118;:159;;;;-1:-1:-1;;;;;;12155:23:0;;;;;;:17;:23;;;;;;;;12154:24;12019:159;:186;;;;-1:-1:-1;;;;;;12195:10:0;;4907:42;12195:10;;12019:186;:219;;;;-1:-1:-1;;;;;;12222:16:0;;;;12019:219;:257;;;;-1:-1:-1;;;;;;12255:21:0;;12271:4;12255:21;;12019:257;:302;;;;-1:-1:-1;12309:11:0;;-1:-1:-1;;;;;12293:28:0;;;12309:11;;12293:28;;12019:302;:345;;;;-1:-1:-1;12352:11:0;;-1:-1:-1;;;;;12338:26:0;;;12352:11;;12338:26;;12019:345;12012:352;11926:446;-1:-1:-1;;;11926:446:0:o;13408:453::-;13491:16;;-1:-1:-1;;;13491:16:0;;;;13490:17;13482:65;;;;-1:-1:-1;;;13482:65:0;;17781:2:1;13482:65:0;;;17763:21:1;17820:2;17800:18;;;17793:30;17859:34;17839:18;;;17832:62;-1:-1:-1;;;17910:18:1;;;17903:33;17953:19;;13482:65:0;17579:399:1;13482:65:0;13563:20;13574:4;13580:2;13563:10;:20::i;:::-;13562:21;:37;;;;-1:-1:-1;13593:6:0;;-1:-1:-1;;;;;13587:12:0;;;13593:6;;13587:12;13562:37;13558:296;;;13628:11;;-1:-1:-1;;;;;13628:11:0;13616:227;;13674:11;:40;;-1:-1:-1;;;;;;13674:40:0;13708:4;13674:40;;;11395:523;;:::o;13616:227::-;-1:-1:-1;;;;;13755:23:0;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;13755:30:0;13781:4;13755:30;;;13804:16;:23;;-1:-1:-1;;;;13804:23:0;-1:-1:-1;;;13804:23:0;;;13408:453;;:::o;245:118:1:-;331:5;324:13;317:21;310:5;307:32;297:60;;353:1;350;343:12;368:376;430:6;438;491:2;479:9;470:7;466:23;462:32;459:52;;;507:1;504;497:12;459:52;546:9;533:23;565:28;587:5;565:28;:::i;:::-;612:5;-1:-1:-1;669:2:1;654:18;;641:32;682:30;641:32;682:30;:::i;:::-;731:7;721:17;;;368:376;;;;;:::o;749:548::-;861:4;890:2;919;908:9;901:21;951:6;945:13;994:6;989:2;978:9;974:18;967:34;1019:1;1029:140;1043:6;1040:1;1037:13;1029:140;;;1138:14;;;1134:23;;1128:30;1104:17;;;1123:2;1100:26;1093:66;1058:10;;1029:140;;;1033:3;1218:1;1213:2;1204:6;1193:9;1189:22;1185:31;1178:42;1288:2;1281;1277:7;1272:2;1264:6;1260:15;1256:29;1245:9;1241:45;1237:54;1229:62;;;;749:548;;;;:::o;1742:154::-;-1:-1:-1;;;;;1821:5:1;1817:54;1810:5;1807:65;1797:93;;1886:1;1883;1876:12;1901:315;1969:6;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;2206:2;2191:18;;;;2178:32;;-1:-1:-1;;;1901:315:1:o;2221:247::-;2280:6;2333:2;2321:9;2312:7;2308:23;2304:32;2301:52;;;2349:1;2346;2339:12;2301:52;2388:9;2375:23;2407:31;2432:5;2407:31;:::i;2473:388::-;2541:6;2549;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;:::-;2726:5;-1:-1:-1;2783:2:1;2768:18;;2755:32;2796:33;2755:32;2796:33;:::i;3048:456::-;3125:6;3133;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;3249:9;3236:23;3268:31;3293:5;3268:31;:::i;:::-;3318:5;-1:-1:-1;3375:2:1;3360:18;;3347:32;3388:33;3347:32;3388:33;:::i;:::-;3048:456;;3440:7;;-1:-1:-1;;;3494:2:1;3479:18;;;;3466:32;;3048:456::o;3509:127::-;3570:10;3565:3;3561:20;3558:1;3551:31;3601:4;3598:1;3591:15;3625:4;3622:1;3615:15;3641:275;3712:2;3706:9;3777:2;3758:13;;-1:-1:-1;;3754:27:1;3742:40;;3812:18;3797:34;;3833:22;;;3794:62;3791:88;;;3859:18;;:::i;:::-;3895:2;3888:22;3641:275;;-1:-1:-1;3641:275:1:o;3921:183::-;3981:4;4014:18;4006:6;4003:30;4000:56;;;4036:18;;:::i;:::-;-1:-1:-1;4081:1:1;4077:14;4093:4;4073:25;;3921:183::o;4109:662::-;4163:5;4216:3;4209:4;4201:6;4197:17;4193:27;4183:55;;4234:1;4231;4224:12;4183:55;4270:6;4257:20;4296:4;4320:60;4336:43;4376:2;4336:43;:::i;:::-;4320:60;:::i;:::-;4414:15;;;4500:1;4496:10;;;;4484:23;;4480:32;;;4445:12;;;;4524:15;;;4521:35;;;4552:1;4549;4542:12;4521:35;4588:2;4580:6;4576:15;4600:142;4616:6;4611:3;4608:15;4600:142;;;4682:17;;4670:30;;4720:12;;;;4633;;4600:142;;;-1:-1:-1;4760:5:1;4109:662;-1:-1:-1;;;;;;4109:662:1:o;4776:1215::-;4894:6;4902;4955:2;4943:9;4934:7;4930:23;4926:32;4923:52;;;4971:1;4968;4961:12;4923:52;5011:9;4998:23;5040:18;5081:2;5073:6;5070:14;5067:34;;;5097:1;5094;5087:12;5067:34;5135:6;5124:9;5120:22;5110:32;;5180:7;5173:4;5169:2;5165:13;5161:27;5151:55;;5202:1;5199;5192:12;5151:55;5238:2;5225:16;5260:4;5284:60;5300:43;5340:2;5300:43;:::i;5284:60::-;5378:15;;;5460:1;5456:10;;;;5448:19;;5444:28;;;5409:12;;;;5484:19;;;5481:39;;;5516:1;5513;5506:12;5481:39;5540:11;;;;5560:217;5576:6;5571:3;5568:15;5560:217;;;5656:3;5643:17;5673:31;5698:5;5673:31;:::i;:::-;5717:18;;5593:12;;;;5755;;;;5560:217;;;5796:5;-1:-1:-1;;5839:18:1;;5826:32;;-1:-1:-1;;5870:16:1;;;5867:36;;;5899:1;5896;5889:12;5867:36;;5922:63;5977:7;5966:8;5955:9;5951:24;5922:63;:::i;:::-;5912:73;;;4776:1215;;;;;:::o;6185:382::-;6250:6;6258;6311:2;6299:9;6290:7;6286:23;6282:32;6279:52;;;6327:1;6324;6317:12;6279:52;6366:9;6353:23;6385:31;6410:5;6385:31;:::i;7531:127::-;7592:10;7587:3;7583:20;7580:1;7573:31;7623:4;7620:1;7613:15;7647:4;7644:1;7637:15;7663:422;7752:1;7795:5;7752:1;7809:270;7830:7;7820:8;7817:21;7809:270;;;7889:4;7885:1;7881:6;7877:17;7871:4;7868:27;7865:53;;;7898:18;;:::i;:::-;7948:7;7938:8;7934:22;7931:55;;;7968:16;;;;7931:55;8047:22;;;;8007:15;;;;7809:270;;;7813:3;7663:422;;;;;:::o;8090:806::-;8139:5;8169:8;8159:80;;-1:-1:-1;8210:1:1;8224:5;;8159:80;8258:4;8248:76;;-1:-1:-1;8295:1:1;8309:5;;8248:76;8340:4;8358:1;8353:59;;;;8426:1;8421:130;;;;8333:218;;8353:59;8383:1;8374:10;;8397:5;;;8421:130;8458:3;8448:8;8445:17;8442:43;;;8465:18;;:::i;:::-;-1:-1:-1;;8521:1:1;8507:16;;8536:5;;8333:218;;8635:2;8625:8;8622:16;8616:3;8610:4;8607:13;8603:36;8597:2;8587:8;8584:16;8579:2;8573:4;8570:12;8566:35;8563:77;8560:159;;;-1:-1:-1;8672:19:1;;;8704:5;;8560:159;8751:34;8776:8;8770:4;8751:34;:::i;:::-;8821:6;8817:1;8813:6;8809:19;8800:7;8797:32;8794:58;;;8832:18;;:::i;:::-;8870:20;;8090:806;-1:-1:-1;;;8090:806:1:o;8901:140::-;8959:5;8988:47;9029:4;9019:8;9015:19;9009:4;8988:47;:::i;9046:168::-;9119:9;;;9150;;9167:15;;;9161:22;;9147:37;9137:71;;9188:18;;:::i;9219:128::-;9286:9;;;9307:11;;;9304:37;;;9321:18;;:::i;9702:127::-;9763:10;9758:3;9754:20;9751:1;9744:31;9794:4;9791:1;9784:15;9818:4;9815:1;9808:15;10181:197;10219:3;10247:6;10288:2;10281:5;10277:14;10315:2;10306:7;10303:15;10300:41;;10321:18;;:::i;:::-;10370:1;10357:15;;10181:197;-1:-1:-1;;;10181:197:1:o;10383:125::-;10448:9;;;10469:10;;;10466:36;;;10482:18;;:::i;11695:385::-;11774:6;11782;11835:2;11823:9;11814:7;11810:23;11806:32;11803:52;;;11851:1;11848;11841:12;11803:52;11883:9;11877:16;11902:31;11927:5;11902:31;:::i;:::-;12002:2;11987:18;;11981:25;11952:5;;-1:-1:-1;12015:33:1;11981:25;12015:33;:::i;13697:184::-;13767:6;13820:2;13808:9;13799:7;13795:23;13791:32;13788:52;;;13836:1;13833;13826:12;13788:52;-1:-1:-1;13859:16:1;;13697:184;-1:-1:-1;13697:184:1:o;14188:245::-;14255:6;14308:2;14296:9;14287:7;14283:23;14279:32;14276:52;;;14324:1;14321;14314:12;14276:52;14356:9;14350:16;14375:28;14397:5;14375:28;:::i

Swarm Source

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