ETH Price: $2,630.36 (+8.05%)
 

Overview

Max Total Supply

527,367,783,838 $SOCIAL

Holders

978

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
gn0me.eth
Balance
16,839,902.223372601 $SOCIAL

Value
$0.00
0xd5739bf2f0c9d79ea5eea08994f528faef377f0c
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:
$SOCIAL

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-15
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

abstract contract EIP712 {
    /* solhint-disable var-name-mixedcase */
    bytes32 private immutable _CACHED_DOMAIN_SEPARATOR;
    uint256 private immutable _CACHED_CHAIN_ID;
    address private immutable _CACHED_THIS;

    bytes32 private immutable _HASHED_NAME;
    bytes32 private immutable _HASHED_VERSION;
    bytes32 private immutable _TYPE_HASH;

    /* solhint-enable var-name-mixedcase */
    constructor(string memory name, string memory version) {
        bytes32 hashedName = keccak256(bytes(name));
        bytes32 hashedVersion = keccak256(bytes(version));
        bytes32 typeHash = keccak256(
            "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
        );
        _HASHED_NAME = hashedName;
        _HASHED_VERSION = hashedVersion;
        _CACHED_CHAIN_ID = block.chainid;
        _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion);
        _CACHED_THIS = address(this);
        _TYPE_HASH = typeHash;
    }

    /**
     * @dev Returns the domain separator for the current chain.
     */
    function _domainSeparatorV4() internal view returns (bytes32) {
        if (address(this) == _CACHED_THIS && block.chainid == _CACHED_CHAIN_ID) {
            return _CACHED_DOMAIN_SEPARATOR;
        } else {
            return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION);
        }
    }

    function _buildDomainSeparator(
        bytes32 typeHash,
        bytes32 nameHash,
        bytes32 versionHash
    ) private view returns (bytes32) {
        return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this)));
    }

    function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {
        return keccak256(abi.encodePacked("\x19\x01", _domainSeparatorV4(), structHash));
    }
}

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

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

abstract contract Auth is Context {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be owner
     */
    modifier onlyOwner() {
        require(_msgSender() == owner, "!OWNER"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be owner.
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

contract $SOCIAL is Context, IERC20, Auth, EIP712 {
    string private constant NAME = "SocialDAO";
    string private constant SYMBOL = "$SOCIAL";
    uint8 private constant DECIMALS = 9;
    mapping(address => uint256) private _rOwned;
    
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant MAX_SUPPLY = 1e12 * 1e9; // 1T Supply
    uint256 private constant R_MAX = (MAX - (MAX % MAX_SUPPLY));
    
    // for DAO
    uint256 public constant AMOUNT_DAO_PERC = 20;
    // for staking
    uint256 public constant AMOUNT_STAKING_PERC = 10;
    // for liquidity providers
    uint256 public constant AMOUNT_LP_PERC = 20;

    uint256 private _tTotal = (MAX_SUPPLY/100) * (AMOUNT_DAO_PERC + AMOUNT_STAKING_PERC + AMOUNT_LP_PERC);
    uint256 private _rTotal = (R_MAX/100) * (AMOUNT_DAO_PERC + AMOUNT_STAKING_PERC + AMOUNT_LP_PERC);

    bool private inSwap = false;
    bool private _startTxn;
    uint32 private _initialBlocks;
    uint104 private swapLimit = uint104(MAX_SUPPLY / 1000);
    uint104 private _tOwnedBurnAddress;

    uint256 private constant STAKING_BLOCKS_COUNT = 6450 * 5; //5 days

    struct Airdrop {
        uint128 blockNo;
        uint128 amount;
    }

    mapping(address => Airdrop) private _airdrop;

    mapping(bytes32 => bool) private _claimedHash;

    struct FeeBreakdown {
        uint256 tTransferAmount;
        uint256 tMaintenance;
        uint256 tReflection;
    }
    
    struct Fee {
        uint64 buyMaintenanceFee;
        uint64 buyReflectionFee;
        
        uint64 sellMaintenanceFee;
        uint64 sellReflectionFee;
    }

    Fee private _buySellFee = Fee(8,2,8,2);
    
    address payable private _maintenanceAddress;
    address private _csigner;

    address payable constant private BURN_ADDRESS = payable(0x000000000000000000000000000000000000dEaD);
    
    IUniswapV2Router02 private immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    address private immutable WETH;

    bytes32 private constant AIRDROP_CALL_HASH_TYPE = keccak256("airdrop(address receiver,uint256 amount)");
    
    constructor(address addrDAO, address addrStaking, address addrLP, address maintainer, address signer) Auth(_msgSender()) EIP712(SYMBOL, "1") {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), MAX_SUPPLY);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), MAX);

        _maintenanceAddress = payable(maintainer);
        
        //Initial distribution
        _rOwned[addrDAO] = (R_MAX/100) * AMOUNT_DAO_PERC;
        _rOwned[addrStaking] = (R_MAX/100) * AMOUNT_STAKING_PERC;
        _rOwned[addrLP] = (R_MAX/100) * AMOUNT_LP_PERC;

        _isExcludedFromFee[addrDAO] = true;
        _isExcludedFromFee[addrStaking] = true;
        _isExcludedFromFee[addrLP] = true;

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[maintainer] = true;

        _csigner = signer;
        emit Transfer(address(0), addrDAO, MAX_SUPPLY * AMOUNT_DAO_PERC / 100);
        emit Transfer(address(0), addrStaking, MAX_SUPPLY * AMOUNT_STAKING_PERC / 100);
        emit Transfer(address(0), addrLP, MAX_SUPPLY * AMOUNT_LP_PERC / 100);
    }

    function name() override external pure returns (string memory) {return NAME;}
    function symbol() override external pure returns (string memory) {return SYMBOL;}
    function decimals() override external pure returns (uint8) {return DECIMALS;}
    function totalSupply() external view override returns (uint256) {return _tTotal;}
    function balanceOf(address account) external view override returns (uint256) {return tokenFromReflection(_rOwned[account]);}
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) external view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal,"Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount/currentRate;
    }
    
    function getFee(bool initialBlocks) internal view returns (Fee memory) {
        return initialBlocks ? Fee(99,0,99,0) : _buySellFee;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0) && to != address(0), "ERC20: transfer involving the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(_startTxn || _isExcludedFromFee[to] || _isExcludedFromFee[from], "Transfers not allowed");

        Fee memory currentFee;
            
        if (from == uniswapV2Pair && !_isExcludedFromFee[to]) {
            currentFee = getFee(block.number <= _initialBlocks);
        } else if (!inSwap && from != uniswapV2Pair && !_isExcludedFromFee[from]) { //sells, transfers (except for buys)
            currentFee = getFee(block.number <= _initialBlocks);

            if (swapLimit > 0 && tokenFromReflection(_rOwned[address(this)]) > swapLimit) {
                _convertTokensForFee(swapLimit);
            }
            
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) _distributeFee(contractETHBalance);
        }

        _tokenTransfer(from, to, amount, currentFee);
    }

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

    function _distributeFee(uint256 amount) private {
        _maintenanceAddress.transfer(amount);
    }

    function startTxn(uint32 initialBlocks) external onlyOwner {
        require(!_startTxn && initialBlocks < 100, "Already started or block count too long");
        _startTxn = true;
        _initialBlocks = uint32(block.number) + initialBlocks;
    }

    function triggerSwap(uint256 perc) external onlyOwner {
        _convertTokensForFee(tokenFromReflection(_rOwned[address(this)]) * perc / 100);
    }
    
    function collectFee() external onlyOwner {
        _distributeFee(address(this).balance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, Fee memory currentFee) private {
        if (sender == uniswapV2Pair){
            _transferStandardBuy(sender, recipient, amount, currentFee);
        }
        else {
            _transferStandardSell(sender, recipient, amount, currentFee);
        }
    }

    function _transferStandardBuy(address sender, address recipient, uint256 tAmount, Fee memory currentFee) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 tTransferAmount, uint256 rMaintenance) = _getValuesBuy(tAmount, currentFee);
        
        _rOwned[sender] -= rAmount;
        _rOwned[recipient] += rTransferAmount;
        _rOwned[address(this)] += rMaintenance;
        _rTotal -= rReflection;

        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferStandardSell(address sender, address recipient, uint256 tAmount, Fee memory currentFee) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 tTransferAmount, uint256 rMaintenance) = _getValuesSell(tAmount, currentFee);

        Airdrop memory airdrop = _airdrop[sender];
        uint256 rOwnedSender = _rOwned[sender];

        if (airdrop.blockNo > block.number) {
            require(rAmount <= 
                rOwnedSender - airdrop.amount * ((airdrop.blockNo - block.number) * (rAmount / tAmount) / STAKING_BLOCKS_COUNT), "Tokens locked for staking");
        }

        _rOwned[sender] = rOwnedSender - rAmount;
        _rOwned[recipient] += rTransferAmount;
        _rOwned[address(this)] += rMaintenance;

        if (recipient == BURN_ADDRESS) {
            _tOwnedBurnAddress += uint104(tTransferAmount);
        }

        _rTotal -= rReflection;

        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _getValuesBuy(uint256 tAmount, Fee memory currentFee) private view returns (uint256, uint256, uint256, uint256, uint256) {
        FeeBreakdown memory buyFees;
        (buyFees.tTransferAmount, buyFees.tMaintenance, buyFees.tReflection) = _getTValues(tAmount, currentFee.buyMaintenanceFee, currentFee.buyReflectionFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 rMaintenance) = _getRValues(tAmount, buyFees.tMaintenance, buyFees.tReflection, currentRate);
        return (rAmount, rTransferAmount, rReflection, buyFees.tTransferAmount, rMaintenance);
    }

    function _getValuesSell(uint256 tAmount, Fee memory currentFee) private view returns (uint256, uint256, uint256, uint256, uint256) {
        FeeBreakdown memory sellFees;
        (sellFees.tTransferAmount, sellFees.tMaintenance, sellFees.tReflection) = _getTValues(tAmount, currentFee.sellMaintenanceFee, currentFee.sellReflectionFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 rMaintenance) = _getRValues(tAmount, sellFees.tMaintenance, sellFees.tReflection, currentRate);
        return (rAmount, rTransferAmount, rReflection, sellFees.tTransferAmount, rMaintenance);
    }

    function _getTValues(uint256 tAmount, uint256 maintenanceFee, uint256 reflectionFee) private pure returns (uint256, uint256, uint256) {
        uint256 tMaintenance = tAmount * maintenanceFee / 100;
        uint256 tReflection = tAmount * reflectionFee / 100;
        uint256 tTransferAmount = tAmount - tMaintenance - tReflection;
        return (tTransferAmount, tMaintenance, tReflection);
    }

    function _getRValues(uint256 tAmount, uint256 tMaintenance, uint256 tReflection, uint256 currentRate) private pure returns (uint256, uint256, uint256, uint256) {
        uint256 rAmount = tAmount * currentRate;
        uint256 rMaintenance = tMaintenance * currentRate;
        uint256 rReflection = tReflection * currentRate;
        uint256 rTransferAmount = rAmount - rMaintenance - rReflection;
        return (rAmount, rTransferAmount, rReflection, rMaintenance);
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;

        uint256 rOwnedBurnAddress = _rOwned[BURN_ADDRESS];
        uint256 tOwnedBurnAddress = _tOwnedBurnAddress;

        if (rOwnedBurnAddress > rSupply || 
            tOwnedBurnAddress > tSupply || 
            (rSupply / tSupply) > (rSupply - rOwnedBurnAddress) 
        ) return (rSupply, tSupply);

        return (rSupply - rOwnedBurnAddress, tSupply - tOwnedBurnAddress);
    }

    function setIsExcludedFromFee(address account, bool toggle) external onlyOwner {
        _isExcludedFromFee[account] = toggle;
    }
        
    function updateSwapLimit(uint104 amount) external onlyOwner {
        swapLimit = amount;
    }
    
    function updateFeeReceiver(address payable maintenanceAddress) external onlyOwner {
        _maintenanceAddress = maintenanceAddress;
        _isExcludedFromFee[maintenanceAddress] = true;
    }

    function updateSigner(address signer) external onlyOwner {
        _csigner = signer;
    }

    receive() external payable {}

    function updateTaxes(Fee memory fees) external onlyOwner {
        require((fees.buyMaintenanceFee + fees.buyReflectionFee < 20) && 
            (fees.sellMaintenanceFee + fees.sellReflectionFee < 20), "Fees must be less than 20%");
        _buySellFee = fees;
    }
    
    function recoverStuckTokens(address addr, uint256 amount) external onlyOwner {
        IERC20(addr).transfer(_msgSender(), amount);
    }

    function airdropCollectedByAddress(address account) public view returns (Airdrop memory) {
        return _airdrop[account];
    }

    function airdropCollectedByHash(bytes32 hash) public view returns (bool) {
        return _claimedHash[hash];
    }

    function claim(bytes32 hash, uint256 amount, uint8 v, bytes32 r, bytes32 s) external {
        require(!_claimedHash[hash] && _airdrop[_msgSender()].blockNo == 0, "$SOCIAL: Claimed");
        uint256 claimAmount = amount * (10 ** DECIMALS);
        require(_tTotal + claimAmount <= MAX_SUPPLY, "$SOCIAL: Exceed max supply");
 
        bytes32 digest = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", 
            _hashTypedDataV4(keccak256(abi.encode(AIRDROP_CALL_HASH_TYPE, hash, _msgSender(), amount)))
        ));
        require(ecrecover(digest, v, r, s) == _csigner, "$SOCIAL: Invalid signer");
        
        _airdropTokens(hash, _msgSender(), uint128(claimAmount));
    }

    function _airdropTokens(bytes32 hash, address account, uint128 amount) internal virtual {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 tTransferAmount, uint256 rMaintenance) = _getValuesBuy(amount, _buySellFee);

        _airdrop[account].blockNo = uint128(block.number + STAKING_BLOCKS_COUNT);
        _airdrop[account].amount = uint128(tTransferAmount);
        _claimedHash[hash] = true;

        _tTotal += amount;
        _rOwned[address(this)] += rMaintenance;
        _rTotal = _rTotal + rAmount - rReflection;
        _rOwned[account] += rTransferAmount;
        
        emit Transfer(address(0), account, tTransferAmount);
    }

    function vestedTokens(address account) public view returns (uint256 tokenBalance, uint256 tTokenVested, uint256 vestingBlocks) {
        Airdrop memory airdrop = _airdrop[account];
        tokenBalance = tokenFromReflection(_rOwned[account]);
        tTokenVested = tokenBalance;
        vestingBlocks = 0;

        if (airdrop.blockNo > block.number) {
            uint256 rTokenVested = _rOwned[account] - airdrop.amount * (((airdrop.blockNo - block.number) * _getRate()) / STAKING_BLOCKS_COUNT);
            tTokenVested = tokenFromReflection(rTokenVested);
            vestingBlocks = airdrop.blockNo - block.number;
        }

        return (tokenBalance, tTokenVested, vestingBlocks);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"addrDAO","type":"address"},{"internalType":"address","name":"addrStaking","type":"address"},{"internalType":"address","name":"addrLP","type":"address"},{"internalType":"address","name":"maintainer","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"AMOUNT_DAO_PERC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AMOUNT_LP_PERC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AMOUNT_STAKING_PERC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"airdropCollectedByAddress","outputs":[{"components":[{"internalType":"uint128","name":"blockNo","type":"uint128"},{"internalType":"uint128","name":"amount","type":"uint128"}],"internalType":"struct $SOCIAL.Airdrop","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"airdropCollectedByHash","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"initialBlocks","type":"uint32"}],"name":"startTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"perc","type":"uint256"}],"name":"triggerSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"maintenanceAddress","type":"address"}],"name":"updateFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"updateSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint104","name":"amount","type":"uint104"}],"name":"updateSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"buyMaintenanceFee","type":"uint64"},{"internalType":"uint64","name":"buyReflectionFee","type":"uint64"},{"internalType":"uint64","name":"sellMaintenanceFee","type":"uint64"},{"internalType":"uint64","name":"sellReflectionFee","type":"uint64"}],"internalType":"struct $SOCIAL.Fee","name":"fees","type":"tuple"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"vestedTokens","outputs":[{"internalType":"uint256","name":"tokenBalance","type":"uint256"},{"internalType":"uint256","name":"tTokenVested","type":"uint256"},{"internalType":"uint256","name":"vestingBlocks","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101a0604052601462000014600a8262000834565b62000020919062000834565b620000366064683635c9adc5dea0000062000865565b6200004291906200087c565b600455601462000054600a8262000834565b62000060919062000834565b606462000079683635c9adc5dea000006000196200089e565b6200008790600019620008b5565b62000093919062000865565b6200009f91906200087c565b6005556006805460ff19169055620000c36103e8683635c9adc5dea0000062000865565b600680546001600160681b0392909216660100000000000002600160301b600160981b0319909216919091179055604080516080810182526008808252600260208301819052928201526060015278020000000000000008000000000000000200000000000000086009553480156200013b57600080fd5b506040516200337f3803806200337f8339810160408190526200015e91620008ec565b604051806040016040528060078152602001660914d3d0d2505360ca1b815250604051806040016040528060018152602001603160f81b815250620001a8620006ee60201b60201c565b600080546001600160a01b0319166001600160a01b0392909216919091179055815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c080860180845284519489019490942090945290925261012093909352737a250d5630b4cf539739df2c5dacb4c659f2488d6101408190526315ab88c960e31b90935251919263ad5c46489260c4808401938290030181865afa158015620002ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d191906200095c565b6001600160a01b03166101805261014051620002f9903090683635c9adc5dea00000620006f2565b610140516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036191906200095c565b610180516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620003b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003da91906200095c565b6001600160a01b039081166101608190526101405160405163095ea7b360e01b81529216600483015260001960248301529063095ea7b3906044016020604051808303816000875af115801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b919062000981565b50600a80546001600160a01b0319166001600160a01b0384161790556014606462000492683635c9adc5dea000006000196200089e565b620004a090600019620008b5565b620004ac919062000865565b620004b891906200087c565b6001600160a01b038616600090815260016020526040902055600a6064620004ec683635c9adc5dea000006000196200089e565b620004fa90600019620008b5565b62000506919062000865565b6200051291906200087c565b6001600160a01b0385166000908152600160205260409020556014606462000546683635c9adc5dea000006000196200089e565b6200055490600019620008b5565b62000560919062000865565b6200056c91906200087c565b6001600160a01b038481166000818152600160208181526040808420969096558a85168084526003909152858320805460ff1990811684179091558a861684528684208054821684179055938352858320805485168317905530835285832080548516831790558785168352948220805490931617909155600b80546001600160a01b031916928516929092179091556000805160206200335f8339815191526064620006246014683635c9adc5dea000006200087c565b62000630919062000865565b60405190815260200160405180910390a36001600160a01b03841660006000805160206200335f833981519152606462000675600a683635c9adc5dea000006200087c565b62000681919062000865565b60405190815260200160405180910390a36001600160a01b03831660006000805160206200335f8339815191526064620006c66014683635c9adc5dea000006200087c565b620006d2919062000865565b60405190815260200160405180910390a35050505050620009a5565b3390565b6001600160a01b0383166200075a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620007bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000751565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156200084a576200084a6200081e565b500190565b634e487b7160e01b600052601260045260246000fd5b6000826200087757620008776200084f565b500490565b60008160001904831182151516156200089957620008996200081e565b500290565b600082620008b057620008b06200084f565b500690565b600082821015620008ca57620008ca6200081e565b500390565b80516001600160a01b0381168114620008e757600080fd5b919050565b600080600080600060a086880312156200090557600080fd5b6200091086620008cf565b94506200092060208701620008cf565b93506200093060408701620008cf565b92506200094060608701620008cf565b91506200095060808701620008cf565b90509295509295909350565b6000602082840312156200096f57600080fd5b6200097a82620008cf565b9392505050565b6000602082840312156200099457600080fd5b815180151581146200097a57600080fd5b60805160a05160c05160e051610100516101205161014051610160516101805161293462000a2b6000396000611aa30152600081816103480152818161178f0152818161181e0152611e0601526000611b1601526000611c2001526000611c6f01526000611c4a01526000611ba301526000611bcd01526000611bf701526129346000f3fe6080604052600436106101bb5760003560e01c8063c596f3fe116100ec578063ef422a181161008a578063f2fde38b11610064578063f2fde38b14610620578063f4c53cdb14610640578063f5d4528314610523578063f8e5884b1461065557600080fd5b8063ef422a1814610538578063efabd85814610558578063f2a4e37d1461058857600080fd5b8063d4d5d32a116100c6578063d4d5d32a146104a8578063dd62ed3e146104bd578063e406393a14610503578063ee21422d1461052357600080fd5b8063c596f3fe14610448578063c69bebe414610468578063cba5c9181461048857600080fd5b80633dee03971161015957806395d89b411161013357806395d89b41146103a2578063a7ecd37e146103e8578063a9059cbb14610408578063c4bd2b051461042857600080fd5b80633dee0397146102fb57806349bd5a5e1461033657806370a082311461038257600080fd5b806318160ddd1161019557806318160ddd1461027157806323b872dd146102905780632f54bf6e146102b0578063313ce567146102df57600080fd5b806306fdde03146101c7578063095ea7b31461021f578063129217581461024f57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600981527f536f6369616c44414f000000000000000000000000000000000000000000000060208201525b60405161021691906123a0565b60405180910390f35b34801561022b57600080fd5b5061023f61023a36600461240a565b610675565b6040519015158152602001610216565b34801561025b57600080fd5b5061026f61026a366004612436565b61068c565b005b34801561027d57600080fd5b506004545b604051908152602001610216565b34801561029c57600080fd5b5061023f6102ab366004612485565b61091d565b3480156102bc57600080fd5b5061023f6102cb3660046124c6565b6000546001600160a01b0391821691161490565b3480156102eb57600080fd5b5060405160098152602001610216565b34801561030757600080fd5b5061031b6103163660046124c6565b6109dc565b60408051938452602084019290925290820152606001610216565b34801561034257600080fd5b5061036a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610216565b34801561038e57600080fd5b5061028261039d3660046124c6565b610af5565b3480156103ae57600080fd5b5060408051808201909152600781527f24534f4349414c000000000000000000000000000000000000000000000000006020820152610209565b3480156103f457600080fd5b5061026f6104033660046124c6565b610b17565b34801561041457600080fd5b5061023f61042336600461240a565b610b92565b34801561043457600080fd5b5061026f6104433660046124e3565b610b9f565b34801561045457600080fd5b5061026f61046336600461240a565b610cd4565b34801561047457600080fd5b5061026f6104833660046124c6565b610dbe565b34801561049457600080fd5b5061026f6104a3366004612526565b610e51565b3480156104b457600080fd5b5061026f610fce565b3480156104c957600080fd5b506102826104d83660046125b1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561050f57600080fd5b5061026f61051e3660046125ea565b611025565b34801561052f57600080fd5b50610282601481565b34801561054457600080fd5b5061026f610553366004612627565b6110bb565b34801561056457600080fd5b5061023f610573366004612655565b60009081526008602052604090205460ff1690565b34801561059457600080fd5b506105f96105a33660046124c6565b6040805180820190915260008082526020820152506001600160a01b03166000908152600760209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015290565b6040805182516001600160801b039081168252602093840151169281019290925201610216565b34801561062c57600080fd5b5061026f61063b3660046124c6565b611132565b34801561064c57600080fd5b50610282600a81565b34801561066157600080fd5b5061026f610670366004612655565b6111df565b6000610682338484611269565b5060015b92915050565b60008581526008602052604090205460ff161580156106c15750336000908152600760205260409020546001600160801b0316155b6107125760405162461bcd60e51b815260206004820152601060248201527f24534f4349414c3a20436c61696d65640000000000000000000000000000000060448201526064015b60405180910390fd5b60006107206009600a612768565b61072a9086612777565b9050683635c9adc5dea00000816004546107449190612796565b11156107925760405162461bcd60e51b815260206004820152601a60248201527f24534f4349414c3a20457863656564206d617820737570706c790000000000006044820152606401610709565b60006107ff7fb01451209fc457109231228824fc8bf1c5bd43328de897164a4c809a6085770688336040805160208101949094528301919091526001600160a01b031660608201526080810188905260a001604051602081830303815290604052805190602001206113c1565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c810191909152605c0160408051808303601f190181528282528051602091820120600b546000855291840180845281905260ff89169284019290925260608301879052608083018690529092506001600160a01b03169060019060a0016020604051602081039080840390855afa1580156108a9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316146109095760405162461bcd60e51b815260206004820152601760248201527f24534f4349414c3a20496e76616c6964207369676e65720000000000000000006044820152606401610709565b610914873384611423565b50505050505050565b600061092a8484846115c4565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156109c45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610709565b6109d18533858403611269565b506001949350505050565b6001600160a01b03811660008181526007602090815260408083208151808301835290546001600160801b038082168352600160801b9091041681840152938352600190915281205490918291829190610a3590611947565b9350839250600091504381600001516001600160801b03161115610aed576000617dfa610a606119de565b8351610a769043906001600160801b03166127ae565b610a809190612777565b610a8a91906127c5565b82602001516001600160801b0316610aa29190612777565b6001600160a01b038716600090815260016020526040902054610ac591906127ae565b9050610ad081611947565b8251909450610ae99043906001600160801b03166127ae565b9250505b509193909250565b6001600160a01b03811660009081526001602052604081205461068690611947565b6000546001600160a01b0316336001600160a01b031614610b635760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60006106823384846115c4565b6000546001600160a01b0316336001600160a01b031614610beb5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600654610100900460ff16158015610c09575060648163ffffffff16105b610c7b5760405162461bcd60e51b815260206004820152602760248201527f416c72656164792073746172746564206f7220626c6f636b20636f756e74207460448201527f6f6f206c6f6e67000000000000000000000000000000000000000000000000006064820152608401610709565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055610cb181436127e7565b600660026101000a81548163ffffffff021916908363ffffffff16021790555050565b6000546001600160a01b0316336001600160a01b031614610d205760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b6001600160a01b03821663a9059cbb336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db9919061280f565b505050565b6000546001600160a01b0316336001600160a01b031614610e0a5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600a80546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b0316336001600160a01b031614610e9d5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b60208101518151601491610eb09161282c565b67ffffffffffffffff16108015610ee45750601481606001518260400151610ed8919061282c565b67ffffffffffffffff16105b610f305760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e203230250000000000006044820152606401610709565b8051600980546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166001600160801b0392821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b6000546001600160a01b0316336001600160a01b03161461101a5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b61102347611a01565b565b6000546001600160a01b0316336001600160a01b0316146110715760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600680546cffffffffffffffffffffffffff9092166601000000000000027fffffffffffffffffffffffffff00000000000000000000000000ffffffffffff909216919091179055565b6000546001600160a01b0316336001600160a01b0316146111075760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b0316336001600160a01b03161461117e5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316336001600160a01b03161461122b5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b3060009081526001602052604090205461126690606490839061124d90611947565b6112579190612777565b61126191906127c5565b611a3f565b50565b6001600160a01b0383166112e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610709565b6001600160a01b0382166113605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610709565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113cb611b96565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b6040805160808101825260095467ffffffffffffffff808216835268010000000000000000820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090819081908190819061148f906001600160801b03881690611cbd565b94509450945094509450617dfa436114a79190612796565b6001600160a01b03881660009081526007602090815260408083206001600160801b03948516600160801b888716021790558b8352600890915281208054600160ff199091161790556004805492891692909190611506908490612796565b9091555050306000908152600160205260408120805483929061152a908490612796565b9091555050600554839061153f908790612796565b61154991906127ae565b6005556001600160a01b03871660009081526001602052604081208054869290611574908490612796565b90915550506040518281526001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050505050565b6001600160a01b038316158015906115e457506001600160a01b03821615155b6116565760405162461bcd60e51b815260206004820152602a60248201527f45524332303a207472616e7366657220696e766f6c76696e6720746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610709565b600081116116cc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610709565b600654610100900460ff16806116fa57506001600160a01b03821660009081526003602052604090205460ff165b8061171d57506001600160a01b03831660009081526003602052604090205460ff165b6117695760405162461bcd60e51b815260206004820152601560248201527f5472616e7366657273206e6f7420616c6c6f77656400000000000000000000006044820152606401610709565b6040805160808101825260008082526020820181905291810182905260608101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480156117e757506001600160a01b03831660009081526003602052604090205460ff16155b1561180e576006546118079062010000900463ffffffff16431115611d60565b9050611935565b60065460ff1615801561185357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b801561187857506001600160a01b03841660009081526003602052604090205460ff16155b15611935576006546118989062010000900463ffffffff16431115611d60565b600654909150660100000000000090046cffffffffffffffffffffffffff16158015906118f957506006543060009081526001602052604090205466010000000000009091046cffffffffffffffffffffffffff16906118f790611947565b115b156119235760065461192390660100000000000090046cffffffffffffffffffffffffff16611a3f565b4780156119335761193381611a01565b505b61194184848484611e04565b50505050565b60006005548211156119c15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610709565b60006119cb6119de565b90506119d781846127c5565b9392505050565b60008060006119eb611e5b565b90925090506119fa81836127c5565b9250505090565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a3b573d6000803e3d6000fd5b5050565b6006805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a8157611a8161284f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611ad557611ad561284f565b6001600160a01b039283166020918202929092010152600a546040517f791ac9470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000083169263791ac94792611b5692879260009288929116904290600401612865565b600060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b50506006805460ff1916905550505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611bef57507f000000000000000000000000000000000000000000000000000000000000000046145b15611c1957507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806000806000611ce960405180606001604052806000815260200160008152602001600081525090565b611d1088886000015167ffffffffffffffff16896020015167ffffffffffffffff16611f1b565b6040840152602083015281526000611d266119de565b9050600080600080611d428d8760200151886040015188611f79565b9851929d50909b509950975094955050505050509295509295909350565b60408051608081018252600080825260208201819052918101829052606081019190915281611ddb576040805160808101825260095467ffffffffffffffff808216835268010000000000000000820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610686565b505060408051608081018252606380825260006020830181905292820152606081019190915290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161415611e4f57611e4a84848484611fd3565b611941565b611941848484846120e3565b60055460045461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460065491938493909290919073010000000000000000000000000000000000000090046cffffffffffffffffffffffffff1683821180611ecf57508281115b80611eeb5750611edf82856127ae565b611ee984866127c5565b115b15611efb57509194909350915050565b611f0582856127ae565b611f0f82856127ae565b95509550505050509091565b60008080806064611f2c8789612777565b611f3691906127c5565b905060006064611f46878a612777565b611f5091906127c5565b9050600081611f5f848b6127ae565b611f6991906127ae565b9992985090965090945050505050565b600080808080611f89868a612777565b90506000611f97878a612777565b90506000611fa5888a612777565b9050600081611fb484866127ae565b611fbe91906127ae565b939c939b509099509097509095505050505050565b6000806000806000611fe58787611cbd565b6001600160a01b038e1660009081526001602052604081208054969b509499509297509095509350879261201a9084906127ae565b90915550506001600160a01b03881660009081526001602052604081208054869290612047908490612796565b9091555050306000908152600160205260408120805483929061206b908490612796565b92505081905550826005600082825461208491906127ae565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120d091815260200190565b60405180910390a3505050505050505050565b60008060008060006120f5878761234d565b6001600160a01b038e1660008181526007602090815260408083208151808301835290546001600160801b038082168352600160801b9091048116828501529484526001909252909120548151979c50959a5093985091965094509092439116111561220357617dfa6121688a896127c5565b835161217e9043906001600160801b03166127ae565b6121889190612777565b61219291906127c5565b82602001516001600160801b03166121aa9190612777565b6121b490826127ae565b8711156122035760405162461bcd60e51b815260206004820152601960248201527f546f6b656e73206c6f636b656420666f72207374616b696e67000000000000006044820152606401610709565b61220d87826127ae565b6001600160a01b03808d1660009081526001602052604080822093909355908c1681529081208054889290612243908490612796565b90915550503060009081526001602052604081208054859290612267908490612796565b90915550506001600160a01b038a1661dead14156122da5783600660138282829054906101000a90046cffffffffffffffffffffffffff166122a991906128d6565b92506101000a8154816cffffffffffffffffffffffffff02191690836cffffffffffffffffffffffffff1602179055505b84600560008282546122ec91906127ae565b92505081905550896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161233891815260200190565b60405180910390a35050505050505050505050565b600080600080600061237960405180606001604052806000815260200160008152602001600081525090565b611d1088886040015167ffffffffffffffff16896060015167ffffffffffffffff16611f1b565b600060208083528351808285015260005b818110156123cd578581018301518582016040015282016123b1565b818111156123df576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461126657600080fd5b6000806040838503121561241d57600080fd5b8235612428816123f5565b946020939093013593505050565b600080600080600060a0868803121561244e57600080fd5b8535945060208601359350604086013560ff8116811461246d57600080fd5b94979396509394606081013594506080013592915050565b60008060006060848603121561249a57600080fd5b83356124a5816123f5565b925060208401356124b5816123f5565b929592945050506040919091013590565b6000602082840312156124d857600080fd5b81356119d7816123f5565b6000602082840312156124f557600080fd5b813563ffffffff811681146119d757600080fd5b803567ffffffffffffffff8116811461252157600080fd5b919050565b60006080828403121561253857600080fd5b6040516080810181811067ffffffffffffffff8211171561256957634e487b7160e01b600052604160045260246000fd5b60405261257583612509565b815261258360208401612509565b602082015261259460408401612509565b60408201526125a560608401612509565b60608201529392505050565b600080604083850312156125c457600080fd5b82356125cf816123f5565b915060208301356125df816123f5565b809150509250929050565b6000602082840312156125fc57600080fd5b81356cffffffffffffffffffffffffff811681146119d757600080fd5b801515811461126657600080fd5b6000806040838503121561263a57600080fd5b8235612645816123f5565b915060208301356125df81612619565b60006020828403121561266757600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156126bf5781600019048211156126a5576126a561266e565b808516156126b257918102915b93841c9390800290612689565b509250929050565b6000826126d657506001610686565b816126e357506000610686565b81600181146126f957600281146127035761271f565b6001915050610686565b60ff8411156127145761271461266e565b50506001821b610686565b5060208310610133831016604e8410600b8410161715612742575081810a610686565b61274c8383612684565b80600019048211156127605761276061266e565b029392505050565b60006119d760ff8416836126c7565b60008160001904831182151516156127915761279161266e565b500290565b600082198211156127a9576127a961266e565b500190565b6000828210156127c0576127c061266e565b500390565b6000826127e257634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff8083168185168083038211156128065761280661266e565b01949350505050565b60006020828403121561282157600080fd5b81516119d781612619565b600067ffffffffffffffff8083168185168083038211156128065761280661266e565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b55784516001600160a01b031683529383019391830191600101612890565b50506001600160a01b03969096166060850152505050608001529392505050565b60006cffffffffffffffffffffffffff8083168185168083038211156128065761280661266e56fea2646970667358221220f8076a16343f7f27a983b33449f5a22698d71e99a571f1ef2d6b8dc745823b3764736f6c634300080c0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000e49e777e77ecc77706312765b8e1816ad83d5f7a00000000000000000000000065a64a9866429c1b7d8160bf917a8891abce43e4000000000000000000000000de2f74f11534f1e6d33b6a2acedcce7e8f78a034000000000000000000000000d72defc70b9308184cfd9c0ff85a7ad91ec1c1d200000000000000000000000037ff351b21fdc73df394642bfe7da501a4cd5fc9

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063c596f3fe116100ec578063ef422a181161008a578063f2fde38b11610064578063f2fde38b14610620578063f4c53cdb14610640578063f5d4528314610523578063f8e5884b1461065557600080fd5b8063ef422a1814610538578063efabd85814610558578063f2a4e37d1461058857600080fd5b8063d4d5d32a116100c6578063d4d5d32a146104a8578063dd62ed3e146104bd578063e406393a14610503578063ee21422d1461052357600080fd5b8063c596f3fe14610448578063c69bebe414610468578063cba5c9181461048857600080fd5b80633dee03971161015957806395d89b411161013357806395d89b41146103a2578063a7ecd37e146103e8578063a9059cbb14610408578063c4bd2b051461042857600080fd5b80633dee0397146102fb57806349bd5a5e1461033657806370a082311461038257600080fd5b806318160ddd1161019557806318160ddd1461027157806323b872dd146102905780632f54bf6e146102b0578063313ce567146102df57600080fd5b806306fdde03146101c7578063095ea7b31461021f578063129217581461024f57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600981527f536f6369616c44414f000000000000000000000000000000000000000000000060208201525b60405161021691906123a0565b60405180910390f35b34801561022b57600080fd5b5061023f61023a36600461240a565b610675565b6040519015158152602001610216565b34801561025b57600080fd5b5061026f61026a366004612436565b61068c565b005b34801561027d57600080fd5b506004545b604051908152602001610216565b34801561029c57600080fd5b5061023f6102ab366004612485565b61091d565b3480156102bc57600080fd5b5061023f6102cb3660046124c6565b6000546001600160a01b0391821691161490565b3480156102eb57600080fd5b5060405160098152602001610216565b34801561030757600080fd5b5061031b6103163660046124c6565b6109dc565b60408051938452602084019290925290820152606001610216565b34801561034257600080fd5b5061036a7f000000000000000000000000341a36f607cfec6dad3a634d8137a6f775b11beb81565b6040516001600160a01b039091168152602001610216565b34801561038e57600080fd5b5061028261039d3660046124c6565b610af5565b3480156103ae57600080fd5b5060408051808201909152600781527f24534f4349414c000000000000000000000000000000000000000000000000006020820152610209565b3480156103f457600080fd5b5061026f6104033660046124c6565b610b17565b34801561041457600080fd5b5061023f61042336600461240a565b610b92565b34801561043457600080fd5b5061026f6104433660046124e3565b610b9f565b34801561045457600080fd5b5061026f61046336600461240a565b610cd4565b34801561047457600080fd5b5061026f6104833660046124c6565b610dbe565b34801561049457600080fd5b5061026f6104a3366004612526565b610e51565b3480156104b457600080fd5b5061026f610fce565b3480156104c957600080fd5b506102826104d83660046125b1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561050f57600080fd5b5061026f61051e3660046125ea565b611025565b34801561052f57600080fd5b50610282601481565b34801561054457600080fd5b5061026f610553366004612627565b6110bb565b34801561056457600080fd5b5061023f610573366004612655565b60009081526008602052604090205460ff1690565b34801561059457600080fd5b506105f96105a33660046124c6565b6040805180820190915260008082526020820152506001600160a01b03166000908152600760209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015290565b6040805182516001600160801b039081168252602093840151169281019290925201610216565b34801561062c57600080fd5b5061026f61063b3660046124c6565b611132565b34801561064c57600080fd5b50610282600a81565b34801561066157600080fd5b5061026f610670366004612655565b6111df565b6000610682338484611269565b5060015b92915050565b60008581526008602052604090205460ff161580156106c15750336000908152600760205260409020546001600160801b0316155b6107125760405162461bcd60e51b815260206004820152601060248201527f24534f4349414c3a20436c61696d65640000000000000000000000000000000060448201526064015b60405180910390fd5b60006107206009600a612768565b61072a9086612777565b9050683635c9adc5dea00000816004546107449190612796565b11156107925760405162461bcd60e51b815260206004820152601a60248201527f24534f4349414c3a20457863656564206d617820737570706c790000000000006044820152606401610709565b60006107ff7fb01451209fc457109231228824fc8bf1c5bd43328de897164a4c809a6085770688336040805160208101949094528301919091526001600160a01b031660608201526080810188905260a001604051602081830303815290604052805190602001206113c1565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c810191909152605c0160408051808303601f190181528282528051602091820120600b546000855291840180845281905260ff89169284019290925260608301879052608083018690529092506001600160a01b03169060019060a0016020604051602081039080840390855afa1580156108a9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316146109095760405162461bcd60e51b815260206004820152601760248201527f24534f4349414c3a20496e76616c6964207369676e65720000000000000000006044820152606401610709565b610914873384611423565b50505050505050565b600061092a8484846115c4565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156109c45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610709565b6109d18533858403611269565b506001949350505050565b6001600160a01b03811660008181526007602090815260408083208151808301835290546001600160801b038082168352600160801b9091041681840152938352600190915281205490918291829190610a3590611947565b9350839250600091504381600001516001600160801b03161115610aed576000617dfa610a606119de565b8351610a769043906001600160801b03166127ae565b610a809190612777565b610a8a91906127c5565b82602001516001600160801b0316610aa29190612777565b6001600160a01b038716600090815260016020526040902054610ac591906127ae565b9050610ad081611947565b8251909450610ae99043906001600160801b03166127ae565b9250505b509193909250565b6001600160a01b03811660009081526001602052604081205461068690611947565b6000546001600160a01b0316336001600160a01b031614610b635760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60006106823384846115c4565b6000546001600160a01b0316336001600160a01b031614610beb5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600654610100900460ff16158015610c09575060648163ffffffff16105b610c7b5760405162461bcd60e51b815260206004820152602760248201527f416c72656164792073746172746564206f7220626c6f636b20636f756e74207460448201527f6f6f206c6f6e67000000000000000000000000000000000000000000000000006064820152608401610709565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055610cb181436127e7565b600660026101000a81548163ffffffff021916908363ffffffff16021790555050565b6000546001600160a01b0316336001600160a01b031614610d205760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b6001600160a01b03821663a9059cbb336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610d95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db9919061280f565b505050565b6000546001600160a01b0316336001600160a01b031614610e0a5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600a80546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b0316336001600160a01b031614610e9d5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b60208101518151601491610eb09161282c565b67ffffffffffffffff16108015610ee45750601481606001518260400151610ed8919061282c565b67ffffffffffffffff16105b610f305760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e203230250000000000006044820152606401610709565b8051600980546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166001600160801b0392821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b6000546001600160a01b0316336001600160a01b03161461101a5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b61102347611a01565b565b6000546001600160a01b0316336001600160a01b0316146110715760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b600680546cffffffffffffffffffffffffff9092166601000000000000027fffffffffffffffffffffffffff00000000000000000000000000ffffffffffff909216919091179055565b6000546001600160a01b0316336001600160a01b0316146111075760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b0316336001600160a01b03161461117e5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316336001600160a01b03161461122b5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610709565b3060009081526001602052604090205461126690606490839061124d90611947565b6112579190612777565b61126191906127c5565b611a3f565b50565b6001600160a01b0383166112e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610709565b6001600160a01b0382166113605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610709565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113cb611b96565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b6040805160808101825260095467ffffffffffffffff808216835268010000000000000000820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090819081908190819061148f906001600160801b03881690611cbd565b94509450945094509450617dfa436114a79190612796565b6001600160a01b03881660009081526007602090815260408083206001600160801b03948516600160801b888716021790558b8352600890915281208054600160ff199091161790556004805492891692909190611506908490612796565b9091555050306000908152600160205260408120805483929061152a908490612796565b9091555050600554839061153f908790612796565b61154991906127ae565b6005556001600160a01b03871660009081526001602052604081208054869290611574908490612796565b90915550506040518281526001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050505050565b6001600160a01b038316158015906115e457506001600160a01b03821615155b6116565760405162461bcd60e51b815260206004820152602a60248201527f45524332303a207472616e7366657220696e766f6c76696e6720746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610709565b600081116116cc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610709565b600654610100900460ff16806116fa57506001600160a01b03821660009081526003602052604090205460ff165b8061171d57506001600160a01b03831660009081526003602052604090205460ff165b6117695760405162461bcd60e51b815260206004820152601560248201527f5472616e7366657273206e6f7420616c6c6f77656400000000000000000000006044820152606401610709565b6040805160808101825260008082526020820181905291810182905260608101919091527f000000000000000000000000341a36f607cfec6dad3a634d8137a6f775b11beb6001600160a01b0316846001600160a01b03161480156117e757506001600160a01b03831660009081526003602052604090205460ff16155b1561180e576006546118079062010000900463ffffffff16431115611d60565b9050611935565b60065460ff1615801561185357507f000000000000000000000000341a36f607cfec6dad3a634d8137a6f775b11beb6001600160a01b0316846001600160a01b031614155b801561187857506001600160a01b03841660009081526003602052604090205460ff16155b15611935576006546118989062010000900463ffffffff16431115611d60565b600654909150660100000000000090046cffffffffffffffffffffffffff16158015906118f957506006543060009081526001602052604090205466010000000000009091046cffffffffffffffffffffffffff16906118f790611947565b115b156119235760065461192390660100000000000090046cffffffffffffffffffffffffff16611a3f565b4780156119335761193381611a01565b505b61194184848484611e04565b50505050565b60006005548211156119c15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610709565b60006119cb6119de565b90506119d781846127c5565b9392505050565b60008060006119eb611e5b565b90925090506119fa81836127c5565b9250505090565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a3b573d6000803e3d6000fd5b5050565b6006805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a8157611a8161284f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611ad557611ad561284f565b6001600160a01b039283166020918202929092010152600a546040517f791ac9470000000000000000000000000000000000000000000000000000000081527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83169263791ac94792611b5692879260009288929116904290600401612865565b600060405180830381600087803b158015611b7057600080fd5b505af1158015611b84573d6000803e3d6000fd5b50506006805460ff1916905550505050565b6000306001600160a01b037f00000000000000000000000082e56445f3f2fab317098f242c8bf4c56785eb0216148015611bef57507f000000000000000000000000000000000000000000000000000000000000000146145b15611c1957507f877e5f8278345bb9705e2bb877d81084db6a0d8866a90988f5f277d7294212ab90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fbd9242123b3b00b0ec17071e561bc40012c98e230f0b76722721928d8b69e8aa828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806000806000611ce960405180606001604052806000815260200160008152602001600081525090565b611d1088886000015167ffffffffffffffff16896020015167ffffffffffffffff16611f1b565b6040840152602083015281526000611d266119de565b9050600080600080611d428d8760200151886040015188611f79565b9851929d50909b509950975094955050505050509295509295909350565b60408051608081018252600080825260208201819052918101829052606081019190915281611ddb576040805160808101825260095467ffffffffffffffff808216835268010000000000000000820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610686565b505060408051608081018252606380825260006020830181905292820152606081019190915290565b7f000000000000000000000000341a36f607cfec6dad3a634d8137a6f775b11beb6001600160a01b0316846001600160a01b03161415611e4f57611e4a84848484611fd3565b611941565b611941848484846120e3565b60055460045461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460065491938493909290919073010000000000000000000000000000000000000090046cffffffffffffffffffffffffff1683821180611ecf57508281115b80611eeb5750611edf82856127ae565b611ee984866127c5565b115b15611efb57509194909350915050565b611f0582856127ae565b611f0f82856127ae565b95509550505050509091565b60008080806064611f2c8789612777565b611f3691906127c5565b905060006064611f46878a612777565b611f5091906127c5565b9050600081611f5f848b6127ae565b611f6991906127ae565b9992985090965090945050505050565b600080808080611f89868a612777565b90506000611f97878a612777565b90506000611fa5888a612777565b9050600081611fb484866127ae565b611fbe91906127ae565b939c939b509099509097509095505050505050565b6000806000806000611fe58787611cbd565b6001600160a01b038e1660009081526001602052604081208054969b509499509297509095509350879261201a9084906127ae565b90915550506001600160a01b03881660009081526001602052604081208054869290612047908490612796565b9091555050306000908152600160205260408120805483929061206b908490612796565b92505081905550826005600082825461208491906127ae565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120d091815260200190565b60405180910390a3505050505050505050565b60008060008060006120f5878761234d565b6001600160a01b038e1660008181526007602090815260408083208151808301835290546001600160801b038082168352600160801b9091048116828501529484526001909252909120548151979c50959a5093985091965094509092439116111561220357617dfa6121688a896127c5565b835161217e9043906001600160801b03166127ae565b6121889190612777565b61219291906127c5565b82602001516001600160801b03166121aa9190612777565b6121b490826127ae565b8711156122035760405162461bcd60e51b815260206004820152601960248201527f546f6b656e73206c6f636b656420666f72207374616b696e67000000000000006044820152606401610709565b61220d87826127ae565b6001600160a01b03808d1660009081526001602052604080822093909355908c1681529081208054889290612243908490612796565b90915550503060009081526001602052604081208054859290612267908490612796565b90915550506001600160a01b038a1661dead14156122da5783600660138282829054906101000a90046cffffffffffffffffffffffffff166122a991906128d6565b92506101000a8154816cffffffffffffffffffffffffff02191690836cffffffffffffffffffffffffff1602179055505b84600560008282546122ec91906127ae565b92505081905550896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161233891815260200190565b60405180910390a35050505050505050505050565b600080600080600061237960405180606001604052806000815260200160008152602001600081525090565b611d1088886040015167ffffffffffffffff16896060015167ffffffffffffffff16611f1b565b600060208083528351808285015260005b818110156123cd578581018301518582016040015282016123b1565b818111156123df576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461126657600080fd5b6000806040838503121561241d57600080fd5b8235612428816123f5565b946020939093013593505050565b600080600080600060a0868803121561244e57600080fd5b8535945060208601359350604086013560ff8116811461246d57600080fd5b94979396509394606081013594506080013592915050565b60008060006060848603121561249a57600080fd5b83356124a5816123f5565b925060208401356124b5816123f5565b929592945050506040919091013590565b6000602082840312156124d857600080fd5b81356119d7816123f5565b6000602082840312156124f557600080fd5b813563ffffffff811681146119d757600080fd5b803567ffffffffffffffff8116811461252157600080fd5b919050565b60006080828403121561253857600080fd5b6040516080810181811067ffffffffffffffff8211171561256957634e487b7160e01b600052604160045260246000fd5b60405261257583612509565b815261258360208401612509565b602082015261259460408401612509565b60408201526125a560608401612509565b60608201529392505050565b600080604083850312156125c457600080fd5b82356125cf816123f5565b915060208301356125df816123f5565b809150509250929050565b6000602082840312156125fc57600080fd5b81356cffffffffffffffffffffffffff811681146119d757600080fd5b801515811461126657600080fd5b6000806040838503121561263a57600080fd5b8235612645816123f5565b915060208301356125df81612619565b60006020828403121561266757600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156126bf5781600019048211156126a5576126a561266e565b808516156126b257918102915b93841c9390800290612689565b509250929050565b6000826126d657506001610686565b816126e357506000610686565b81600181146126f957600281146127035761271f565b6001915050610686565b60ff8411156127145761271461266e565b50506001821b610686565b5060208310610133831016604e8410600b8410161715612742575081810a610686565b61274c8383612684565b80600019048211156127605761276061266e565b029392505050565b60006119d760ff8416836126c7565b60008160001904831182151516156127915761279161266e565b500290565b600082198211156127a9576127a961266e565b500190565b6000828210156127c0576127c061266e565b500390565b6000826127e257634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff8083168185168083038211156128065761280661266e565b01949350505050565b60006020828403121561282157600080fd5b81516119d781612619565b600067ffffffffffffffff8083168185168083038211156128065761280661266e565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b55784516001600160a01b031683529383019391830191600101612890565b50506001600160a01b03969096166060850152505050608001529392505050565b60006cffffffffffffffffffffffffff8083168185168083038211156128065761280661266e56fea2646970667358221220f8076a16343f7f27a983b33449f5a22698d71e99a571f1ef2d6b8dc745823b3764736f6c634300080c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000e49e777e77ecc77706312765b8e1816ad83d5f7a00000000000000000000000065a64a9866429c1b7d8160bf917a8891abce43e4000000000000000000000000de2f74f11534f1e6d33b6a2acedcce7e8f78a034000000000000000000000000d72defc70b9308184cfd9c0ff85a7ad91ec1c1d200000000000000000000000037ff351b21fdc73df394642bfe7da501a4cd5fc9

-----Decoded View---------------
Arg [0] : addrDAO (address): 0xE49E777e77ECc77706312765b8E1816ad83d5f7A
Arg [1] : addrStaking (address): 0x65A64a9866429c1b7d8160Bf917A8891aBCe43E4
Arg [2] : addrLP (address): 0xDE2F74F11534f1E6d33B6a2aCEDcce7e8F78A034
Arg [3] : maintainer (address): 0xD72DEFC70B9308184cFd9c0ff85A7Ad91EC1c1d2
Arg [4] : signer (address): 0x37Ff351B21fdc73DF394642Bfe7dA501a4cd5fc9

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000e49e777e77ecc77706312765b8e1816ad83d5f7a
Arg [1] : 00000000000000000000000065a64a9866429c1b7d8160bf917a8891abce43e4
Arg [2] : 000000000000000000000000de2f74f11534f1e6d33b6a2acedcce7e8f78a034
Arg [3] : 000000000000000000000000d72defc70b9308184cfd9c0ff85a7ad91ec1c1d2
Arg [4] : 00000000000000000000000037ff351b21fdc73df394642bfe7da501a4cd5fc9


Deployed Bytecode Sourcemap

4199:16244:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7938:77;;;;;;;;;;-1:-1:-1;8009:4:0;;;;;;;;;;;;;;;;;7938:77;;;;;;;:::i;:::-;;;;;;;;8718:163;;;;;;;;;;-1:-1:-1;8718:163:0;;;;;:::i;:::-;;:::i;:::-;;;1319:14:1;;1312:22;1294:41;;1282:2;1267:18;8718:163:0;1154:187:1;18321:707:0;;;;;;;;;;-1:-1:-1;18321:707:0;;;;;:::i;:::-;;:::i;:::-;;8191:81;;;;;;;;;;-1:-1:-1;8263:7:0;;8191:81;;;2040:25:1;;;2028:2;2013:18;8191:81:0;1894:177:1;8887:448:0;;;;;;;;;;-1:-1:-1;8887:448:0;;;;;:::i;:::-;;:::i;3316:103::-;;;;;;;;;;-1:-1:-1;3316:103:0;;;;;:::i;:::-;3371:4;3406:5;-1:-1:-1;;;;;3395:16:0;;;3406:5;;3395:16;;3316:103;8108:77;;;;;;;;;;-1:-1:-1;8108:77:0;;4388:1;2931:36:1;;2919:2;2904:18;8108:77:0;2789:184:1;19730:710:0;;;;;;;;;;-1:-1:-1;19730:710:0;;;;;:::i;:::-;;:::i;:::-;;;;3180:25:1;;;3236:2;3221:18;;3214:34;;;;3264:18;;;3257:34;3168:2;3153:18;19730:710:0;2978:319:1;6301:38:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3466:55:1;;;3448:74;;3436:2;3421:18;6301:38:0;3302:226:1;8278:124:0;;;;;;;;;;-1:-1:-1;8278:124:0;;;;;:::i;:::-;;:::i;8021:81::-;;;;;;;;;;-1:-1:-1;8094:6:0;;;;;;;;;;;;;;;;;8021:81;;17489:93;;;;;;;;;;-1:-1:-1;17489:93:0;;;;;:::i;:::-;;:::i;8408:169::-;;;;;;;;;;-1:-1:-1;8408:169:0;;;;;:::i;:::-;;:::i;11663:254::-;;;;;;;;;;-1:-1:-1;11663:254:0;;;;;:::i;:::-;;:::i;17909:139::-;;;;;;;;;;-1:-1:-1;17909:139:0;;;;;:::i;:::-;;:::i;17284:197::-;;;;;;;;;;-1:-1:-1;17284:197:0;;;;;:::i;:::-;;:::i;17627:270::-;;;;;;;;;;-1:-1:-1;17627:270:0;;;;;:::i;:::-;;:::i;12088:97::-;;;;;;;;;;;;;:::i;8583:129::-;;;;;;;;;;-1:-1:-1;8583:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;8683:18:0;;;8666:7;8683:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8583:129;17175:97;;;;;;;;;;-1:-1:-1;17175:97:0;;;;;:::i;:::-;;:::i;4795:44::-;;;;;;;;;;;;4837:2;4795:44;;17025:134;;;;;;;;;;-1:-1:-1;17025:134:0;;;;;:::i;:::-;;:::i;18196:117::-;;;;;;;;;;-1:-1:-1;18196:117:0;;;;;:::i;:::-;18263:4;18287:18;;;:12;:18;;;;;;;;;18196:117;18056:132;;;;;;;;;;-1:-1:-1;18056:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;18163:17:0;;;;;:8;:17;;;;;;;;;18156:24;;;;;;;;;-1:-1:-1;;;;;18156:24:0;;;;;-1:-1:-1;;;18156:24:0;;;;;;;;;18056:132;;;;;6908:13:1;;-1:-1:-1;;;;;6904:22:1;;;6886:41;;6987:4;6975:17;;;6969:24;6965:33;6943:20;;;6936:63;;;;6806:18;18056:132:0;6639:366:1;3510:136:0;;;;;;;;;;-1:-1:-1;3510:136:0;;;;;:::i;:::-;;:::i;4866:48::-;;;;;;;;;;;;4912:2;4866:48;;11925:151;;;;;;;;;;-1:-1:-1;11925:151:0;;;;;:::i;:::-;;:::i;8718:163::-;8795:4;8812:39;2078:10;8835:7;8844:6;8812:8;:39::i;:::-;-1:-1:-1;8869:4:0;8718:163;;;;;:::o;18321:707::-;18426:18;;;;:12;:18;;;;;;;;18425:19;:58;;;;-1:-1:-1;2078:10:0;18448:22;;;;:8;:22;;;;;:30;-1:-1:-1;;;;;18448:30:0;:35;18425:58;18417:87;;;;-1:-1:-1;;;18417:87:0;;7397:2:1;18417:87:0;;;7379:21:1;7436:2;7416:18;;;7409:30;7475:18;7455;;;7448:46;7511:18;;18417:87:0;;;;;;;;;18515:19;18547:14;4388:1;18547:2;:14;:::i;:::-;18537:25;;:6;:25;:::i;:::-;18515:47;;4677:10;18591:11;18581:7;;:21;;;;:::i;:::-;:35;;18573:74;;;;-1:-1:-1;;;18573:74:0;;9800:2:1;18573:74:0;;;9782:21:1;9839:2;9819:18;;;9812:30;9878:28;9858:18;;;9851:56;9924:18;;18573:74:0;9598:350:1;18573:74:0;18661:14;18755:91;6539:53;18817:4;2078:10;18782:62;;;;;;10184:25:1;;;;10225:18;;10218:34;;;;-1:-1:-1;;;;;10288:55:1;10268:18;;;10261:83;10360:18;;;10353:34;;;10156:19;;18782:62:0;;;;;;;;;;;;18772:73;;;;;;18755:16;:91::i;:::-;18688:169;;10640:66:1;18688:169:0;;;10628:79:1;10723:12;;;10716:28;;;;10760:12;;18688:169:0;;;;;;-1:-1:-1;;18688:169:0;;;;;;18678:180;;18688:169;18678:180;;;;18907:8;;;18877:26;;;;;;;;11010:25:1;;;11083:4;11071:17;;11051:18;;;11044:45;;;;11105:18;;;11098:34;;;11148:18;;;11141:34;;;18678:180:0;;-1:-1:-1;;;;;;18907:8:0;;;;10982:19:1;;18877:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18877:38:0;;18869:74;;;;-1:-1:-1;;;18869:74:0;;11388:2:1;18869:74:0;;;11370:21:1;11427:2;11407:18;;;11400:30;11466:25;11446:18;;;11439:53;11509:18;;18869:74:0;11186:347:1;18869:74:0;18964:56;18979:4;2078:10;19007:11;18964:14;:56::i;:::-;18406:622;;18321:707;;;;;:::o;8887:448::-;8987:4;9004:36;9014:6;9022:9;9033:6;9004:9;:36::i;:::-;-1:-1:-1;;;;;9078:19:0;;9051:24;9078:19;;;:11;:19;;;;;;;;2078:10;9078:33;;;;;;;;9130:26;;;;9122:79;;;;-1:-1:-1;;;9122:79:0;;11740:2:1;9122:79:0;;;11722:21:1;11779:2;11759:18;;;11752:30;11818:34;11798:18;;;11791:62;11889:10;11869:18;;;11862:38;11917:19;;9122:79:0;11538:404:1;9122:79:0;9237:57;9246:6;2078:10;9287:6;9268:16;:25;9237:8;:57::i;:::-;-1:-1:-1;9323:4:0;;8887:448;-1:-1:-1;;;;8887:448:0:o;19730:710::-;-1:-1:-1;;;;;19893:17:0;;19790:20;19893:17;;;:8;:17;;;;;;;;19868:42;;;;;;;;;-1:-1:-1;;;;;19868:42:0;;;;;-1:-1:-1;;;19868:42:0;;;;;;;;19956:16;;;19868:42;19956:16;;;;;;19790:20;;;;;;19868:42;19936:37;;:19;:37::i;:::-;19921:52;;19999:12;19984:27;;20038:1;20022:17;;20074:12;20056:7;:15;;;-1:-1:-1;;;;;20056:30:0;;20052:318;;;20103:20;5469:8;20199:10;:8;:10::i;:::-;20165:15;;:30;;20183:12;;-1:-1:-1;;;;;20165:30:0;;:::i;:::-;20164:45;;;;:::i;:::-;20163:70;;;;:::i;:::-;20145:7;:14;;;-1:-1:-1;;;;;20145:89:0;;;;;:::i;:::-;-1:-1:-1;;;;;20126:16:0;;;;;;:7;:16;;;;;;:108;;;;:::i;:::-;20103:131;;20264:33;20284:12;20264:19;:33::i;:::-;20328:15;;20249:48;;-1:-1:-1;20328:30:0;;20346:12;;-1:-1:-1;;;;;20328:30:0;;:::i;:::-;20312:46;;20088:282;20052:318;20382:50;19730:710;;;;;:::o;8278:124::-;-1:-1:-1;;;;;8383:16:0;;8346:7;8383:16;;;:7;:16;;;;;;8363:37;;:19;:37::i;17489:93::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;17557:8:::1;:17:::0;;-1:-1:-1;;17557:17:0::1;-1:-1:-1::0;;;;;17557:17:0;;;::::1;::::0;;;::::1;::::0;;17489:93::o;8408:169::-;8488:4;8505:42;2078:10;8529:9;8540:6;8505:9;:42::i;11663:254::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;11742:9:::1;::::0;::::1;::::0;::::1;;;11741:10;:33:::0;::::1;;;;11771:3;11755:13;:19;;;11741:33;11733:85;;;::::0;-1:-1:-1;;;11733:85:0;;12892:2:1;11733:85:0::1;::::0;::::1;12874:21:1::0;12931:2;12911:18;;;12904:30;12970:34;12950:18;;;12943:62;13041:9;13021:18;;;13014:37;13068:19;;11733:85:0::1;12690:403:1::0;11733:85:0::1;11829:9;:16:::0;;;::::1;;;::::0;;11873:36:::1;11896:13:::0;11880:12:::1;11873:36;:::i;:::-;11856:14;;:53;;;;;;;;;;;;;;;;;;11663:254:::0;:::o;17909:139::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;-1:-1:-1;;;;;17997:21:0;::::1;;2078:10:::0;17997:43:::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;13523:55:1;;;17997:43:0::1;::::0;::::1;13505:74:1::0;13595:18;;;13588:34;;;13478:18;;17997:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17909:139:::0;;:::o;17284:197::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;17377:19:::1;:40:::0;;-1:-1:-1;;;;;17377:40:0;;::::1;-1:-1:-1::0;;17377:40:0;;::::1;::::0;::::1;::::0;;:19:::1;17428:38:::0;;;:18:::1;:38;::::0;;;;:45;;-1:-1:-1;;17428:45:0::1;17377:40:::0;17428:45:::1;::::0;;17284:197::o;17627:270::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;17729:21:::1;::::0;::::1;::::0;17704:22;;17753:2:::1;::::0;17704:46:::1;::::0;::::1;:::i;:::-;:51;;;17703:126;;;;;17826:2;17801:4;:22;;;17775:4;:23;;;:48;;;;:::i;:::-;:53;;;17703:126;17695:165;;;::::0;-1:-1:-1;;;17695:165:0;;14326:2:1;17695:165:0::1;::::0;::::1;14308:21:1::0;14365:2;14345:18;;;14338:30;14404:28;14384:18;;;14377:56;14450:18;;17695:165:0::1;14124:350:1::0;17695:165:0::1;17871:18:::0;;:11:::1;:18:::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;-1:-1:-1::0;;;17871:18:0::1;::::0;;;::::1;-1:-1:-1::0;;;17871:18:0::1;::::0;;;;-1:-1:-1;;;;;17871:18:0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;17627:270::o;12088:97::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;12140:37:::1;12155:21;12140:14;:37::i;:::-;12088:97::o:0;17175:::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;17246:9:::1;:18:::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17175:97::o;17025:134::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;-1:-1:-1;;;;;17115:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:36;;-1:-1:-1;;17115:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17025:134::o;3510:136::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;3586:5:::1;:11:::0;;-1:-1:-1;;3586:11:0::1;-1:-1:-1::0;;;;;3586:11:0;::::1;::::0;;::::1;::::0;;;3613:25:::1;::::0;3448:74:1;;;3613:25:0::1;::::0;3436:2:1;3421:18;3613:25:0::1;;;;;;;3510:136:::0;:::o;11925:151::-;3229:5;;-1:-1:-1;;;;;3229:5:0;2078:10;-1:-1:-1;;;;;3213:21:0;;3205:40;;;;-1:-1:-1;;;3205:40:0;;12558:2:1;3205:40:0;;;12540:21:1;12597:1;12577:18;;;12570:29;-1:-1:-1;;;12615:18:1;;;12608:36;12661:18;;3205:40:0;12356:329:1;3205:40:0;12047:4:::1;12031:22;::::0;;;:7:::1;:22;::::0;;;;;11990:78:::1;::::0;12064:3:::1;::::0;12057:4;;12011:43:::1;::::0;:19:::1;:43::i;:::-;:50;;;;:::i;:::-;:56;;;;:::i;:::-;11990:20;:78::i;:::-;11925:151:::0;:::o;9752:335::-;-1:-1:-1;;;;;9845:19:0;;9837:68;;;;-1:-1:-1;;;9837:68:0;;14920:2:1;9837:68:0;;;14902:21:1;14959:2;14939:18;;;14932:30;14998:34;14978:18;;;14971:62;15069:6;15049:18;;;15042:34;15093:19;;9837:68:0;14718:400:1;9837:68:0;-1:-1:-1;;;;;9924:21:0;;9916:68;;;;-1:-1:-1;;;9916:68:0;;15325:2:1;9916:68:0;;;15307:21:1;15364:2;15344:18;;;15337:30;15403:34;15383:18;;;15376:62;15474:4;15454:18;;;15447:32;15496:19;;9916:68:0;15123:398:1;9916:68:0;-1:-1:-1;;;;;9995:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10047:32;;2040:25:1;;;10047:32:0;;2013:18:1;10047:32:0;;;;;;;9752:335;;;:::o;1773:185::-;1850:7;1916:20;:18;:20::i;:::-;1887:62;;15796:66:1;1887:62:0;;;15784:79:1;15879:11;;;15872:27;;;;15915:12;;;15908:28;;;15952:12;;1887:62:0;;;;;;;;;;;;1877:73;;;;;;1870:80;;1773:185;;;:::o;19036:686::-;19248:34;;;;;;;;19270:11;19248:34;;;;;;;;;;;;;;;;-1:-1:-1;;;19248:34:0;;;;;;;;;;;-1:-1:-1;;;19248:34:0;;;;;;;;;19136:15;;;;;;;;;;19248:34;;-1:-1:-1;;;;;19248:34:0;;;:13;:34::i;:::-;19135:147;;;;;;;;;;5469:8;19331:12;:35;;;;:::i;:::-;-1:-1:-1;;;;;19295:17:0;;;;;;:8;:17;;;;;;;;-1:-1:-1;;;;;19295:72:0;;;-1:-1:-1;;;19378:51:0;;;;;;;19440:18;;;:12;:18;;;;;:25;;19295:72;-1:-1:-1;;19440:25:0;;;;;;19478:7;:17;;;;;;:7;;19295:17;19478;;;;;:::i;:::-;;;;-1:-1:-1;;19522:4:0;19506:22;;;;:7;:22;;;;;:38;;19532:12;;19506:22;:38;;19532:12;;19506:38;:::i;:::-;;;;-1:-1:-1;;19565:7:0;;19585:11;;19565:17;;19575:7;;19565:17;:::i;:::-;:31;;;;:::i;:::-;19555:7;:41;-1:-1:-1;;;;;19607:16:0;;;;;;:7;:16;;;;;:35;;19627:15;;19607:16;:35;;19627:15;;19607:35;:::i;:::-;;;;-1:-1:-1;;19668:46:0;;2040:25:1;;;-1:-1:-1;;;;;19668:46:0;;;19685:1;;19668:46;;2028:2:1;2013:18;19668:46:0;;;;;;;19124:598;;;;;19036:686;;;:::o;10095:1115::-;-1:-1:-1;;;;;10183:18:0;;;;;;:38;;-1:-1:-1;;;;;;10205:16:0;;;;10183:38;10175:93;;;;-1:-1:-1;;;10175:93:0;;16177:2:1;10175:93:0;;;16159:21:1;16216:2;16196:18;;;16189:30;16255:34;16235:18;;;16228:62;16326:12;16306:18;;;16299:40;16356:19;;10175:93:0;15975:406:1;10175:93:0;10296:1;10287:6;:10;10279:64;;;;-1:-1:-1;;;10279:64:0;;16588:2:1;10279:64:0;;;16570:21:1;16627:2;16607:18;;;16600:30;16666:34;16646:18;;;16639:62;16737:11;16717:18;;;16710:39;16766:19;;10279:64:0;16386:405:1;10279:64:0;10362:9;;;;;;;;:35;;-1:-1:-1;;;;;;10375:22:0;;;;;;:18;:22;;;;;;;;10362:35;:63;;;-1:-1:-1;;;;;;10401:24:0;;;;;;:18;:24;;;;;;;;10362:63;10354:97;;;;-1:-1:-1;;;10354:97:0;;16998:2:1;10354:97:0;;;16980:21:1;17037:2;17017:18;;;17010:30;17076:23;17056:18;;;17049:51;17117:18;;10354:97:0;16796:345:1;10354:97:0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10522:13:0;-1:-1:-1;;;;;10514:21:0;:4;-1:-1:-1;;;;;10514:21:0;;:48;;;;-1:-1:-1;;;;;;10540:22:0;;;;;;:18;:22;;;;;;;;10539:23;10514:48;10510:636;;;10615:14;;10592:38;;10615:14;;;;;10599:12;:30;;10592:6;:38::i;:::-;10579:51;;10510:636;;;10653:6;;;;10652:7;:32;;;;;10671:13;-1:-1:-1;;;;;10663:21:0;:4;-1:-1:-1;;;;;10663:21:0;;;10652:32;:61;;;;-1:-1:-1;;;;;;10689:24:0;;;;;;:18;:24;;;;;;;;10688:25;10652:61;10648:498;;;10803:14;;10780:38;;10803:14;;;;;10787:12;:30;;10780:6;:38::i;:::-;10839:9;;10767:51;;-1:-1:-1;10839:9:0;;;;;:13;;;;:72;;-1:-1:-1;10902:9:0;;10892:4;10876:22;;;;:7;:22;;;;;;10902:9;;;;;;;10856:43;;:19;:43::i;:::-;:55;10839:72;10835:144;;;10953:9;;10932:31;;10953:9;;;;;10932:20;:31::i;:::-;11036:21;11076:22;;11072:62;;11100:34;11115:18;11100:14;:34::i;:::-;10715:431;10648:498;11158:44;11173:4;11179:2;11183:6;11191:10;11158:14;:44::i;:::-;10164:1046;10095:1115;;;:::o;9343:248::-;9411:7;9450;;9439;:18;;9431:72;;;;-1:-1:-1;;;9431:72:0;;17348:2:1;9431:72:0;;;17330:21:1;17387:2;17367:18;;;17360:30;17426:34;17406:18;;;17399:62;17497:12;17477:18;;;17470:40;17527:19;;9431:72:0;17146:406:1;9431:72:0;9514:19;9536:10;:8;:10::i;:::-;9514:32;-1:-1:-1;9564:19:0;9514:32;9564:7;:19;:::i;:::-;9557:26;9343:248;-1:-1:-1;;;9343:248:0:o;16306:161::-;16348:7;16369:15;16386;16405:19;:17;:19::i;:::-;16368:56;;-1:-1:-1;16368:56:0;-1:-1:-1;16442:17:0;16368:56;;16442:17;:::i;:::-;16435:24;;;;16306:161;:::o;11552:103::-;11611:19;;:36;;-1:-1:-1;;;;;11611:19:0;;;;:36;;;;;11640:6;;11611:19;:36;:19;:36;11640:6;11611:19;:36;;;;;;;;;;;;;;;;;;;;;11552:103;:::o;11218:326::-;6384:6;:13;;-1:-1:-1;;6384:13:0;6393:4;6384:13;;;11324:16:::1;::::0;;11338:1:::1;11324:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11324:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11324:16:0::1;11300:40;;11369:4;11351;11356:1;11351:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11351:23:0::1;;;-1:-1:-1::0;;;;;11351:23:0::1;;;::::0;::::1;11395:4;11385;11390:1;11385:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11385:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11499:19:::1;::::0;11410:126:::1;::::0;;;;:15:::1;:66:::0;::::1;::::0;::::1;::::0;:126:::1;::::0;11477:11;;11490:1:::1;::::0;11493:4;;11499:19;::::1;::::0;11520:15:::1;::::0;11410:126:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6420:6:0;:14;;-1:-1:-1;;6420:14:0;;;-1:-1:-1;;;;11218:326:0:o;1180:314::-;1233:7;1265:4;-1:-1:-1;;;;;1274:12:0;1257:29;;:66;;;;;1307:16;1290:13;:33;1257:66;1253:234;;;-1:-1:-1;1347:24:0;;1180:314::o;1253:234::-;-1:-1:-1;1683:73:0;;;1433:10;1683:73;;;;19044:25:1;;;;1445:12:0;19085:18:1;;;19078:34;1459:15:0;19128:18:1;;;19121:34;1727:13:0;19171:18:1;;;19164:34;1750:4:0;19214:19:1;;;;19207:84;;;;1683:73:0;;;;;;;;;;19016:19:1;;;;1683:73:0;;;1673:84;;;;;;1180:314::o;14079:651::-;14164:7;14173;14182;14191;14200;14220:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;14220:27:0;14329:79;14341:7;14350:10;:28;;;14329:79;;14380:10;:27;;;14329:79;;:11;:79::i;:::-;14306:19;;;14258:150;14284:20;;;14258:150;;;14259:23;14441:10;:8;:10::i;:::-;14419:32;;14463:15;14480:23;14505:19;14526:20;14550:76;14562:7;14571;:20;;;14593:7;:19;;;14614:11;14550;:76::i;:::-;14684:23;;14462:164;;-1:-1:-1;14462:164:0;;-1:-1:-1;14462:164:0;-1:-1:-1;14684:23:0;-1:-1:-1;14462:164:0;;-1:-1:-1;;;;;;14079:651:0;;;;;;;;:::o;9603:141::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9692:13:0;:44;;;;;;;;;;9725:11;9692:44;;;;;;;;;;;;;;;;-1:-1:-1;;;9692:44:0;;;;;;;;;;;-1:-1:-1;;;9692:44:0;;;;;;;;;;;;-1:-1:-1;;9708:14:0;;;;;;;;9712:2;9708:14;;;-1:-1:-1;9708:14:0;;;;;;;;;;;;;;;;;;9603:141::o;12193:340::-;12324:13;-1:-1:-1;;;;;12314:23:0;:6;-1:-1:-1;;;;;12314:23:0;;12310:216;;;12353:59;12374:6;12382:9;12393:6;12401:10;12353:20;:59::i;:::-;12310:216;;;12454:60;12476:6;12484:9;12495:6;12503:10;12454:21;:60::i;16475:542::-;16573:7;;16609;;6186:42;16526:7;16657:21;;;:7;:21;;;;16717:18;;16526:7;;;;16573;;16609;;16657:21;16717:18;;;;;16752:27;;;;:72;;;16817:7;16797:17;:27;16752:72;:141;;;-1:-1:-1;16865:27:0;16875:17;16865:7;:27;:::i;:::-;16843:17;16853:7;16843;:17;:::i;:::-;16842:51;16752:141;16748:183;;;-1:-1:-1;16914:7:0;;16923;;-1:-1:-1;16475:542:0;-1:-1:-1;;16475:542:0:o;16748:183::-;16952:27;16962:17;16952:7;:27;:::i;:::-;16981;16991:17;16981:7;:27;:::i;:::-;16944:65;;;;;;;;16475:542;;:::o;15407:403::-;15514:7;;;;15602:3;15575:24;15585:14;15575:7;:24;:::i;:::-;:30;;;;:::i;:::-;15552:53;-1:-1:-1;15616:19:0;15664:3;15638:23;15648:13;15638:7;:23;:::i;:::-;:29;;;;:::i;:::-;15616:51;-1:-1:-1;15678:23:0;15616:51;15704:22;15714:12;15704:7;:22;:::i;:::-;:36;;;;:::i;:::-;15678:62;15776:12;;-1:-1:-1;15790:11:0;;-1:-1:-1;15407:403:0;;-1:-1:-1;;;;;15407:403:0:o;15818:480::-;15942:7;;;;;16007:21;16017:11;16007:7;:21;:::i;:::-;15989:39;-1:-1:-1;16039:20:0;16062:26;16077:11;16062:12;:26;:::i;:::-;16039:49;-1:-1:-1;16099:19:0;16121:25;16135:11;16121;:25;:::i;:::-;16099:47;-1:-1:-1;16157:23:0;16099:47;16183:22;16193:12;16183:7;:22;:::i;:::-;:36;;;;:::i;:::-;16238:7;;;;-1:-1:-1;16264:11:0;;-1:-1:-1;16277:12:0;;-1:-1:-1;15818:480:0;;-1:-1:-1;;;;;;15818:480:0:o;12541:518::-;12666:15;12683:23;12708:19;12729:23;12754:20;12778:34;12792:7;12801:10;12778:13;:34::i;:::-;-1:-1:-1;;;;;12833:15:0;;;;;;:7;:15;;;;;:26;;12665:147;;-1:-1:-1;12665:147:0;;-1:-1:-1;12665:147:0;;-1:-1:-1;12665:147:0;;-1:-1:-1;12665:147:0;-1:-1:-1;12665:147:0;;12833:26;;12665:147;;12833:26;:::i;:::-;;;;-1:-1:-1;;;;;;;12870:18:0;;;;;;:7;:18;;;;;:37;;12892:15;;12870:18;:37;;12892:15;;12870:37;:::i;:::-;;;;-1:-1:-1;;12934:4:0;12918:22;;;;:7;:22;;;;;:38;;12944:12;;12918:22;:38;;12944:12;;12918:38;:::i;:::-;;;;;;;;12978:11;12967:7;;:22;;;;;;;:::i;:::-;;;;;;;;13024:9;-1:-1:-1;;;;;13007:44:0;13016:6;-1:-1:-1;;;;;13007:44:0;;13035:15;13007:44;;;;2040:25:1;;2028:2;2013:18;;1894:177;13007:44:0;;;;;;;;12654:405;;;;;12541:518;;;;:::o;13067:1000::-;13193:15;13210:23;13235:19;13256:23;13281:20;13305:35;13320:7;13329:10;13305:14;:35::i;:::-;-1:-1:-1;;;;;13378:16:0;;13353:22;13378:16;;;:8;:16;;;;;;;;13353:41;;;;;;;;;-1:-1:-1;;;;;13353:41:0;;;;;-1:-1:-1;;;13353:41:0;;;;;;;;;13428:15;;;13353:41;13428:15;;;;;;;13460;;13192:148;;-1:-1:-1;13192:148:0;;-1:-1:-1;13192:148:0;;-1:-1:-1;13192:148:0;;-1:-1:-1;13192:148:0;-1:-1:-1;13353:41:0;;13478:12;13460:30;;;13456:241;;;5469:8;13613:17;13623:7;13613;:17;:::i;:::-;13578:15;;:30;;13596:12;;-1:-1:-1;;;;;13578:30:0;;:::i;:::-;13577:54;;;;:::i;:::-;:77;;;;:::i;:::-;13559:7;:14;;;-1:-1:-1;;;;;13559:96:0;;;;;:::i;:::-;13544:111;;:12;:111;:::i;:::-;13515:7;:140;;13507:178;;;;-1:-1:-1;;;13507:178:0;;19504:2:1;13507:178:0;;;19486:21:1;19543:2;19523:18;;;19516:30;19582:27;19562:18;;;19555:55;19627:18;;13507:178:0;19302:349:1;13507:178:0;13727:22;13742:7;13727:12;:22;:::i;:::-;-1:-1:-1;;;;;13709:15:0;;;;;;;:7;:15;;;;;;:40;;;;13760:18;;;;;;;;:37;;13782:15;;13709;13760:37;;13782:15;;13760:37;:::i;:::-;;;;-1:-1:-1;;13824:4:0;13808:22;;;;:7;:22;;;;;:38;;13834:12;;13808:22;:38;;13834:12;;13808:38;:::i;:::-;;;;-1:-1:-1;;;;;;;13863:25:0;;6186:42;13863:25;13859:104;;;13935:15;13905:18;;:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13859:104;13986:11;13975:7;;:22;;;;;;;:::i;:::-;;;;;;;;14032:9;-1:-1:-1;;;;;14015:44:0;14024:6;-1:-1:-1;;;;;14015:44:0;;14043:15;14015:44;;;;2040:25:1;;2028:2;2013:18;;1894:177;14015:44:0;;;;;;;;13181:886;;;;;;;13067:1000;;;;:::o;14738:661::-;14824:7;14833;14842;14851;14860;14880:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;14880:28:0;14993:81;15005:7;15014:10;:29;;;14993:81;;15045:10;:28;;;14993:81;;:11;:81::i;14:656:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:1;574:15;-1:-1:-1;;570:88:1;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:1:o;675:154::-;-1:-1:-1;;;;;754:5:1;750:54;743:5;740:65;730:93;;819:1;816;809:12;834:315;902:6;910;963:2;951:9;942:7;938:23;934:32;931:52;;;979:1;976;969:12;931:52;1018:9;1005:23;1037:31;1062:5;1037:31;:::i;:::-;1087:5;1139:2;1124:18;;;;1111:32;;-1:-1:-1;;;834:315:1:o;1346:543::-;1439:6;1447;1455;1463;1471;1524:3;1512:9;1503:7;1499:23;1495:33;1492:53;;;1541:1;1538;1531:12;1492:53;1577:9;1564:23;1554:33;;1634:2;1623:9;1619:18;1606:32;1596:42;;1688:2;1677:9;1673:18;1660:32;1732:4;1725:5;1721:16;1714:5;1711:27;1701:55;;1752:1;1749;1742:12;1701:55;1346:543;;;;-1:-1:-1;1775:5:1;;1827:2;1812:18;;1799:32;;-1:-1:-1;1878:3:1;1863:19;1850:33;;1346:543;-1:-1:-1;;1346:543:1:o;2076:456::-;2153:6;2161;2169;2222:2;2210:9;2201:7;2197:23;2193:32;2190:52;;;2238:1;2235;2228:12;2190:52;2277:9;2264:23;2296:31;2321:5;2296:31;:::i;:::-;2346:5;-1:-1:-1;2403:2:1;2388:18;;2375:32;2416:33;2375:32;2416:33;:::i;:::-;2076:456;;2468:7;;-1:-1:-1;;;2522:2:1;2507:18;;;;2494:32;;2076:456::o;2537:247::-;2596:6;2649:2;2637:9;2628:7;2624:23;2620:32;2617:52;;;2665:1;2662;2655:12;2617:52;2704:9;2691:23;2723:31;2748:5;2723:31;:::i;3533:276::-;3591:6;3644:2;3632:9;3623:7;3619:23;3615:32;3612:52;;;3660:1;3657;3650:12;3612:52;3699:9;3686:23;3749:10;3742:5;3738:22;3731:5;3728:33;3718:61;;3775:1;3772;3765:12;4263:171;4330:20;;4390:18;4379:30;;4369:41;;4359:69;;4424:1;4421;4414:12;4359:69;4263:171;;;:::o;4439:807::-;4518:6;4571:3;4559:9;4550:7;4546:23;4542:33;4539:53;;;4588:1;4585;4578:12;4539:53;4621:2;4615:9;4663:3;4655:6;4651:16;4733:6;4721:10;4718:22;4697:18;4685:10;4682:34;4679:62;4676:242;;;-1:-1:-1;;;4771:1:1;4764:88;4875:4;4872:1;4865:15;4903:4;4900:1;4893:15;4676:242;4934:2;4927:22;4973:28;4991:9;4973:28;:::i;:::-;4965:6;4958:44;5035:37;5068:2;5057:9;5053:18;5035:37;:::i;:::-;5030:2;5022:6;5018:15;5011:62;5106:37;5139:2;5128:9;5124:18;5106:37;:::i;:::-;5101:2;5093:6;5089:15;5082:62;5177:37;5210:2;5199:9;5195:18;5177:37;:::i;:::-;5172:2;5160:15;;5153:62;5164:6;4439:807;-1:-1:-1;;;4439:807:1:o;5251:388::-;5319:6;5327;5380:2;5368:9;5359:7;5355:23;5351:32;5348:52;;;5396:1;5393;5386:12;5348:52;5435:9;5422:23;5454:31;5479:5;5454:31;:::i;:::-;5504:5;-1:-1:-1;5561:2:1;5546:18;;5533:32;5574:33;5533:32;5574:33;:::i;:::-;5626:7;5616:17;;;5251:388;;;;;:::o;5644:295::-;5703:6;5756:2;5744:9;5735:7;5731:23;5727:32;5724:52;;;5772:1;5769;5762:12;5724:52;5811:9;5798:23;5861:28;5854:5;5850:40;5843:5;5840:51;5830:79;;5905:1;5902;5895:12;5944:118;6030:5;6023:13;6016:21;6009:5;6006:32;5996:60;;6052:1;6049;6042:12;6067:382;6132:6;6140;6193:2;6181:9;6172:7;6168:23;6164:32;6161:52;;;6209:1;6206;6199:12;6161:52;6248:9;6235:23;6267:31;6292:5;6267:31;:::i;:::-;6317:5;-1:-1:-1;6374:2:1;6359:18;;6346:32;6387:30;6346:32;6387:30;:::i;6454:180::-;6513:6;6566:2;6554:9;6545:7;6541:23;6537:32;6534:52;;;6582:1;6579;6572:12;6534:52;-1:-1:-1;6605:23:1;;6454:180;-1:-1:-1;6454:180:1:o;7540:184::-;-1:-1:-1;;;7589:1:1;7582:88;7689:4;7686:1;7679:15;7713:4;7710:1;7703:15;7729:482;7818:1;7861:5;7818:1;7875:330;7896:7;7886:8;7883:21;7875:330;;;8015:4;-1:-1:-1;;7943:77:1;7937:4;7934:87;7931:113;;;8024:18;;:::i;:::-;8074:7;8064:8;8060:22;8057:55;;;8094:16;;;;8057:55;8173:22;;;;8133:15;;;;7875:330;;;7879:3;7729:482;;;;;:::o;8216:866::-;8265:5;8295:8;8285:80;;-1:-1:-1;8336:1:1;8350:5;;8285:80;8384:4;8374:76;;-1:-1:-1;8421:1:1;8435:5;;8374:76;8466:4;8484:1;8479:59;;;;8552:1;8547:130;;;;8459:218;;8479:59;8509:1;8500:10;;8523:5;;;8547:130;8584:3;8574:8;8571:17;8568:43;;;8591:18;;:::i;:::-;-1:-1:-1;;8647:1:1;8633:16;;8662:5;;8459:218;;8761:2;8751:8;8748:16;8742:3;8736:4;8733:13;8729:36;8723:2;8713:8;8710:16;8705:2;8699:4;8696:12;8692:35;8689:77;8686:159;;;-1:-1:-1;8798:19:1;;;8830:5;;8686:159;8877:34;8902:8;8896:4;8877:34;:::i;:::-;9007:6;-1:-1:-1;;8935:79:1;8926:7;8923:92;8920:118;;;9018:18;;:::i;:::-;9056:20;;8216:866;-1:-1:-1;;;8216:866:1:o;9087:140::-;9145:5;9174:47;9215:4;9205:8;9201:19;9195:4;9174:47;:::i;9232:228::-;9272:7;9398:1;-1:-1:-1;;9326:74:1;9323:1;9320:81;9315:1;9308:9;9301:17;9297:105;9294:131;;;9405:18;;:::i;:::-;-1:-1:-1;9445:9:1;;9232:228::o;9465:128::-;9505:3;9536:1;9532:6;9529:1;9526:13;9523:39;;;9542:18;;:::i;:::-;-1:-1:-1;9578:9:1;;9465:128::o;11947:125::-;11987:4;12015:1;12012;12009:8;12006:34;;;12020:18;;:::i;:::-;-1:-1:-1;12057:9:1;;11947:125::o;12077:274::-;12117:1;12143;12133:189;;-1:-1:-1;;;12175:1:1;12168:88;12279:4;12276:1;12269:15;12307:4;12304:1;12297:15;12133:189;-1:-1:-1;12336:9:1;;12077:274::o;13098:228::-;13137:3;13165:10;13202:2;13199:1;13195:10;13232:2;13229:1;13225:10;13263:3;13259:2;13255:12;13250:3;13247:21;13244:47;;;13271:18;;:::i;:::-;13307:13;;13098:228;-1:-1:-1;;;;13098:228:1:o;13633:245::-;13700:6;13753:2;13741:9;13732:7;13728:23;13724:32;13721:52;;;13769:1;13766;13759:12;13721:52;13801:9;13795:16;13820:28;13842:5;13820:28;:::i;13883:236::-;13922:3;13950:18;13995:2;13992:1;13988:10;14025:2;14022:1;14018:10;14056:3;14052:2;14048:12;14043:3;14040:21;14037:47;;;14064:18;;:::i;17557:184::-;-1:-1:-1;;;17606:1:1;17599:88;17706:4;17703:1;17696:15;17730:4;17727:1;17720:15;17746:1034;18016:4;18064:3;18053:9;18049:19;18095:6;18084:9;18077:25;18121:2;18159:6;18154:2;18143:9;18139:18;18132:34;18202:3;18197:2;18186:9;18182:18;18175:31;18226:6;18261;18255:13;18292:6;18284;18277:22;18330:3;18319:9;18315:19;18308:26;;18369:2;18361:6;18357:15;18343:29;;18390:1;18400:218;18414:6;18411:1;18408:13;18400:218;;;18479:13;;-1:-1:-1;;;;;18475:62:1;18463:75;;18593:15;;;;18558:12;;;;18436:1;18429:9;18400:218;;;-1:-1:-1;;;;;;;18674:55:1;;;;18669:2;18654:18;;18647:83;-1:-1:-1;;;18761:3:1;18746:19;18739:35;18635:3;17746:1034;-1:-1:-1;;;17746:1034:1:o;19656:247::-;19696:3;19724:28;19779:2;19776:1;19772:10;19809:2;19806:1;19802:10;19840:3;19836:2;19832:12;19827:3;19824:21;19821:47;;;19848:18;;:::i

Swarm Source

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