ETH Price: $3,267.65 (+0.62%)
Gas: 4 Gwei

Token

EasyFI (EZ)
 

Overview

Max Total Supply

1,000,000,000 EZ

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
24,630,450.261268146 EZ

Value
$0.00
0xe9fc4fd97f17c074cd6e4d4ce0b61123d8609481
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:
EZ

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
EasyFi Network is a Layer 2 DeFi Lending protocol for Digital Assets. Taking a strong community-oriented governance approach with $EZ

Website: https://www.easyfi.org
Dapp: https://app.easyfi.org
Telegram: https://t.me/easytocol_erc
Twitter: https://twitter.com/easytocol_erc
*/

pragma solidity 0.8.19;

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
interface IDexFactory{
    function createPair(address tokenA, address tokenB) external returns (address dexPair);
}
interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
contract EZ is IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcluded;
    string private constant _name = unicode"EasyFI";
    string private constant _symbol = unicode"EZ";
    uint8 private constant _decimals = 9;
    uint256 private _supply = 1000000000 * (10 ** _decimals);
    uint256 private swapFeeCount;
    bool private swapping;
    uint256 swapFeeAfter;
    IDexRouter dexRoute;
    address public dexPair;
    bool private tradeOpen = false;
    bool private swapEnabled = true;
    uint256 private swapFeeThresh = ( _supply * 1000 ) / 100000;
    uint256 private swapFeeAt = ( _supply * 10 ) / 100000;
    modifier lockSwap {swapping = true; _; swapping = false;}
    uint256 public maxTranxSize = ( _supply * 200 ) / 10000;
    uint256 public maxBuySize = ( _supply * 200 ) / 10000;
    uint256 public maxWalletSize = ( _supply * 200 ) / 10000;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal devWallet = 0x686c736C863cE505cd3D723ef093f1d2be200F05; 
    address internal marketingWallet = 0x686c736C863cE505cd3D723ef093f1d2be200F05;
    address internal lpTokenWallet = 0x686c736C863cE505cd3D723ef093f1d2be200F05;
    uint256 private buyFee = 1300;
    uint256 private sellFee = 2400;
    uint256 private transferFee = 1300;
    uint256 private denominator = 10000;

    constructor() Ownable(msg.sender) {
        IDexRouter _router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IDexFactory(_router.factory()).createPair(address(this), _router.WETH());
        dexRoute = _router; dexPair = _pair;
        isExcluded[lpTokenWallet] = true;
        isExcluded[marketingWallet] = true;
        isExcluded[devWallet] = true;
        isExcluded[msg.sender] = true;
        _balances[msg.sender] = _supply;
        emit Transfer(address(0), msg.sender, _supply);
    }

    receive() external payable {}
    function symbol() public pure returns (string memory) {return _symbol;}
    function name() public pure returns (string memory) {return _name;}
    function decimals() public pure returns (uint8) {return _decimals;}    
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _supply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function getBuySellFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == dexPair){return sellFee;}
        if(sender == dexPair){return buyFee;}
        return transferFee;
    }
    function shouldSwapTax(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= swapFeeAt;
        bool aboveThreshold = balanceOf(address(this)) >= swapFeeThresh;
        return !swapping && swapEnabled && tradeOpen && aboveMin && !isExcluded[sender] && recipient == dexPair && swapFeeCount >= swapFeeAfter && aboveThreshold;
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(dexRoute), tokenAmount);
        dexRoute.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpTokenWallet,
            block.timestamp);
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function swapBackAndLiquidifyBurn(uint256 tokens) private lockSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketingWallet).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devWallet).transfer(contractBalance);}
    }
    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; buyFee = _total; sellFee = _sell; transferFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }
    function getFinalAmounts(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcluded[recipient]) {return maxTranxSize;}
        if(getBuySellFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getBuySellFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getBuySellFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _supply.mul(_buy).div(10000); uint256 newTransfer = _supply.mul(_sell).div(10000); uint256 newWallet = _supply.mul(_wallet).div(10000);
        maxTranxSize = newTx; maxBuySize = newTransfer; maxWalletSize = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    function swapTokensETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRoute.WETH();
        _approve(address(this), address(dexRoute), tokenAmount);
        dexRoute.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isExcluded[sender] && !isExcluded[recipient]){require(tradeOpen, "tradeOpen");}
        if(!isExcluded[sender] && !isExcluded[recipient] && recipient != address(dexPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= maxWalletSize, "Exceeds maximum wallet amount.");}
        if(sender != dexPair){require(amount <= maxBuySize || isExcluded[sender] || isExcluded[recipient], "TX Limit Exceeded");}
        require(amount <= maxTranxSize || isExcluded[sender] || isExcluded[recipient], "TX Limit Exceeded"); 
        if(recipient == dexPair && !isExcluded[sender]){swapFeeCount += uint256(1);}
        if(shouldSwapTax(sender, recipient, amount)){swapBackAndLiquidifyBurn(swapFeeThresh); swapFeeCount = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcluded[sender] ? getFinalAmounts(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    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 balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function getOwner() external view override returns (address) { return owner; }
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function startTrading() external onlyOwner {tradeOpen = true;}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTranxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004c9565b6200002290633b9aca00620004e1565b60048190556009805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004e1565b6200005a9190620004fb565b600a55620186a0600454600a620000729190620004e1565b6200007e9190620004fb565b600b5561271060045460c8620000959190620004e1565b620000a19190620004fb565b600c5561271060045460c8620000b89190620004e1565b620000c49190620004fb565b600d5561271060045460c8620000db9190620004e1565b620000e79190620004fb565b600e556000600f819055601081905560646011556012556013805473686c736c863ce505cd3d723ef093f1d2be200f056001600160a01b031991821681179092556014805482168317905560158054909116909117905561051460168190556109606017556018556127106019553480156200016257600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f091906200051e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026491906200051e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d891906200051e565b600880546001600160a01b038086166001600160a01b03199283161790925560098054838516921691909117905560155481166000908152600360209081526040808320805460ff199081166001908117909255601454861685528285208054821683179055601354909516845281842080548616821790553380855282852080549096168217909555600454925280832082905551939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620003a491815260200190565b60405180910390a3505062000549565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200040b578160001904821115620003ef57620003ef620003b4565b80851615620003fd57918102915b93841c9390800290620003cf565b509250929050565b6000826200042457506001620004c3565b816200043357506000620004c3565b81600181146200044c5760028114620004575762000477565b6001915050620004c3565b60ff8411156200046b576200046b620003b4565b50506001821b620004c3565b5060208310610133831016604e8410600b84101617156200049c575081810a620004c3565b620004a88383620003ca565b8060001904821115620004bf57620004bf620003b4565b0290505b92915050565b6000620004da60ff84168362000413565b9392505050565b8082028115828204841417620004c357620004c3620003b4565b6000826200051957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053157600080fd5b81516001600160a01b0381168114620004da57600080fd5b6118ad80620005596000396000f3fe60806040526004361061012e5760003560e01c8063893d20e8116100ab578063cb7f97d71161006f578063cb7f97d714610364578063cba0e99614610384578063d3c44e77146103b4578063dd62ed3e146103ca578063f242ab4114610410578063f2fde38b1461043057600080fd5b8063893d20e8146102b15780638f3fa860146102e357806395d89b41146102f95780639cc3535114610324578063a9059cbb1461034457600080fd5b80632f54bf6e116100f25780632f54bf6e14610205578063313ce567146102345780633c2565ff1461025057806370a0823114610266578063715018a61461029c57600080fd5b806306fdde031461013a578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101ce578063293230b8146101ee57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600681526545617379464960d01b60208201525b6040516101729190611547565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046115ad565b610450565b6040519015158152602001610172565b3480156101b757600080fd5b506101c0610467565b604051908152602001610172565b3480156101da57600080fd5b5061019b6101e93660046115d9565b6104d8565b3480156101fa57600080fd5b50610203610542565b005b34801561021157600080fd5b5061019b61022036600461161a565b6000546001600160a01b0391821691161490565b34801561024057600080fd5b5060405160098152602001610172565b34801561025c57600080fd5b506101c0600d5481565b34801561027257600080fd5b506101c061028136600461161a565b6001600160a01b031660009081526001602052604090205490565b3480156102a857600080fd5b5061020361058a565b3480156102bd57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610172565b3480156102ef57600080fd5b506101c0600e5481565b34801561030557600080fd5b5060408051808201909152600281526122ad60f11b6020820152610165565b34801561033057600080fd5b5061020361033f366004611637565b6105f9565b34801561035057600080fd5b5061019b61035f3660046115ad565b61073a565b34801561037057600080fd5b5061020361037f366004611663565b610747565b34801561039057600080fd5b5061019b61039f36600461161a565b60036020526000908152604090205460ff1681565b3480156103c057600080fd5b506101c0600c5481565b3480156103d657600080fd5b506101c06103e53660046116af565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041c57600080fd5b506009546102cb906001600160a01b031681565b34801561043c57600080fd5b5061020361044b36600461161a565b61083c565b600061045d3384846108ba565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104d39290916104cd91906109de565b906109de565b905090565b60006104e58484846109ea565b610537843361053285604051806060016040528060288152602001611850602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f37565b6108ba565b5060015b9392505050565b6000546001600160a01b031633146105755760405162461bcd60e51b815260040161056c906116e8565b60405180910390fd5b6009805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146105b45760405162461bcd60e51b815260040161056c906116e8565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106235760405162461bcd60e51b815260040161056c906116e8565b600061064661271061064086600454610f6390919063ffffffff16565b90610f6f565b9050600061066561271061064086600454610f6390919063ffffffff16565b9050600061068461271061064086600454610f6390919063ffffffff16565b600c849055600d839055600e819055905060006106b06103e861064060056106aa610467565b90610f63565b90508084101580156106c25750808310155b80156106ce5750808210155b6107315760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161056c565b50505050505050565b600061045d3384846109ea565b6000546001600160a01b031633146107715760405162461bcd60e51b815260040161056c906116e8565b600f8790556010869055601285905560118490556016839055601782905560188190556019546107a2906001610f6f565b601654111580156107c257506019546107bc906001610f6f565b60175411155b80156107dd57506019546107d7906001610f6f565b60185411155b6107315760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161056c565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161056c906116e8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661091c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161056c565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161056c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053b828461171e565b6001600160a01b038316610a4e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056c565b6001600160a01b038216610ab05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056c565b6001600160a01b038316600090815260016020526040902054811115610b325760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161056c565b6001600160a01b03831660009081526003602052604090205460ff16158015610b7457506001600160a01b03821660009081526003602052604090205460ff16155b15610bbe57600954600160a01b900460ff16610bbe5760405162461bcd60e51b81526020600482015260096024820152683a3930b232a7b832b760b91b604482015260640161056c565b6001600160a01b03831660009081526003602052604090205460ff16158015610c0057506001600160a01b03821660009081526003602052604090205460ff16155b8015610c1a57506009546001600160a01b03838116911614155b8015610c3157506001600160a01b03821661dead14155b15610caa57600e546001600160a01b038316600090815260016020526040902054610c5c9083610f7b565b1115610caa5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161056c565b6009546001600160a01b03848116911614610d4b57600d5481111580610ce857506001600160a01b03831660009081526003602052604090205460ff165b80610d0b57506001600160a01b03821660009081526003602052604090205460ff165b610d4b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161056c565b600c5481111580610d7457506001600160a01b03831660009081526003602052604090205460ff165b80610d9757506001600160a01b03821660009081526003602052604090205460ff165b610dd75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161056c565b6009546001600160a01b038381169116148015610e0d57506001600160a01b03831660009081526003602052604090205460ff16155b15610e2b57600160056000828254610e259190611731565b90915550505b610e36838383610f87565b15610e4c57610e46600a54611041565b60006005555b6001600160a01b038316600090815260016020526040902054610e6f90826109de565b6001600160a01b038416600090815260016020908152604080832093909355600390529081205460ff1615610ea45781610eaf565b610eaf8484846111be565b6001600160a01b038416600090815260016020526040902054909150610ed59082610f7b565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f299085815260200190565b60405180910390a350505050565b60008184841115610f5b5760405162461bcd60e51b815260040161056c9190611547565b505050900390565b600061053b8284611744565b600061053b828461175b565b600061053b8284611731565b600b54600a543060009081526001602052604081205460065491938510159211159060ff16158015610fc25750600954600160a81b900460ff165b8015610fd75750600954600160a01b900460ff165b8015610fe05750815b801561100557506001600160a01b03861660009081526003602052604090205460ff16155b801561101e57506009546001600160a01b038681169116145b801561102e575060075460055410155b80156110375750805b9695505050505050565b6006805460ff19166001908117909155601154601054600f5460009361107b936002936106aa939192611075928391610f7b565b90610f7b565b9050600061109882610640600f5486610f6390919063ffffffff16565b905060006110a684836109de565b9050476110b2826112ee565b60006110be47836109de565b905060006110e16110da600f54886109de90919063ffffffff16565b8390610f6f565b905060006110fa600f5483610f6390919063ffffffff16565b9050801561110c5761110c8682611448565b601054600090611121906106aa856002610f63565b90508015611165576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611163573d6000803e3d6000fd5b505b4780156111a8576013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111a6573d6000803e3d6000fd5b505b50506006805460ff191690555050505050505050565b6001600160a01b03821660009081526003602052604081205460ff16156111e85750600c5461053b565b60006111f485856114fc565b11156112e757600061121761120986866114fc565b6019546106aa908690610f6f565b306000908152600160205260409020549091506112349082610f7b565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112859085815260200190565b60405180910390a360006012541180156112a957506012546112a786866114fc565b115b156112d5576112d53061dead6112d06012546106aa60195489610f6f90919063ffffffff16565b6109ea565b6112df83826109de565b91505061053b565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113235761132361177d565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190611793565b816001815181106113b3576113b361177d565b6001600160a01b0392831660209182029290920101526008546113d991309116846108ba565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114129085906000908690309042906004016117b0565b600060405180830381600087803b15801561142c57600080fd5b505af1158015611440573d6000803e3d6000fd5b505050505050565b6008546114609030906001600160a01b0316846108ba565b60085460155460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156114d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114f59190611821565b5050505050565b6009546000906001600160a01b039081169083160361151e5750601754610461565b6009546001600160a01b039081169084160361153d5750601654610461565b5060185492915050565b600060208083528351808285015260005b8181101561157457858101830151858201604001528201611558565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115aa57600080fd5b50565b600080604083850312156115c057600080fd5b82356115cb81611595565b946020939093013593505050565b6000806000606084860312156115ee57600080fd5b83356115f981611595565b9250602084013561160981611595565b929592945050506040919091013590565b60006020828403121561162c57600080fd5b813561053b81611595565b60008060006060848603121561164c57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561167e57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156116c257600080fd5b82356116cd81611595565b915060208301356116dd81611595565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561046157610461611708565b8082018082111561046157610461611708565b808202811582820484141761046157610461611708565b60008261177857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117a557600080fd5b815161053b81611595565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118005784516001600160a01b0316835293830193918301916001016117db565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561183657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051fa02fce19cd4f460fb20bf8b73b63f8ea728fef4875109db38fbcea7368bba64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063893d20e8116100ab578063cb7f97d71161006f578063cb7f97d714610364578063cba0e99614610384578063d3c44e77146103b4578063dd62ed3e146103ca578063f242ab4114610410578063f2fde38b1461043057600080fd5b8063893d20e8146102b15780638f3fa860146102e357806395d89b41146102f95780639cc3535114610324578063a9059cbb1461034457600080fd5b80632f54bf6e116100f25780632f54bf6e14610205578063313ce567146102345780633c2565ff1461025057806370a0823114610266578063715018a61461029c57600080fd5b806306fdde031461013a578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101ce578063293230b8146101ee57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600681526545617379464960d01b60208201525b6040516101729190611547565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046115ad565b610450565b6040519015158152602001610172565b3480156101b757600080fd5b506101c0610467565b604051908152602001610172565b3480156101da57600080fd5b5061019b6101e93660046115d9565b6104d8565b3480156101fa57600080fd5b50610203610542565b005b34801561021157600080fd5b5061019b61022036600461161a565b6000546001600160a01b0391821691161490565b34801561024057600080fd5b5060405160098152602001610172565b34801561025c57600080fd5b506101c0600d5481565b34801561027257600080fd5b506101c061028136600461161a565b6001600160a01b031660009081526001602052604090205490565b3480156102a857600080fd5b5061020361058a565b3480156102bd57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610172565b3480156102ef57600080fd5b506101c0600e5481565b34801561030557600080fd5b5060408051808201909152600281526122ad60f11b6020820152610165565b34801561033057600080fd5b5061020361033f366004611637565b6105f9565b34801561035057600080fd5b5061019b61035f3660046115ad565b61073a565b34801561037057600080fd5b5061020361037f366004611663565b610747565b34801561039057600080fd5b5061019b61039f36600461161a565b60036020526000908152604090205460ff1681565b3480156103c057600080fd5b506101c0600c5481565b3480156103d657600080fd5b506101c06103e53660046116af565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041c57600080fd5b506009546102cb906001600160a01b031681565b34801561043c57600080fd5b5061020361044b36600461161a565b61083c565b600061045d3384846108ba565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104d39290916104cd91906109de565b906109de565b905090565b60006104e58484846109ea565b610537843361053285604051806060016040528060288152602001611850602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f37565b6108ba565b5060015b9392505050565b6000546001600160a01b031633146105755760405162461bcd60e51b815260040161056c906116e8565b60405180910390fd5b6009805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146105b45760405162461bcd60e51b815260040161056c906116e8565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106235760405162461bcd60e51b815260040161056c906116e8565b600061064661271061064086600454610f6390919063ffffffff16565b90610f6f565b9050600061066561271061064086600454610f6390919063ffffffff16565b9050600061068461271061064086600454610f6390919063ffffffff16565b600c849055600d839055600e819055905060006106b06103e861064060056106aa610467565b90610f63565b90508084101580156106c25750808310155b80156106ce5750808210155b6107315760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161056c565b50505050505050565b600061045d3384846109ea565b6000546001600160a01b031633146107715760405162461bcd60e51b815260040161056c906116e8565b600f8790556010869055601285905560118490556016839055601782905560188190556019546107a2906001610f6f565b601654111580156107c257506019546107bc906001610f6f565b60175411155b80156107dd57506019546107d7906001610f6f565b60185411155b6107315760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161056c565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161056c906116e8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661091c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161056c565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161056c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053b828461171e565b6001600160a01b038316610a4e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056c565b6001600160a01b038216610ab05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056c565b6001600160a01b038316600090815260016020526040902054811115610b325760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161056c565b6001600160a01b03831660009081526003602052604090205460ff16158015610b7457506001600160a01b03821660009081526003602052604090205460ff16155b15610bbe57600954600160a01b900460ff16610bbe5760405162461bcd60e51b81526020600482015260096024820152683a3930b232a7b832b760b91b604482015260640161056c565b6001600160a01b03831660009081526003602052604090205460ff16158015610c0057506001600160a01b03821660009081526003602052604090205460ff16155b8015610c1a57506009546001600160a01b03838116911614155b8015610c3157506001600160a01b03821661dead14155b15610caa57600e546001600160a01b038316600090815260016020526040902054610c5c9083610f7b565b1115610caa5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161056c565b6009546001600160a01b03848116911614610d4b57600d5481111580610ce857506001600160a01b03831660009081526003602052604090205460ff165b80610d0b57506001600160a01b03821660009081526003602052604090205460ff165b610d4b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161056c565b600c5481111580610d7457506001600160a01b03831660009081526003602052604090205460ff165b80610d9757506001600160a01b03821660009081526003602052604090205460ff165b610dd75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161056c565b6009546001600160a01b038381169116148015610e0d57506001600160a01b03831660009081526003602052604090205460ff16155b15610e2b57600160056000828254610e259190611731565b90915550505b610e36838383610f87565b15610e4c57610e46600a54611041565b60006005555b6001600160a01b038316600090815260016020526040902054610e6f90826109de565b6001600160a01b038416600090815260016020908152604080832093909355600390529081205460ff1615610ea45781610eaf565b610eaf8484846111be565b6001600160a01b038416600090815260016020526040902054909150610ed59082610f7b565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f299085815260200190565b60405180910390a350505050565b60008184841115610f5b5760405162461bcd60e51b815260040161056c9190611547565b505050900390565b600061053b8284611744565b600061053b828461175b565b600061053b8284611731565b600b54600a543060009081526001602052604081205460065491938510159211159060ff16158015610fc25750600954600160a81b900460ff165b8015610fd75750600954600160a01b900460ff165b8015610fe05750815b801561100557506001600160a01b03861660009081526003602052604090205460ff16155b801561101e57506009546001600160a01b038681169116145b801561102e575060075460055410155b80156110375750805b9695505050505050565b6006805460ff19166001908117909155601154601054600f5460009361107b936002936106aa939192611075928391610f7b565b90610f7b565b9050600061109882610640600f5486610f6390919063ffffffff16565b905060006110a684836109de565b9050476110b2826112ee565b60006110be47836109de565b905060006110e16110da600f54886109de90919063ffffffff16565b8390610f6f565b905060006110fa600f5483610f6390919063ffffffff16565b9050801561110c5761110c8682611448565b601054600090611121906106aa856002610f63565b90508015611165576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611163573d6000803e3d6000fd5b505b4780156111a8576013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111a6573d6000803e3d6000fd5b505b50506006805460ff191690555050505050505050565b6001600160a01b03821660009081526003602052604081205460ff16156111e85750600c5461053b565b60006111f485856114fc565b11156112e757600061121761120986866114fc565b6019546106aa908690610f6f565b306000908152600160205260409020549091506112349082610f7b565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112859085815260200190565b60405180910390a360006012541180156112a957506012546112a786866114fc565b115b156112d5576112d53061dead6112d06012546106aa60195489610f6f90919063ffffffff16565b6109ea565b6112df83826109de565b91505061053b565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113235761132361177d565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190611793565b816001815181106113b3576113b361177d565b6001600160a01b0392831660209182029290920101526008546113d991309116846108ba565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114129085906000908690309042906004016117b0565b600060405180830381600087803b15801561142c57600080fd5b505af1158015611440573d6000803e3d6000fd5b505050505050565b6008546114609030906001600160a01b0316846108ba565b60085460155460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156114d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114f59190611821565b5050505050565b6009546000906001600160a01b039081169083160361151e5750601754610461565b6009546001600160a01b039081169084160361153d5750601654610461565b5060185492915050565b600060208083528351808285015260005b8181101561157457858101830151858201604001528201611558565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115aa57600080fd5b50565b600080604083850312156115c057600080fd5b82356115cb81611595565b946020939093013593505050565b6000806000606084860312156115ee57600080fd5b83356115f981611595565b9250602084013561160981611595565b929592945050506040919091013590565b60006020828403121561162c57600080fd5b813561053b81611595565b60008060006060848603121561164c57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561167e57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156116c257600080fd5b82356116cd81611595565b915060208301356116dd81611595565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561046157610461611708565b8082018082111561046157610461611708565b808202811582820484141761046157610461611708565b60008261177857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117a557600080fd5b815161053b81611595565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118005784516001600160a01b0316835293830193918301916001016117db565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561183657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051fa02fce19cd4f460fb20bf8b73b63f8ea728fef4875109db38fbcea7368bba64736f6c63430008130033

Deployed Bytecode Sourcemap

3854:9606:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6201:67;;;;;;;;;;-1:-1:-1;6261:5:0;;;;;;;;;;;;-1:-1:-1;;;6261:5:0;;;;6201:67;;;;;;;:::i;:::-;;;;;;;;6351:133;;;;;;;;;;-1:-1:-1;6351:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6351:133:0;1023:187:1;6490:127:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6490:127:0;1215:177:1;7603:309:0;;;;;;;;;;-1:-1:-1;7603:309:0;;;;;:::i;:::-;;:::i;13395:62::-;;;;;;;;;;;;;:::i;:::-;;538:87;;;;;;;;;;-1:-1:-1;538:87:0;;;;;:::i;:::-;593:4;618:5;-1:-1:-1;;;;;607:16:0;;;618:5;;607:16;;538:87;6274:67;;;;;;;;;;-1:-1:-1;6274:67:0;;4237:1;2252:36:1;;2240:2;2225:18;6274:67:0;2110:184:1;4779:53:0;;;;;;;;;;;;;;;;12924:103;;;;;;;;;;-1:-1:-1;12924:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;13007:18:0;12990:7;13007:18;;;:9;:18;;;;;;;12924:103;631:106;;;;;;;;;;;;;:::i;13178:78::-;;;;;;;;;;-1:-1:-1;13230:7:0;13248:5;-1:-1:-1;;;;;13248:5:0;13178:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;13178:78:0;2299:203:1;4839:56:0;;;;;;;;;;;;;;;;6124:71;;;;;;;;;;-1:-1:-1;6186:7:0;;;;;;;;;;;;-1:-1:-1;;;6186:7:0;;;;6124:71;;10170:535;;;;;;;;;;-1:-1:-1;10170:535:0;;;;;:::i;:::-;;:::i;13033:139::-;;;;;;;;;;-1:-1:-1;13033:139:0;;;;;:::i;:::-;;:::i;8977:518::-;;;;;;;;;;-1:-1:-1;8977:518:0;;;;;:::i;:::-;;:::i;4046:43::-;;;;;;;;;;-1:-1:-1;4046:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4717:55;;;;;;;;;;;;;;;;13262:127;;;;;;;;;;-1:-1:-1;13262:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;13360:18:0;;;13343:7;13360:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13262:127;4424:22;;;;;;;;;;-1:-1:-1;4424:22:0;;;;-1:-1:-1;;;;;4424:22:0;;;743:111;;;;;;;;;;-1:-1:-1;743:111:0;;;;;:::i;:::-;;:::i;6351:133::-;6426:4;6433:37;6442:10;6454:7;6463:6;6433:8;:37::i;:::-;-1:-1:-1;6478:4:0;6351:133;;;;;:::o;6490:127::-;13007:9;:18;;;;5090:42;6543:7;13007:18;;;;;6560:7;;6543;;6560:55;;13007:18;;6560:28;;:7;:11;:28::i;:::-;:32;;:55::i;:::-;6553:62;;6490:127;:::o;7603:309::-;7701:4;7718:36;7728:6;7736:9;7747:6;7718:9;:36::i;:::-;7765:117;7774:6;7782:10;7794:87;7830:6;7794:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7794:19:0;;;;;;:11;:19;;;;;;;;7814:10;7794:31;;;;;;;;;:87;:35;:87::i;:::-;7765:8;:117::i;:::-;-1:-1:-1;7900:4:0;7603:309;;;;;;:::o;13395:62::-;593:4;618:5;-1:-1:-1;;;;;618:5:0;505:10;607:16;489:38;;;;-1:-1:-1;;;489:38:0;;;;;;;:::i;:::-;;;;;;;;;13439:9:::1;:16:::0;;-1:-1:-1;;;;13439:16:0::1;-1:-1:-1::0;;;13439:16:0::1;::::0;;13395:62::o;631:106::-;593:4;618:5;-1:-1:-1;;;;;618:5:0;505:10;607:16;489:38;;;;-1:-1:-1;;;489:38:0;;;;;;;:::i;:::-;694:1:::1;678:18:::0;;-1:-1:-1;;;;;;678:18:0::1;::::0;;703:32:::1;::::0;2445:51:1;;;703:32:0::1;::::0;2433:2:1;2418:18;703:32:0::1;;;;;;;631:106::o:0;10170:535::-;593:4;618:5;-1:-1:-1;;;;;618:5:0;505:10;607:16;489:38;;;;-1:-1:-1;;;489:38:0;;;;;;;:::i;:::-;10276:13:::1;10292:28;10314:5;10292:17;10304:4;10292:7;;:11;;:17;;;;:::i;:::-;:21:::0;::::1;:28::i;:::-;10276:44;;10322:19;10344:29;10367:5;10344:18;10356:5;10344:7;;:11;;:18;;;;:::i;:29::-;10322:51;;10375:17;10395:31;10420:5;10395:20;10407:7;10395;;:11;;:20;;;;:::i;:31::-;10437:12;:20:::0;;;10459:10:::1;:24:::0;;;10485:13:::1;:25:::0;;;10375:51;-1:-1:-1;;10537:30:0::1;10562:4;10537:20;10555:1;10537:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;10521:46;;10595:5;10586;:14;;:38;;;;;10619:5;10604:11;:20;;10586:38;:60;;;;;10641:5;10628:9;:18;;10586:60;10578:119;;;::::0;-1:-1:-1;;;10578:119:0;;4614:2:1;10578:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;10578:119:0::1;4412:410:1::0;10578:119:0::1;10265:440;;;;10170:535:::0;;;:::o;13033:139::-;13111:4;13118:40;13128:10;13140:9;13151:6;13118:9;:40::i;8977:518::-;593:4;618:5;-1:-1:-1;;;;;618:5:0;505:10;607:16;489:38;;;;-1:-1:-1;;;489:38:0;;;;;;;:::i;:::-;9167:12:::1;:25:::0;;;9194:12:::1;:25:::0;;;9221:7:::1;:15:::0;;;9238:14:::1;:29:::0;;;9269:6:::1;:15:::0;;;9286:7:::1;:15:::0;;;9303:11:::1;:20:::0;;;9352:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9352:15:0::1;:18::i;:::-;9342:6;;:28;;:61;;;;-1:-1:-1::0;9385:11:0::1;::::0;:18:::1;::::0;9401:1:::1;9385:15;:18::i;:::-;9374:7;;:29;;9342:61;:98;;;;-1:-1:-1::0;9422:11:0::1;::::0;:18:::1;::::0;9438:1:::1;9422:15;:18::i;:::-;9407:11;;:33;;9342:98;9334:153;;;::::0;-1:-1:-1;;;9334:153:0;;5029:2:1;9334:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;9334:153:0::1;4827:406:1::0;743:111:0;593:4;618:5;-1:-1:-1;;;;;618:5:0;505:10;607:16;489:38;;;;-1:-1:-1;;;489:38:0;;;;;;;:::i;:::-;809:5:::1;:11:::0;;-1:-1:-1;;;;;;809:11:0::1;-1:-1:-1::0;;;;;809:11:0;::::1;::::0;;::::1;::::0;;;827:25:::1;::::0;2445:51:1;;;827:25:0::1;::::0;2433:2:1;2418:18;827:25:0::1;;;;;;;743:111:::0;:::o;12583:335::-;-1:-1:-1;;;;;12676:19:0;;12668:68;;;;-1:-1:-1;;;12668:68:0;;5656:2:1;12668:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;12668:68:0;5454:400:1;12668:68:0;-1:-1:-1;;;;;12755:21:0;;12747:68;;;;-1:-1:-1;;;12747:68:0;;6061:2:1;12747:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;12747:68:0;5859:398:1;12747:68:0;-1:-1:-1;;;;;12826:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12878:32;;1361:25:1;;;12878:32:0;;1334:18:1;12878:32:0;;;;;;;12583:335;;;:::o;1037:98::-;1095:7;1122:5;1126:1;1122;:5;:::i;11154:1423::-;-1:-1:-1;;;;;11251:20:0;;11243:70;;;;-1:-1:-1;;;11243:70:0;;6729:2:1;11243:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;11243:70:0;6527:401:1;11243:70:0;-1:-1:-1;;;;;11332:23:0;;11324:71;;;;-1:-1:-1;;;11324:71:0;;7135:2:1;11324:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;11324:71:0;6933:399:1;11324:71:0;-1:-1:-1;;;;;13007:18:0;;12990:7;13007:18;;;:9;:18;;;;;;11414:6;:27;;11406:88;;;;-1:-1:-1;;;11406:88:0;;7539:2:1;11406:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;11406:88:0;7337:413:1;11406:88:0;-1:-1:-1;;;;;11509:18:0;;;;;;:10;:18;;;;;;;;11508:19;:45;;;;-1:-1:-1;;;;;;11532:21:0;;;;;;:10;:21;;;;;;;;11531:22;11508:45;11505:83;;;11563:9;;-1:-1:-1;;;11563:9:0;;;;11555:31;;;;-1:-1:-1;;;11555:31:0;;7957:2:1;11555:31:0;;;7939:21:1;7996:1;7976:18;;;7969:29;-1:-1:-1;;;8014:18:1;;;8007:39;8063:18;;11555:31:0;7755:332:1;11555:31:0;-1:-1:-1;;;;;11602:18:0;;;;;;:10;:18;;;;;;;;11601:19;:45;;;;-1:-1:-1;;;;;;11625:21:0;;;;;;:10;:21;;;;;;;;11624:22;11601:45;:78;;;;-1:-1:-1;11671:7:0;;-1:-1:-1;;;;;11650:29:0;;;11671:7;;11650:29;;11601:78;:108;;;;-1:-1:-1;;;;;;11683:26:0;;5090:42;11683:26;;11601:108;11598:219;;;11767:13;;-1:-1:-1;;;;;11730:20:0;;;;;;:9;:20;;;;;;:32;;11755:6;11730:24;:32::i;:::-;11729:51;;11721:94;;;;-1:-1:-1;;;11721:94:0;;8294:2:1;11721:94:0;;;8276:21:1;8333:2;8313:18;;;8306:30;8372:32;8352:18;;;8345:60;8422:18;;11721:94:0;8092:354:1;11721:94:0;11840:7;;-1:-1:-1;;;;;11830:17:0;;;11840:7;;11830:17;11827:121;;11867:10;;11857:6;:20;;:42;;;-1:-1:-1;;;;;;11881:18:0;;;;;;:10;:18;;;;;;;;11857:42;:67;;;-1:-1:-1;;;;;;11903:21:0;;;;;;:10;:21;;;;;;;;11857:67;11849:97;;;;-1:-1:-1;;;11849:97:0;;8653:2:1;11849:97:0;;;8635:21:1;8692:2;8672:18;;;8665:30;-1:-1:-1;;;8711:18:1;;;8704:47;8768:18;;11849:97:0;8451:341:1;11849:97:0;11976:12;;11966:6;:22;;:44;;;-1:-1:-1;;;;;;11992:18:0;;;;;;:10;:18;;;;;;;;11966:44;:69;;;-1:-1:-1;;;;;;12014:21:0;;;;;;:10;:21;;;;;;;;11966:69;11958:99;;;;-1:-1:-1;;;11958:99:0;;8653:2:1;11958:99:0;;;8635:21:1;8692:2;8672:18;;;8665:30;-1:-1:-1;;;8711:18:1;;;8704:47;8768:18;;11958:99:0;8451:341:1;11958:99:0;12085:7;;-1:-1:-1;;;;;12072:20:0;;;12085:7;;12072:20;:43;;;;-1:-1:-1;;;;;;12097:18:0;;;;;;:10;:18;;;;;;;;12096:19;12072:43;12069:76;;;12141:1;12117:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;12069:76:0;12158:40;12172:6;12180:9;12191:6;12158:13;:40::i;:::-;12155:113;;;12200:39;12225:13;;12200:24;:39::i;:::-;12264:1;12241:12;:25;12155:113;-1:-1:-1;;;;;12298:17:0;;;;;;:9;:17;;;;;;:29;;12320:6;12298:21;:29::i;:::-;-1:-1:-1;;;;;12278:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12364:10;:18;;;;;;;;12363:19;:73;;12430:6;12363:73;;;12385:42;12401:6;12409:9;12420:6;12385:15;:42::i;:::-;-1:-1:-1;;;;;12470:20:0;;;;;;:9;:20;;;;;;12338:98;;-1:-1:-1;12470:40:0;;12338:98;12470:24;:40::i;:::-;-1:-1:-1;;;;;12447:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12526:43;;;;;;;;;;12554:14;1361:25:1;;1349:2;1334:18;;1215:177;12526:43:0;;;;;;;;11232:1345;11154:1423;;;:::o;1461:240::-;1581:7;1642:12;1634:6;;;;1626:29;;;;-1:-1:-1;;;1626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1677:5:0;;;1461:240::o;1143:98::-;1201:7;1228:5;1232:1;1228;:5;:::i;1249:98::-;1307:7;1334:5;1338:1;1334;:5;:::i;931:98::-;989:7;1016:5;1020:1;1016;:5;:::i;6854:395::-;6994:9;;7064:13;;7054:4;6951;13007:18;;;:9;:18;;;;;;7096:8;;6951:4;;6984:19;;;;-1:-1:-1;7036:41:0;;7096:8;;7095:9;:24;;;;-1:-1:-1;7108:11:0;;-1:-1:-1;;;7108:11:0;;;;7095:24;:37;;;;-1:-1:-1;7123:9:0;;-1:-1:-1;;;7123:9:0;;;;7095:37;:49;;;;;7136:8;7095:49;:72;;;;-1:-1:-1;;;;;;7149:18:0;;;;;;:10;:18;;;;;;;;7148:19;7095:72;:96;;;;-1:-1:-1;7184:7:0;;-1:-1:-1;;;;;7171:20:0;;;7184:7;;7171:20;7095:96;:128;;;;;7211:12;;7195;;:28;;7095:128;:146;;;;;7227:14;7095:146;7088:153;6854:395;-1:-1:-1;;;;;;6854:395:0:o;7918:1053::-;4673:8;:15;;-1:-1:-1;;4673:15:0;4684:4;4673:15;;;;;;8062:14:::1;::::0;8044:12:::1;::::0;8020::::1;::::0;4673:8;;8019:66:::1;::::0;8083:1:::1;::::0;8020:57:::1;::::0;8062:14;;8020:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;8019:66::-;7996:89;;8096:32;8131:42;8160:12;8131:24;8142:12;;8131:6;:10;;:24;;;;:::i;:42::-;8096:77:::0;-1:-1:-1;8184:14:0::1;8201:36;:6:::0;8096:77;8201:10:::1;:36::i;:::-;8184:53:::0;-1:-1:-1;8273:21:0::1;8305;8184:53:::0;8305:13:::1;:21::i;:::-;8337:20;8360:41;:21;8386:14:::0;8360:25:::1;:41::i;:::-;8337:64;;8412:19;8433:48;8450:30;8467:12;;8450;:16;;:30;;;;:::i;:::-;8433:12:::0;;:16:::1;:48::i;:::-;8412:69;;8492:29;8524;8540:12;;8524:11;:15;;:29;;;;:::i;:::-;8492:61:::0;-1:-1:-1;8567:34:0;;8564:103:::1;;8603:61;8616:24;8642:21;8603:12;:61::i;:::-;8723:12;::::0;8677:20:::1;::::0;8700:36:::1;::::0;:18:::1;:11:::0;8716:1:::1;8700:15;:18::i;:36::-;8677:59:::0;-1:-1:-1;8750:16:0;;8747:70:::1;;8776:15;::::0;8768:47:::1;::::0;-1:-1:-1;;;;;8776:15:0;;::::1;::::0;8768:47;::::1;;;::::0;8802:12;;8776:15:::1;8768:47:::0;8776:15;8768:47;8802:12;8776:15;8768:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8747:70;8853:21;8888:28:::0;;8885:79:::1;;8926:9;::::0;8918:44:::1;::::0;-1:-1:-1;;;;;8926:9:0;;::::1;::::0;8918:44;::::1;;;::::0;8946:15;;8926:9:::1;8918:44:::0;8926:9;8918:44;8946:15;8926:9;8918:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8885:79;-1:-1:-1::0;;4693:8:0;:16;;-1:-1:-1;;4693:16:0;;;-1:-1:-1;;;;;;;;7918:1053:0:o;9501:663::-;-1:-1:-1;;;;;9619:21:0;;9595:7;9619:21;;;:10;:21;;;;;;;;9615:49;;;-1:-1:-1;9650:12:0;;9643:19;;9615:49;9712:1;9677:32;9691:6;9699:9;9677:13;:32::i;:::-;:36;9674:468;;;9725:17;9745:61;9773:32;9787:6;9795:9;9773:13;:32::i;:::-;9756:11;;9745:23;;:6;;:10;:23::i;:61::-;9862:4;9844:24;;;;:9;:24;;;;;;9725:81;;-1:-1:-1;9844:39:0;;9725:81;9844:28;:39::i;:::-;9835:4;9817:24;;;;:9;:24;;;;;;;:66;;;;9899:42;;-1:-1:-1;;;;;9899:42:0;;;;;;;9931:9;1361:25:1;;1349:2;1334:18;;1215:177;9899:42:0;;;;;;;;9973:1;9955:7;;:20;:66;;;;;10014:7;;9979:32;9993:6;10001:9;9979:13;:32::i;:::-;:42;9955:66;9952:150;;;10023:77;10041:4;5090:42;10063:36;10091:7;;10063:23;10074:11;;10063:6;:10;;:23;;;;:::i;:36::-;10023:9;:77::i;:::-;10119:21;:6;10130:9;10119:10;:21::i;:::-;10112:28;;;;;9674:468;-1:-1:-1;10150:6:0;9501:663;-1:-1:-1;;9501:663:0:o;10711:437::-;10798:16;;;10812:1;10798:16;;;;;;;;10774:21;;10798:16;;;;;;;;;;-1:-1:-1;10798:16:0;10774:40;;10843:4;10825;10830:1;10825:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10825:23:0;;;:7;;;;;;;;;;:23;;;;10869:8;;:15;;;-1:-1:-1;;;10869:15:0;;;;:8;;;;;:13;;:15;;;;;10825:7;;10869:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10859:4;10864:1;10859:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10859:25:0;;;:7;;;;;;;;;:25;10927:8;;10895:55;;10912:4;;10927:8;10938:11;10895:8;:55::i;:::-;10961:8;;:179;;-1:-1:-1;;;10961:179:0;;-1:-1:-1;;;;;10961:8:0;;;;:59;;:179;;11035:11;;10961:8;;11077:4;;11104;;11124:15;;10961:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10763:385;10711:437;:::o;7255:342::-;7368:8;;7336:55;;7353:4;;-1:-1:-1;;;;;7368:8:0;7379:11;7336:8;:55::i;:::-;7402:8;;7545:13;;7402:187;;-1:-1:-1;;;7402:187:0;;7467:4;7402:187;;;11168:34:1;11218:18;;;11211:34;;;7402:8:0;11261:18:1;;;11254:34;;;11304:18;;;11297:34;-1:-1:-1;;;;;7545:13:0;;;11347:19:1;;;11340:44;7573:15:0;11400:19:1;;;11393:35;7402:8:0;;;:24;;7434:9;;11102:19:1;;7402:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7255:342;;:::o;6623:225::-;6740:7;;6704;;-1:-1:-1;;;;;6740:7:0;;;6727:20;;;;6724:41;;-1:-1:-1;6756:7:0;;6749:14;;6724:41;6788:7;;-1:-1:-1;;;;;6788:7:0;;;6778:17;;;;6775:37;;-1:-1:-1;6804:6:0;;6797:13;;6775:37;-1:-1:-1;6829:11:0;;6623:225;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8797:125::-;8862:9;;;8883:10;;;8880:36;;;8896:18;;:::i;8927:168::-;9000:9;;;9031;;9048:15;;;9042:22;;9028:37;9018:71;;9069:18;;:::i;9100:217::-;9140:1;9166;9156:132;;9210:10;9205:3;9201:20;9198:1;9191:31;9245:4;9242:1;9235:15;9273:4;9270:1;9263:15;9156:132;-1:-1:-1;9302:9:1;;9100:217::o;9454:127::-;9515:10;9510:3;9506:20;9503:1;9496:31;9546:4;9543:1;9536:15;9570:4;9567:1;9560:15;9586:251;9656:6;9709:2;9697:9;9688:7;9684:23;9680:32;9677:52;;;9725:1;9722;9715:12;9677:52;9757:9;9751:16;9776:31;9801:5;9776:31;:::i;9842:980::-;10104:4;10152:3;10141:9;10137:19;10183:6;10172:9;10165:25;10209:2;10247:6;10242:2;10231:9;10227:18;10220:34;10290:3;10285:2;10274:9;10270:18;10263:31;10314:6;10349;10343:13;10380:6;10372;10365:22;10418:3;10407:9;10403:19;10396:26;;10457:2;10449:6;10445:15;10431:29;;10478:1;10488:195;10502:6;10499:1;10496:13;10488:195;;;10567:13;;-1:-1:-1;;;;;10563:39:1;10551:52;;10658:15;;;;10623:12;;;;10599:1;10517:9;10488:195;;;-1:-1:-1;;;;;;;10739:32:1;;;;10734:2;10719:18;;10712:60;-1:-1:-1;;;10803:3:1;10788:19;10781:35;10700:3;9842:980;-1:-1:-1;;;9842:980:1:o;11439:306::-;11527:6;11535;11543;11596:2;11584:9;11575:7;11571:23;11567:32;11564:52;;;11612:1;11609;11602:12;11564:52;11641:9;11635:16;11625:26;;11691:2;11680:9;11676:18;11670:25;11660:35;;11735:2;11724:9;11720:18;11714:25;11704:35;;11439:306;;;;;:::o

Swarm Source

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