ETH Price: $2,414.38 (+2.49%)

Token

Alpaca Voice Changer Bot (AVEX)
 

Overview

Max Total Supply

1,000,000,000 AVEX

Holders

99

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: AVEX 4
Balance
63,057,371,400.188899546 AVEX

Value
$0.00
0x6e93d1530cee7012d3b0d14c51f0b64ce0cdaa71
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:
AVEX

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
With an extensive library of numerous voice effects, the Alpaca Telegram Voice Changer provides lightning-fast voice conversions for an unparalleled experience.ccc

Website: https://alpacabot.pro
Twitter: https://twitter.com/AVEX_BOT_ERC
Telegram: https://t.me/AVEX_BOT_ERC
AlpacaBot: https://t.me/voice_changer_bot
*/

pragma solidity 0.8.21;

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);
}

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 transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(address(0));
        owner = address(0);
    }
    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 IUniswapRouter {
    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;
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address uniswapPair);
}

contract AVEX is Ownable, IERC20 {
    using SafeMath for uint256;

    string private constant _name = unicode"Alpaca Voice Changer Bot";
    string private constant _symbol = unicode"AVEX";

    IUniswapRouter uniswapRouter;
    address public uniswapPair;
    bool private openedTrading = false;
    bool private feeSwapActive = true;
    uint256 private numFeeTaxSwap;
    bool private isFeeSwapping;
    uint256 feeTaxSwapAt;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcemptFrmTaxFee;

    uint8 private constant _decimals = 9;
    uint256 private _supplyTotal = 1000000000 * (10 ** _decimals);
    uint256 private _maxTaxSwapAmnt = ( _supplyTotal * 1000 ) / 100000;
    uint256 private _minTaxSwapAmnt = ( _supplyTotal * 10 ) / 100000;

    uint256 private _maxTxAmnt = ( _supplyTotal * 300 ) / 10000;
    uint256 private _maxTransferAmnt = ( _supplyTotal * 300 ) / 10000;
    uint256 private _maxHoldingAmnt = ( _supplyTotal * 300 ) / 10000;

    uint256 private lpDivision = 0;
    uint256 private marketingDivision = 0;
    uint256 private devDivision = 100;
    uint256 private burnDivision = 0;

    uint256 private purchaseTax = 1400;
    uint256 private sellTaxFee = 1400;
    uint256 private transferTaxFee = 1400;
    uint256 private denominator = 10000;

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal taxWallet = 0xBd68efFC82489f7317AD2f6bDaF0EACfB8F3E2F7;
    address internal lpWallet = 0xBd68efFC82489f7317AD2f6bDaF0EACfB8F3E2F7;
    address internal devWallet = 0xBd68efFC82489f7317AD2f6bDaF0EACfB8F3E2F7; 

    modifier taxSwapLock {isFeeSwapping = true; _; isFeeSwapping = false;}

    constructor() Ownable(msg.sender) {
        IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH());
        uniswapRouter = _router; uniswapPair = _pair;
        
        isExcemptFrmTaxFee[msg.sender] = true;
        isExcemptFrmTaxFee[lpWallet] = true;
        isExcemptFrmTaxFee[taxWallet] = true;
        isExcemptFrmTaxFee[devWallet] = true;
        _balances[msg.sender] = _supplyTotal;
        emit Transfer(address(0), msg.sender, _supplyTotal);
    }
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}    function startTrading() external onlyOwner {openedTrading = true;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function totalSupply() public view override returns (uint256) {return _supplyTotal.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}    
    function getOwner() external view override returns (address) { return owner; }
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    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 swapTaxLiquidify(uint256 tokens) private taxSwapLock {
        uint256 _denominator = (lpDivision.add(1).add(marketingDivision).add(devDivision)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(lpDivision).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(lpDivision));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(lpDivision);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingDivision);
        if(marketingAmt > 0){payable(taxWallet).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devWallet).transfer(contractBalance);}
    }
    function isExcludedFromFee(address sender, address recipient) internal view returns (bool) {
        return !isExcemptFrmTaxFee[sender] && !isExcemptFrmTaxFee[recipient];
    }    
    
    function getTotalTaxAmt(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcemptFrmTaxFee[recipient]) {return _maxTxAmnt;}
        if(getTotalFeeAmt(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFeeAmt(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnDivision > uint256(0) && getTotalFeeAmt(sender, recipient) > burnDivision){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnDivision));}
        return amount.sub(feeAmount);} return amount;
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniswapRouter), tokenAmount);
        uniswapRouter.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            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 setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _supplyTotal.mul(_buy).div(10000); uint256 newTransfer = _supplyTotal.mul(_sell).div(10000); uint256 newWallet = _supplyTotal.mul(_wallet).div(10000);
        _maxTxAmnt = newTx; _maxTransferAmnt = newTransfer; _maxHoldingAmnt = 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 getTotalFeeAmt(address sender, address recipient) internal view returns (uint256) {
        if(recipient == uniswapPair){return sellTaxFee;}
        if(sender == uniswapPair){return purchaseTax;}
        return transferTaxFee;
    }

    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(!isExcemptFrmTaxFee[sender] && !isExcemptFrmTaxFee[recipient]){require(openedTrading, "openedTrading");}
        if(!isExcemptFrmTaxFee[sender] && !isExcemptFrmTaxFee[recipient] && recipient != address(uniswapPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxHoldingAmnt, "Exceeds maximum wallet amount.");}
        if(sender != uniswapPair){require(amount <= _maxTransferAmnt || isExcemptFrmTaxFee[sender] || isExcemptFrmTaxFee[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmnt || isExcemptFrmTaxFee[sender] || isExcemptFrmTaxFee[recipient], "TX Limit Exceeded"); 
        if(recipient == uniswapPair && !isExcemptFrmTaxFee[sender]){numFeeTaxSwap += uint256(1);}
        if(shouldSwapTaxFee(sender, recipient, amount)){swapTaxLiquidify(_maxTaxSwapAmnt); numFeeTaxSwap = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcemptFrmTaxFee[sender] ? getTotalTaxAmt(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), tokenAmount);
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapTaxFee(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTaxSwapAmnt;
        bool aboveThreshold = balanceOf(address(this)) >= _maxTaxSwapAmnt;
        return !isFeeSwapping && feeSwapActive && openedTrading && aboveMin && !isExcemptFrmTaxFee[sender] && recipient == uniswapPair && numFeeTaxSwap >= feeTaxSwapAt && aboveThreshold;
    }
    
    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        lpDivision = _liquidity; marketingDivision = _marketing; burnDivision = _burn; devDivision = _development; purchaseTax = _total; sellTaxFee = _sell; transferTaxFee = _trans;
        require(purchaseTax <= denominator.div(1) && sellTaxFee <= denominator.div(1) && transferTaxFee <= denominator.div(1), "purchaseTax and sellTaxFee cannot be more than 20%");
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcemptFrmTaxFee","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":"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"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805461ffff60a01b1916600160a81b179055620000266009600a620004b3565b6200003690633b9aca00620004ca565b600955620186a06009546103e86200004f9190620004ca565b6200005b9190620004e4565b600a55620186a0600954600a620000739190620004ca565b6200007f9190620004e4565b600b5561271060095461012c620000979190620004ca565b620000a39190620004e4565b600c5561271060095461012c620000bb9190620004ca565b620000c79190620004e4565b600d5561271060095461012c620000df9190620004ca565b620000eb9190620004e4565b600e555f600f81905560108190556064601155601255610578601381905560148190556015556127106016556017805473bd68effc82489f7317ad2f6bdaf0eacfb8f3e2f76001600160a01b031991821681179092556018805482168317905560198054909116909117905534801562000163575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ee919062000504565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000260919062000504565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d1919062000504565b600180546001600160a01b038581166001600160a01b031992831617835560028054858316931692909217909155335f818152600860209081526040808320805460ff1990811688179091556018548616845281842080548216881790556017548616845281842080548216881790556019549095168352808320805490951690951790935560095482825260068452848220819055935193845293945092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200052c565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f857815f1904821115620003dc57620003dc620003a4565b80851615620003ea57918102915b93841c9390800290620003bd565b509250929050565b5f826200041057506001620004ad565b816200041e57505f620004ad565b8160018114620004375760028114620004425762000462565b6001915050620004ad565b60ff841115620004565762000456620003a4565b50506001821b620004ad565b5060208310610133831016604e8410600b841016171562000487575081810a620004ad565b620004938383620003b8565b805f1904821115620004a957620004a9620003a4565b0290505b92915050565b5f620004c360ff84168362000400565b9392505050565b8082028115828204841417620004ad57620004ad620003a4565b5f82620004ff57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000515575f80fd5b81516001600160a01b0381168114620004c3575f80fd5b6117e5806200053a5f395ff3fe608060405260043610610108575f3560e01c8063715018a611610092578063a9059cbb11610062578063a9059cbb14610329578063c816841b14610348578063cb7f97d714610367578063dd62ed3e14610386578063f2fde38b146103ca575f80fd5b8063715018a61461029a578063893d20e8146102ae57806395d89b41146102de5780639cc353511461030a575f80fd5b806323b872dd116100d857806323b872dd146101e9578063293230b8146102085780632f54bf6e1461021e578063313ce5671461024b57806370a0823114610266575f80fd5b806306fdde0314610113578063095ea7b31461016a57806317f938541461019957806318160ddd146101c7575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152601881527f416c7061636120566f696365204368616e67657220426f74000000000000000060208201525b60405161016191906114a2565b60405180910390f35b348015610175575f80fd5b50610189610184366004611504565b6103e9565b6040519015158152602001610161565b3480156101a4575f80fd5b506101896101b336600461152e565b60086020525f908152604090205460ff1681565b3480156101d2575f80fd5b506101db6103ff565b604051908152602001610161565b3480156101f4575f80fd5b50610189610203366004611549565b61046f565b348015610213575f80fd5b5061021c6104d7565b005b348015610229575f80fd5b5061018961023836600461152e565b5f546001600160a01b0391821691161490565b348015610256575f80fd5b5060405160098152602001610161565b348015610271575f80fd5b506101db61028036600461152e565b6001600160a01b03165f9081526006602052604090205490565b3480156102a5575f80fd5b5061021c61051e565b3480156102b9575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610161565b3480156102e9575f80fd5b50604080518082019091526004815263082ac8ab60e31b6020820152610154565b348015610315575f80fd5b5061021c610324366004611587565b61058b565b348015610334575f80fd5b50610189610343366004611504565b6106c7565b348015610353575f80fd5b506002546102c6906001600160a01b031681565b348015610372575f80fd5b5061021c6103813660046115b0565b6106d3565b348015610391575f80fd5b506101db6103a03660046115f7565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156103d5575f80fd5b5061021c6103e436600461152e565b6107cf565b5f6103f533848461084b565b5060015b92915050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600954919261046a929091610464919061096e565b9061096e565b905090565b5f61047b848484610979565b6104cc84336104c785604051806060016040528060288152602001611788602891396001600160a01b038a165f9081526007602090815260408083203384529091529020549190610eb9565b61084b565b5060015b9392505050565b5f546001600160a01b031633146105095760405162461bcd60e51b81526004016105009061162e565b60405180910390fd5b6002805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105475760405162461bcd60e51b81526004016105009061162e565b6040515f81527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a15f80546001600160a01b0319169055565b5f546001600160a01b031633146105b45760405162461bcd60e51b81526004016105009061162e565b5f6105d66127106105d086600954610ee490919063ffffffff16565b90610eef565b90505f6105f46127106105d086600954610ee490919063ffffffff16565b90505f6106126127106105d086600954610ee490919063ffffffff16565b600c849055600d839055600e81905590505f61063d6103e86105d060056106376103ff565b90610ee4565b905080841015801561064f5750808310155b801561065b5750808210155b6106be5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610500565b50505050505050565b5f6103f5338484610979565b5f546001600160a01b031633146106fc5760405162461bcd60e51b81526004016105009061162e565b600f87905560108690556012859055601184905560138390556014829055601581905560165461072d906001610eef565b6013541115801561074d5750601654610747906001610eef565b60145411155b80156107685750601654610762906001610eef565b60155411155b6106be5760405162461bcd60e51b815260206004820152603260248201527f707572636861736554617820616e642073656c6c5461784665652063616e6e6f60448201527174206265206d6f7265207468616e2032302560701b6064820152608401610500565b5f546001600160a01b031633146107f85760405162461bcd60e51b81526004016105009061162e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610500565b6001600160a01b03821661090e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610500565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104d08284611662565b6001600160a01b0383166109dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610500565b6001600160a01b038216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610500565b6001600160a01b0383165f90815260066020526040902054811115610ac05760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610500565b6001600160a01b0383165f9081526008602052604090205460ff16158015610b0057506001600160a01b0382165f9081526008602052604090205460ff16155b15610b4e57600254600160a01b900460ff16610b4e5760405162461bcd60e51b815260206004820152600d60248201526c6f70656e656454726164696e6760981b6044820152606401610500565b6001600160a01b0383165f9081526008602052604090205460ff16158015610b8e57506001600160a01b0382165f9081526008602052604090205460ff16155b8015610ba857506002546001600160a01b03838116911614155b8015610bbf57506001600160a01b03821661dead14155b15610c3757600e546001600160a01b0383165f90815260066020526040902054610be99083610efa565b1115610c375760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610500565b6002546001600160a01b03848116911614610cd657600d5481111580610c7457506001600160a01b0383165f9081526008602052604090205460ff165b80610c9657506001600160a01b0382165f9081526008602052604090205460ff165b610cd65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610500565b600c5481111580610cfe57506001600160a01b0383165f9081526008602052604090205460ff165b80610d2057506001600160a01b0382165f9081526008602052604090205460ff165b610d605760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610500565b6002546001600160a01b038381169116148015610d9557506001600160a01b0383165f9081526008602052604090205460ff16155b15610db257600160035f828254610dac9190611675565b90915550505b610dbd838383610f05565b15610dd257610dcd600a54610fbd565b5f6003555b6001600160a01b0383165f90815260066020526040902054610df4908261096e565b6001600160a01b0384165f90815260066020908152604080832093909355600890529081205460ff1615610e285781610e33565b610e3384848461112d565b6001600160a01b0384165f90815260066020526040902054909150610e589082610efa565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eab9085815260200190565b60405180910390a350505050565b5f8184841115610edc5760405162461bcd60e51b815260040161050091906114a2565b505050900390565b5f6104d08284611688565b5f6104d0828461169f565b5f6104d08284611675565b600b54600a54305f9081526006602052604081205460045491938510159211159060ff16158015610f3f5750600254600160a81b900460ff165b8015610f545750600254600160a01b900460ff165b8015610f5d5750815b8015610f8157506001600160a01b0386165f9081526008602052604090205460ff16155b8015610f9a57506002546001600160a01b038681169116145b8015610faa575060055460035410155b8015610fb35750805b9695505050505050565b6004805460ff19166001908117909155601154601054600f545f93610ff693600293610637939192610ff0928391610efa565b90610efa565b90505f611012826105d0600f5486610ee490919063ffffffff16565b90505f61101f848361096e565b90504761102b82611257565b5f611036478361096e565b90505f611058611051600f548861096e90919063ffffffff16565b8390610eef565b90505f611070600f5483610ee490919063ffffffff16565b905080156110825761108286826113a7565b6010545f9061109690610637856002610ee4565b905080156110d7576017546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d5573d5f803e3d5ffd5b505b478015611117576019546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611115573d5f803e3d5ffd5b505b50506004805460ff191690555050505050505050565b6001600160a01b0382165f9081526008602052604081205460ff16156111565750600c546104d0565b5f6111618585611458565b1115611250575f6111836111758686611458565b601654610637908690610eef565b305f9081526006602052604090205490915061119f9082610efa565b305f81815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ef9085815260200190565b60405180910390a35f60125411801561121257506012546112108686611458565b115b1561123e5761123e3061dead61123960125461063760165489610eef90919063ffffffff16565b610979565b611248838261096e565b9150506104d0565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061128a5761128a6116be565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130591906116d2565b81600181518110611318576113186116be565b6001600160a01b03928316602091820292909201015260015461133e913091168461084b565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906113769085905f908690309042906004016116ed565b5f604051808303815f87803b15801561138d575f80fd5b505af115801561139f573d5f803e3d5ffd5b505050505050565b6001546113bf9030906001600160a01b03168461084b565b60015460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561142c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611451919061175c565b5050505050565b6002545f906001600160a01b039081169083160361147957506014546103f9565b6002546001600160a01b039081169084160361149857506013546103f9565b5060155492915050565b5f6020808352835180828501525f5b818110156114cd578581018301518582016040015282016114b1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611501575f80fd5b50565b5f8060408385031215611515575f80fd5b8235611520816114ed565b946020939093013593505050565b5f6020828403121561153e575f80fd5b81356104d0816114ed565b5f805f6060848603121561155b575f80fd5b8335611566816114ed565b92506020840135611576816114ed565b929592945050506040919091013590565b5f805f60608486031215611599575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a0312156115c6575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611608575f80fd5b8235611613816114ed565b91506020830135611623816114ed565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103f9576103f961164e565b808201808211156103f9576103f961164e565b80820281158282048414176103f9576103f961164e565b5f826116b957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116e2575f80fd5b81516104d0816114ed565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561173b5784516001600160a01b031683529383019391830191600101611716565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561176e575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220804cda492a2d3f8831fd3ef83f21dd62db8ae74da70597056b44b448edabf4a464736f6c63430008150033

Deployed Bytecode

0x608060405260043610610108575f3560e01c8063715018a611610092578063a9059cbb11610062578063a9059cbb14610329578063c816841b14610348578063cb7f97d714610367578063dd62ed3e14610386578063f2fde38b146103ca575f80fd5b8063715018a61461029a578063893d20e8146102ae57806395d89b41146102de5780639cc353511461030a575f80fd5b806323b872dd116100d857806323b872dd146101e9578063293230b8146102085780632f54bf6e1461021e578063313ce5671461024b57806370a0823114610266575f80fd5b806306fdde0314610113578063095ea7b31461016a57806317f938541461019957806318160ddd146101c7575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152601881527f416c7061636120566f696365204368616e67657220426f74000000000000000060208201525b60405161016191906114a2565b60405180910390f35b348015610175575f80fd5b50610189610184366004611504565b6103e9565b6040519015158152602001610161565b3480156101a4575f80fd5b506101896101b336600461152e565b60086020525f908152604090205460ff1681565b3480156101d2575f80fd5b506101db6103ff565b604051908152602001610161565b3480156101f4575f80fd5b50610189610203366004611549565b61046f565b348015610213575f80fd5b5061021c6104d7565b005b348015610229575f80fd5b5061018961023836600461152e565b5f546001600160a01b0391821691161490565b348015610256575f80fd5b5060405160098152602001610161565b348015610271575f80fd5b506101db61028036600461152e565b6001600160a01b03165f9081526006602052604090205490565b3480156102a5575f80fd5b5061021c61051e565b3480156102b9575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610161565b3480156102e9575f80fd5b50604080518082019091526004815263082ac8ab60e31b6020820152610154565b348015610315575f80fd5b5061021c610324366004611587565b61058b565b348015610334575f80fd5b50610189610343366004611504565b6106c7565b348015610353575f80fd5b506002546102c6906001600160a01b031681565b348015610372575f80fd5b5061021c6103813660046115b0565b6106d3565b348015610391575f80fd5b506101db6103a03660046115f7565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156103d5575f80fd5b5061021c6103e436600461152e565b6107cf565b5f6103f533848461084b565b5060015b92915050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600954919261046a929091610464919061096e565b9061096e565b905090565b5f61047b848484610979565b6104cc84336104c785604051806060016040528060288152602001611788602891396001600160a01b038a165f9081526007602090815260408083203384529091529020549190610eb9565b61084b565b5060015b9392505050565b5f546001600160a01b031633146105095760405162461bcd60e51b81526004016105009061162e565b60405180910390fd5b6002805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105475760405162461bcd60e51b81526004016105009061162e565b6040515f81527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a15f80546001600160a01b0319169055565b5f546001600160a01b031633146105b45760405162461bcd60e51b81526004016105009061162e565b5f6105d66127106105d086600954610ee490919063ffffffff16565b90610eef565b90505f6105f46127106105d086600954610ee490919063ffffffff16565b90505f6106126127106105d086600954610ee490919063ffffffff16565b600c849055600d839055600e81905590505f61063d6103e86105d060056106376103ff565b90610ee4565b905080841015801561064f5750808310155b801561065b5750808210155b6106be5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610500565b50505050505050565b5f6103f5338484610979565b5f546001600160a01b031633146106fc5760405162461bcd60e51b81526004016105009061162e565b600f87905560108690556012859055601184905560138390556014829055601581905560165461072d906001610eef565b6013541115801561074d5750601654610747906001610eef565b60145411155b80156107685750601654610762906001610eef565b60155411155b6106be5760405162461bcd60e51b815260206004820152603260248201527f707572636861736554617820616e642073656c6c5461784665652063616e6e6f60448201527174206265206d6f7265207468616e2032302560701b6064820152608401610500565b5f546001600160a01b031633146107f85760405162461bcd60e51b81526004016105009061162e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610500565b6001600160a01b03821661090e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610500565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104d08284611662565b6001600160a01b0383166109dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610500565b6001600160a01b038216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610500565b6001600160a01b0383165f90815260066020526040902054811115610ac05760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610500565b6001600160a01b0383165f9081526008602052604090205460ff16158015610b0057506001600160a01b0382165f9081526008602052604090205460ff16155b15610b4e57600254600160a01b900460ff16610b4e5760405162461bcd60e51b815260206004820152600d60248201526c6f70656e656454726164696e6760981b6044820152606401610500565b6001600160a01b0383165f9081526008602052604090205460ff16158015610b8e57506001600160a01b0382165f9081526008602052604090205460ff16155b8015610ba857506002546001600160a01b03838116911614155b8015610bbf57506001600160a01b03821661dead14155b15610c3757600e546001600160a01b0383165f90815260066020526040902054610be99083610efa565b1115610c375760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610500565b6002546001600160a01b03848116911614610cd657600d5481111580610c7457506001600160a01b0383165f9081526008602052604090205460ff165b80610c9657506001600160a01b0382165f9081526008602052604090205460ff165b610cd65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610500565b600c5481111580610cfe57506001600160a01b0383165f9081526008602052604090205460ff165b80610d2057506001600160a01b0382165f9081526008602052604090205460ff165b610d605760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610500565b6002546001600160a01b038381169116148015610d9557506001600160a01b0383165f9081526008602052604090205460ff16155b15610db257600160035f828254610dac9190611675565b90915550505b610dbd838383610f05565b15610dd257610dcd600a54610fbd565b5f6003555b6001600160a01b0383165f90815260066020526040902054610df4908261096e565b6001600160a01b0384165f90815260066020908152604080832093909355600890529081205460ff1615610e285781610e33565b610e3384848461112d565b6001600160a01b0384165f90815260066020526040902054909150610e589082610efa565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eab9085815260200190565b60405180910390a350505050565b5f8184841115610edc5760405162461bcd60e51b815260040161050091906114a2565b505050900390565b5f6104d08284611688565b5f6104d0828461169f565b5f6104d08284611675565b600b54600a54305f9081526006602052604081205460045491938510159211159060ff16158015610f3f5750600254600160a81b900460ff165b8015610f545750600254600160a01b900460ff165b8015610f5d5750815b8015610f8157506001600160a01b0386165f9081526008602052604090205460ff16155b8015610f9a57506002546001600160a01b038681169116145b8015610faa575060055460035410155b8015610fb35750805b9695505050505050565b6004805460ff19166001908117909155601154601054600f545f93610ff693600293610637939192610ff0928391610efa565b90610efa565b90505f611012826105d0600f5486610ee490919063ffffffff16565b90505f61101f848361096e565b90504761102b82611257565b5f611036478361096e565b90505f611058611051600f548861096e90919063ffffffff16565b8390610eef565b90505f611070600f5483610ee490919063ffffffff16565b905080156110825761108286826113a7565b6010545f9061109690610637856002610ee4565b905080156110d7576017546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d5573d5f803e3d5ffd5b505b478015611117576019546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611115573d5f803e3d5ffd5b505b50506004805460ff191690555050505050505050565b6001600160a01b0382165f9081526008602052604081205460ff16156111565750600c546104d0565b5f6111618585611458565b1115611250575f6111836111758686611458565b601654610637908690610eef565b305f9081526006602052604090205490915061119f9082610efa565b305f81815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ef9085815260200190565b60405180910390a35f60125411801561121257506012546112108686611458565b115b1561123e5761123e3061dead61123960125461063760165489610eef90919063ffffffff16565b610979565b611248838261096e565b9150506104d0565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061128a5761128a6116be565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130591906116d2565b81600181518110611318576113186116be565b6001600160a01b03928316602091820292909201015260015461133e913091168461084b565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906113769085905f908690309042906004016116ed565b5f604051808303815f87803b15801561138d575f80fd5b505af115801561139f573d5f803e3d5ffd5b505050505050565b6001546113bf9030906001600160a01b03168461084b565b60015460185460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561142c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611451919061175c565b5050505050565b6002545f906001600160a01b039081169083160361147957506014546103f9565b6002546001600160a01b039081169084160361149857506013546103f9565b5060155492915050565b5f6020808352835180828501525f5b818110156114cd578581018301518582016040015282016114b1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611501575f80fd5b50565b5f8060408385031215611515575f80fd5b8235611520816114ed565b946020939093013593505050565b5f6020828403121561153e575f80fd5b81356104d0816114ed565b5f805f6060848603121561155b575f80fd5b8335611566816114ed565b92506020840135611576816114ed565b929592945050506040919091013590565b5f805f60608486031215611599575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a0312156115c6575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611608575f80fd5b8235611613816114ed565b91506020830135611623816114ed565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103f9576103f961164e565b808201808211156103f9576103f961164e565b80820281158282048414176103f9576103f961164e565b5f826116b957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116e2575f80fd5b81516104d0816114ed565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561173b5784516001600160a01b031683529383019391830191600101611716565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561176e575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220804cda492a2d3f8831fd3ef83f21dd62db8ae74da70597056b44b448edabf4a464736f6c63430008150033

Deployed Bytecode Sourcemap

3928:10275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6365:67;;;;;;;;;;-1:-1:-1;6425:5:0;;;;;;;;;;;;;;;;;6365:67;;;;;;;:::i;:::-;;;;;;;;7271:133;;;;;;;;;;-1:-1:-1;7271:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7271:133:0;1023:187:1;4503:51:0;;;;;;;;;;-1:-1:-1;4503:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7045:132;;;;;;;;;;;;;:::i;:::-;;;1613:25:1;;;1601:2;1586:18;7045:132:0;1467:177:1;10040:309:0;;;;;;;;;;-1:-1:-1;10040:309:0;;;;;:::i;:::-;;:::i;6900:66::-;;;;;;;;;;;;;:::i;:::-;;1492:87;;;;;;;;;;-1:-1:-1;1492:87:0;;;;;:::i;:::-;1547:4;1572:5;-1:-1:-1;;;;;1561:16:0;;;1572:5;;1561:16;;1492:87;6972:67;;;;;;;;;;-1:-1:-1;6972:67:0;;4598:1;2252:36:1;;2240:2;2225:18;6972:67:0;2110:184:1;6660:103:0;;;;;;;;;;-1:-1:-1;6660:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6743:18:0;6726:7;6743:18;;;:9;:18;;;;;;;6660:103;1702:131;;;;;;;;;;;;;:::i;7187:78::-;;;;;;;;;;-1:-1:-1;7239:7:0;7257:5;-1:-1:-1;;;;;7257:5:0;7187:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;7187:78:0;2299:203:1;6438:71:0;;;;;;;;;;-1:-1:-1;6500:7:0;;;;;;;;;;;;-1:-1:-1;;;6500:7:0;;;;6438:71;;10355:556;;;;;;;;;;-1:-1:-1;10355:556:0;;;;;:::i;:::-;;:::i;6515:139::-;;;;;;;;;;-1:-1:-1;6515:139:0;;;;;:::i;:::-;;:::i;4166:26::-;;;;;;;;;;-1:-1:-1;4166:26:0;;;;-1:-1:-1;;;;;4166:26:0;;;13610:553;;;;;;;;;;-1:-1:-1;13610:553:0;;;;;:::i;:::-;;:::i;6769:127::-;;;;;;;;;;-1:-1:-1;6769:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6867:18:0;;;6850:7;6867:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6769:127;1585:111;;;;;;;;;;-1:-1:-1;1585:111:0;;;;;:::i;:::-;;:::i;7271:133::-;7346:4;7353:37;7362:10;7374:7;7383:6;7353:8;:37::i;:::-;-1:-1:-1;7398:4:0;7271:133;;;;;:::o;7045:132::-;6743:9;:18;;;;5395:42;7098:7;6743:18;;;;;7115:12;;7098:7;;7115:60;;6743:18;;7115:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7108:67;;7045:132;:::o;10040:309::-;10138:4;10155:36;10165:6;10173:9;10184:6;10155:9;:36::i;:::-;10202:117;10211:6;10219:10;10231:87;10267:6;10231:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10231:19:0;;;;;;:11;:19;;;;;;;;10251:10;10231:31;;;;;;;;;:87;:35;:87::i;:::-;10202:8;:117::i;:::-;-1:-1:-1;10337:4:0;10040:309;;;;;;:::o;6900:66::-;1547:4;1572:5;-1:-1:-1;;;;;1572:5:0;1459:10;1561:16;1443:38;;;;-1:-1:-1;;;1443:38:0;;;;;;;:::i;:::-;;;;;;;;;6944:13:::1;:20:::0;;-1:-1:-1;;;;6944:20:0::1;-1:-1:-1::0;;;6944:20:0::1;::::0;;6900:66::o;1702:131::-;1547:4;1572:5;-1:-1:-1;;;;;1572:5:0;1459:10;1561:16;1443:38;;;;-1:-1:-1;;;1443:38:0;;;;;;;:::i;:::-;1764:32:::1;::::0;1793:1:::1;2445:51:1::0;;1764:32:0::1;::::0;2433:2:1;2418:18;1764:32:0::1;;;;;;;1823:1;1807:18:::0;;-1:-1:-1;;;;;;1807:18:0::1;::::0;;1702:131::o;10355:556::-;1547:4;1572:5;-1:-1:-1;;;;;1572:5:0;1459:10;1561:16;1443:38;;;;-1:-1:-1;;;1443:38:0;;;;;;;:::i;:::-;10461:13:::1;10477:33;10504:5;10477:22;10494:4;10477:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;10461:49;;10512:19;10534:34;10562:5;10534:23;10551:5;10534:12;;:16;;:23;;;;:::i;:34::-;10512:56;;10570:17;10590:36;10620:5;10590:25;10607:7;10590:12;;:16;;:25;;;;:::i;:36::-;10637:10;:18:::0;;;10657:16:::1;:30:::0;;;10689:15:::1;:27:::0;;;10570:56;-1:-1:-1;;10743:30:0::1;10768:4;10743:20;10761:1;10743:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;10727:46;;10801:5;10792;:14;;:38;;;;;10825:5;10810:11;:20;;10792:38;:60;;;;;10847:5;10834:9;:18;;10792:60;10784:119;;;::::0;-1:-1:-1;;;10784:119:0;;4614:2:1;10784: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;;10784:119:0::1;4412:410:1::0;10784:119:0::1;10450:461;;;;10355:556:::0;;;:::o;6515:139::-;6593:4;6600:40;6610:10;6622:9;6633:6;6600:9;:40::i;13610:553::-;1547:4;1572:5;-1:-1:-1;;;;;1572:5:0;1459:10;1561:16;1443:38;;;;-1:-1:-1;;;1443:38:0;;;;;;;:::i;:::-;13800:10:::1;:23:::0;;;13825:17:::1;:30:::0;;;13857:12:::1;:20:::0;;;13879:11:::1;:26:::0;;;13907:11:::1;:20:::0;;;13929:10:::1;:18:::0;;;13949:14:::1;:23:::0;;;14006:11:::1;::::0;:18:::1;::::0;-1:-1:-1;14006:15:0::1;:18::i;:::-;13991:11;;:33;;:69;;;;-1:-1:-1::0;14042:11:0::1;::::0;:18:::1;::::0;14058:1:::1;14042:15;:18::i;:::-;14028:10;;:32;;13991:69;:109;;;;-1:-1:-1::0;14082:11:0::1;::::0;:18:::1;::::0;14098:1:::1;14082:15;:18::i;:::-;14064:14;;:36;;13991:109;13983:172;;;::::0;-1:-1:-1;;;13983:172:0;;5029:2:1;13983:172: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:48;5216:19;;13983:172:0::1;4827:414:1::0;1585:111:0;1547:4;1572:5;-1:-1:-1;;;;;1572:5:0;1459:10;1561:16;1443:38;;;;-1:-1:-1;;;1443:38:0;;;;;;;:::i;:::-;1651:5:::1;:11:::0;;-1:-1:-1;;;;;;1651:11:0::1;-1:-1:-1::0;;;;;1651:11:0;::::1;::::0;;::::1;::::0;;;1669:25:::1;::::0;2445:51:1;;;1669:25:0::1;::::0;2433:2:1;2418:18;1669:25:0::1;;;;;;;1585:111:::0;:::o;7410:335::-;-1:-1:-1;;;;;7503:19:0;;7495:68;;;;-1:-1:-1;;;7495:68:0;;5664:2:1;7495:68:0;;;5646:21:1;5703:2;5683:18;;;5676:30;5742:34;5722:18;;;5715:62;-1:-1:-1;;;5793:18:1;;;5786:34;5837:19;;7495:68:0;5462:400:1;7495:68:0;-1:-1:-1;;;;;7582:21:0;;7574:68;;;;-1:-1:-1;;;7574:68:0;;6069:2:1;7574:68:0;;;6051:21:1;6108:2;6088:18;;;6081:30;6147:34;6127:18;;;6120:62;-1:-1:-1;;;6198:18:1;;;6191:32;6240:19;;7574:68:0;5867:398:1;7574:68:0;-1:-1:-1;;;;;7653:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7705:32;;1613:25:1;;;7705:32:0;;1586:18:1;7705:32:0;;;;;;;7410:335;;;:::o;2016:98::-;2074:7;2101:5;2105:1;2101;:5;:::i;11172:1527::-;-1:-1:-1;;;;;11269:20:0;;11261:70;;;;-1:-1:-1;;;11261:70:0;;6737:2:1;11261:70:0;;;6719:21:1;6776:2;6756:18;;;6749:30;6815:34;6795:18;;;6788:62;-1:-1:-1;;;6866:18:1;;;6859:35;6911:19;;11261:70:0;6535:401:1;11261:70:0;-1:-1:-1;;;;;11350:23:0;;11342:71;;;;-1:-1:-1;;;11342:71:0;;7143:2:1;11342:71:0;;;7125:21:1;7182:2;7162:18;;;7155:30;7221:34;7201:18;;;7194:62;-1:-1:-1;;;7272:18:1;;;7265:33;7315:19;;11342:71:0;6941:399:1;11342:71:0;-1:-1:-1;;;;;6743:18:0;;6726:7;6743:18;;;:9;:18;;;;;;11432:6;:27;;11424:88;;;;-1:-1:-1;;;11424:88:0;;7547:2:1;11424:88:0;;;7529:21:1;7586:2;7566:18;;;7559:30;7625:34;7605:18;;;7598:62;-1:-1:-1;;;7676:18:1;;;7669:47;7733:19;;11424:88:0;7345:413:1;11424:88:0;-1:-1:-1;;;;;11527:26:0;;;;;;:18;:26;;;;;;;;11526:27;:61;;;;-1:-1:-1;;;;;;11558:29:0;;;;;;:18;:29;;;;;;;;11557:30;11526:61;11523:107;;;11597:13;;-1:-1:-1;;;11597:13:0;;;;11589:39;;;;-1:-1:-1;;;11589:39:0;;7965:2:1;11589:39:0;;;7947:21:1;8004:2;7984:18;;;7977:30;-1:-1:-1;;;8023:18:1;;;8016:43;8076:18;;11589:39:0;7763:337:1;11589:39:0;-1:-1:-1;;;;;11644:26:0;;;;;;:18;:26;;;;;;;;11643:27;:61;;;;-1:-1:-1;;;;;;11675:29:0;;;;;;:18;:29;;;;;;;;11674:30;11643:61;:98;;;;-1:-1:-1;11729:11:0;;-1:-1:-1;;;;;11708:33:0;;;11729:11;;11708:33;;11643:98;:128;;;;-1:-1:-1;;;;;;11745:26:0;;5395:42;11745:26;;11643:128;11640:241;;;11829:15;;-1:-1:-1;;;;;11792:20:0;;;;;;:9;:20;;;;;;:32;;11817:6;11792:24;:32::i;:::-;11791:53;;11783:96;;;;-1:-1:-1;;;11783:96:0;;8307:2:1;11783:96:0;;;8289:21:1;8346:2;8326:18;;;8319:30;8385:32;8365:18;;;8358:60;8435:18;;11783:96:0;8105:354:1;11783:96:0;11904:11;;-1:-1:-1;;;;;11894:21:0;;;11904:11;;11894:21;11891:147;;11935:16;;11925:6;:26;;:56;;;-1:-1:-1;;;;;;11955:26:0;;;;;;:18;:26;;;;;;;;11925:56;:89;;;-1:-1:-1;;;;;;11985:29:0;;;;;;:18;:29;;;;;;;;11925:89;11917:119;;;;-1:-1:-1;;;11917:119:0;;8666:2:1;11917:119:0;;;8648:21:1;8705:2;8685:18;;;8678:30;-1:-1:-1;;;8724:18:1;;;8717:47;8781:18;;11917:119:0;8464:341:1;11917:119:0;12066:10;;12056:6;:20;;:50;;;-1:-1:-1;;;;;;12080:26:0;;;;;;:18;:26;;;;;;;;12056:50;:83;;;-1:-1:-1;;;;;;12110:29:0;;;;;;:18;:29;;;;;;;;12056:83;12048:113;;;;-1:-1:-1;;;12048:113:0;;8666:2:1;12048:113:0;;;8648:21:1;8705:2;8685:18;;;8678:30;-1:-1:-1;;;8724:18:1;;;8717:47;8781:18;;12048:113:0;8464:341:1;12048:113:0;12189:11;;-1:-1:-1;;;;;12176:24:0;;;12189:11;;12176:24;:55;;;;-1:-1:-1;;;;;;12205:26:0;;;;;;:18;:26;;;;;;;;12204:27;12176:55;12173:89;;;12258:1;12233:13;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;12173:89:0;12275:43;12292:6;12300:9;12311:6;12275:16;:43::i;:::-;12272:111;;;12320:33;12337:15;;12320:16;:33::i;:::-;12379:1;12355:13;:26;12272:111;-1:-1:-1;;;;;12413:17:0;;;;;;:9;:17;;;;;;:29;;12435:6;12413:21;:29::i;:::-;-1:-1:-1;;;;;12393:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12479:18;:26;;;;;;;;12478:27;:80;;12552:6;12478:80;;;12508:41;12523:6;12531:9;12542:6;12508:14;:41::i;:::-;-1:-1:-1;;;;;12592:20:0;;;;;;:9;:20;;;;;;12453:105;;-1:-1:-1;12592:40:0;;12453:105;12592:24;:40::i;:::-;-1:-1:-1;;;;;12569:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12648:43;;;;;;;;;;12676:14;1613:25:1;;1601:2;1586:18;;1467:177;12648:43:0;;;;;;;;11250:1449;11172:1527;;;:::o;2432:240::-;2552:7;2613:12;2605:6;;;;2597:29;;;;-1:-1:-1;;;2597:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2648:5:0;;;2432:240::o;2120:98::-;2178:7;2205:5;2209:1;2205;:5;:::i;2224:98::-;2282:7;2309:5;2313:1;2309;:5;:::i;1912:98::-;1970:7;1997:5;2001:1;1997;:5;:::i;13168:430::-;13311:15;;13387;;13377:4;13268;6743:18;;;:9;:18;;;;;;13421:13;;13268:4;;13301:25;;;;-1:-1:-1;13359:43:0;;13421:13;;13420:14;:31;;;;-1:-1:-1;13438:13:0;;-1:-1:-1;;;13438:13:0;;;;13420:31;:48;;;;-1:-1:-1;13455:13:0;;-1:-1:-1;;;13455:13:0;;;;13420:48;:60;;;;;13472:8;13420:60;:91;;;;-1:-1:-1;;;;;;13485:26:0;;;;;;:18;:26;;;;;;;;13484:27;13420:91;:119;;;;-1:-1:-1;13528:11:0;;-1:-1:-1;;;;;13515:24:0;;;13528:11;;13515:24;13420:119;:152;;;;;13560:12;;13543:13;;:29;;13420:152;:170;;;;;13576:14;13420:170;13413:177;13168:430;-1:-1:-1;;;;;;13168:430:0:o;7751:1044::-;5702:13;:20;;-1:-1:-1;;5702:20:0;5718:4;5702:20;;;;;;7893:11:::1;::::0;7870:17:::1;::::0;7848:10:::1;::::0;5702:13;;7847:66:::1;::::0;7911:1:::1;::::0;7848:57:::1;::::0;7893:11;;7848:40:::1;::::0;;;:14:::1;:17::i;:::-;:21:::0;::::1;:40::i;7847:66::-;7824:89;;7924:32;7959:40;7986:12;7959:22;7970:10;;7959:6;:10;;:22;;;;:::i;:40::-;7924:75:::0;-1:-1:-1;8010:14:0::1;8027:36;:6:::0;7924:75;8027:10:::1;:36::i;:::-;8010:53:::0;-1:-1:-1;8099:21:0::1;8131:24;8010:53:::0;8131:16:::1;:24::i;:::-;8166:20;8189:41;:21;8215:14:::0;8189:25:::1;:41::i;:::-;8166:64;;8241:19;8262:46;8279:28;8296:10;;8279:12;:16;;:28;;;;:::i;:::-;8262:12:::0;;:16:::1;:46::i;:::-;8241:67;;8319:29;8351:27;8367:10;;8351:11;:15;;:27;;;;:::i;:::-;8319:59:::0;-1:-1:-1;8392:34:0;;8389:103:::1;;8428:61;8441:24;8467:21;8428:12;:61::i;:::-;8548:17;::::0;8502:20:::1;::::0;8525:41:::1;::::0;:18:::1;:11:::0;8541:1:::1;8525:15;:18::i;:41::-;8502:64:::0;-1:-1:-1;8580:16:0;;8577:64:::1;;8606:9;::::0;8598:41:::1;::::0;-1:-1:-1;;;;;8606:9:0;;::::1;::::0;8598:41;::::1;;;::::0;8626:12;;8606:9:::1;8598:41:::0;8606:9;8598:41;8626:12;8606:9;8598:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8577:64;8677:21;8712:28:::0;;8709:79:::1;;8750:9;::::0;8742:44:::1;::::0;-1:-1:-1;;;;;8750:9:0;;::::1;::::0;8742:44;::::1;;;::::0;8770:15;;8750:9:::1;8742:44:::0;8750:9;8742:44;8770:15;8750:9;8742:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8709:79;-1:-1:-1::0;;5727:13:0;:21;;-1:-1:-1;;5727:21:0;;;-1:-1:-1;;;;;;;;7751:1044:0:o;8995:686::-;-1:-1:-1;;;;;9112:29:0;;9088:7;9112:29;;;:18;:29;;;;;;;;9108:55;;;-1:-1:-1;9151:10:0;;9144:17;;9108:55;9212:1;9176:33;9191:6;9199:9;9176:14;:33::i;:::-;:37;9173:486;;;9225:17;9245:62;9273:33;9288:6;9296:9;9273:14;:33::i;:::-;9256:11;;9245:23;;:6;;:10;:23::i;:62::-;9363:4;9345:24;;;;:9;:24;;;;;;9225:82;;-1:-1:-1;9345:39:0;;9225:82;9345:28;:39::i;:::-;9336:4;9318:24;;;;:9;:24;;;;;;;:66;;;;9400:42;;-1:-1:-1;;;;;9400:42:0;;;;;;;9432:9;1613:25:1;;1601:2;1586:18;;1467:177;9400:42:0;;;;;;;;9479:1;9456:12;;:25;:77;;;;;9521:12;;9485:33;9500:6;9508:9;9485:14;:33::i;:::-;:48;9456:77;9453:166;;;9535:82;9553:4;5395:42;9575:41;9603:12;;9575:23;9586:11;;9575:6;:10;;:23;;;;:::i;:41::-;9535:9;:82::i;:::-;9636:21;:6;9647:9;9636:10;:21::i;:::-;9629:28;;;;;9173:486;-1:-1:-1;9667:6:0;8995:686;-1:-1:-1;;8995:686:0:o;12705:455::-;12795:16;;;12809:1;12795:16;;;;;;;;12771:21;;12795:16;;;;;;;;;;-1:-1:-1;12795:16:0;12771:40;;12840:4;12822;12827:1;12822:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12822:23:0;;;:7;;;;;;;;;;:23;;;;12866:13;;:20;;;-1:-1:-1;;;12866:20:0;;;;:13;;;;;:18;;:20;;;;;12822:7;;12866:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12856:4;12861:1;12856:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12856:30:0;;;:7;;;;;;;;;:30;12929:13;;12897:60;;12914:4;;12929:13;12945:11;12897:8;:60::i;:::-;12968:13;;:184;;-1:-1:-1;;;12968:184:0;;-1:-1:-1;;;;;12968:13:0;;;;:64;;:184;;13047:11;;12968:13;;13089:4;;13116;;13136:15;;12968:184;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12760:400;12705:455;:::o;9687:347::-;9800:13;;9768:60;;9785:4;;-1:-1:-1;;;;;9800:13:0;9816:11;9768:8;:60::i;:::-;9839:13;;9987:8;;9839:187;;-1:-1:-1;;;9839:187:0;;9909:4;9839:187;;;11181:34:1;11231:18;;;11224:34;;;9839:13:0;11274:18:1;;;11267:34;;;11317:18;;;11310:34;-1:-1:-1;;;;;9987:8:0;;;11360:19:1;;;11353:44;10010:15:0;11413:19:1;;;11406:35;9839:13:0;;;:29;;9876:9;;11115:19:1;;9839:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9687:347;;:::o;10919:245::-;11037:11;;11001:7;;-1:-1:-1;;;;;11037:11:0;;;11024:24;;;;11021:48;;-1:-1:-1;11057:10:0;;11050:17;;11021:48;11092:11;;-1:-1:-1;;;;;11092:11:0;;;11082:21;;;;11079:46;;-1:-1:-1;11112:11:0;;11105:18;;11079:46;-1:-1:-1;11142:14:0;;10919:245;;;;:::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;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;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;6270:127::-;6331:10;6326:3;6322:20;6319:1;6312:31;6362:4;6359:1;6352:15;6386:4;6383:1;6376:15;6402:128;6469:9;;;6490:11;;;6487:37;;;6504:18;;:::i;8810:125::-;8875:9;;;8896:10;;;8893:36;;;8909:18;;:::i;8940:168::-;9013:9;;;9044;;9061:15;;;9055:22;;9041:37;9031:71;;9082:18;;:::i;9113:217::-;9153:1;9179;9169:132;;9223:10;9218:3;9214:20;9211:1;9204:31;9258:4;9255:1;9248:15;9286:4;9283:1;9276:15;9169:132;-1:-1:-1;9315:9:1;;9113:217::o;9467:127::-;9528:10;9523:3;9519:20;9516:1;9509:31;9559:4;9556:1;9549:15;9583:4;9580:1;9573:15;9599:251;9669:6;9722:2;9710:9;9701:7;9697:23;9693:32;9690:52;;;9738:1;9735;9728:12;9690:52;9770:9;9764:16;9789:31;9814:5;9789:31;:::i;9855:980::-;10117:4;10165:3;10154:9;10150:19;10196:6;10185:9;10178:25;10222:2;10260:6;10255:2;10244:9;10240:18;10233:34;10303:3;10298:2;10287:9;10283:18;10276:31;10327:6;10362;10356:13;10393:6;10385;10378:22;10431:3;10420:9;10416:19;10409:26;;10470:2;10462:6;10458:15;10444:29;;10491:1;10501:195;10515:6;10512:1;10509:13;10501:195;;;10580:13;;-1:-1:-1;;;;;10576:39:1;10564:52;;10671:15;;;;10636:12;;;;10612:1;10530:9;10501:195;;;-1:-1:-1;;;;;;;10752:32:1;;;;10747:2;10732:18;;10725:60;-1:-1:-1;;;10816:3:1;10801:19;10794:35;10713:3;9855:980;-1:-1:-1;;;9855:980:1:o;11452:306::-;11540:6;11548;11556;11609:2;11597:9;11588:7;11584:23;11580:32;11577:52;;;11625:1;11622;11615:12;11577:52;11654:9;11648:16;11638:26;;11704:2;11693:9;11689:18;11683:25;11673:35;;11748:2;11737:9;11733:18;11727:25;11717:35;;11452:306;;;;;:::o

Swarm Source

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