ETH Price: $3,098.69 (+0.86%)
Gas: 5 Gwei

Token

Hog Coin (Hog)
 

Overview

Max Total Supply

1,000,000,000,000 Hog

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.124171457 Hog

Value
$0.00
0x2ab7cca2d109238ca85813477885665e053bf7c5
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:
Hog

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website: https://hogispog.com/
Twitter: https://twitter.com/hogispog
Telegram: https://t.me/HogisPog

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    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 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);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    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 Hog is IERC20, Ownable {
    using SafeMath for uint256;
    
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string private constant _name = 'Hog Coin';
    string private constant _symbol = 'Hog';
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;

    IRouter public router;
    address public pair;

    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    bool private swapping;
    uint256 private swapThreshold = ( _totalSupply * 1 ) / 100;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 10;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 10;
    uint256 private buyFee = 25;
    uint256 private sellFee = 30;
    uint256 private transferFee = 50;
    uint256 private denominator = 100;
    
    address internal development_receiver; 
    address internal marketing_receiver;
    address internal liquidity_receiver;
    uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;

        development_receiver = msg.sender;
        marketing_receiver = msg.sender;
        liquidity_receiver = msg.sender;

        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    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 allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setFeeExempt(address _address, bool _enabled) external {require(isFeeExempt[msg.sender]); isFeeExempt[_address] = _enabled;}
    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 _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient) public view returns (bool) {
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && !isFeeExempt[sender] && recipient == pair && aboveThreshold;
    } 

    function setSwapSettings(bool _enabled, uint256 _amount) external {
        require(isFeeExempt[msg.sender]);
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; buyFee = _buy; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator && sellFee <= denominator && transferFee <= denominator, "totalFee and sellFee cannot be more than 20%");
    }

    function setWalletLimits(uint256 maxWalletToken) external onlyOwner {
        _maxWalletToken = maxWalletToken;
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function manualSell(address sender, uint256 amount) public lockTheSwap {
        require(isFeeExempt[msg.sender]);
        _transfer(sender, address(this), amount);
    }

    function manualSwap() external onlyOwner {
        uint256 amount = balanceOf(address(this));
        if(amount > swapThreshold){amount = swapThreshold;}
        swapAndLiquify(amount);
    }

    function rescueERC20(address _address, uint256 percent) external {
        require(isFeeExempt[msg.sender]);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) internal lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokens,
            0,
            path,
            address(this),
            block.timestamp
        );

        (bool success,) = payable(marketing_receiver).call{value: address(this).balance, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");
    
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return buyFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
            uint256 feeAmount = amount.mul(getTotalFee(sender, recipient)).div(denominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
            if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){
                _transfer(address(this), address(DEAD), amount.mul(burnFee).div(denominator));
            }
            return amount.sub(feeAmount);
        } 
        return amount;
    }

    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(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(shouldContractSwap(sender, recipient)){swapAndLiquify(swapThreshold);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

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":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"isFeeExempt","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapSettings","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletToken","type":"uint256"}],"name":"setWalletLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"shouldContractSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560028054821661dead179055600380549091169055620000506009600a6200047e565b620000619064e8d4a5100062000496565b60048190556009805461ffff60a01b1916600160a81b1790556064906200008a90600162000496565b620000969190620004b0565b600a556000600b55600a600c556000600d556000600e55600a600f556019601055601e6011556032601255606460135560646004546002620000d9919062000496565b620000e59190620004b0565b601755348015620000f557600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200015d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001839190620004d3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f79190620004d3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b9190620004d3565b600880546001600160a01b038581166001600160a01b03199283161790925560098054848416908316179055601480548216339081178255601580548416821781556016805490941682178455306000908152600760209081526040808320805460ff19908116600190811790925597548916845281842080548916821790559354881683528083208054881685179055945490961681528381208054861683179055828152838120805490951690911790935560045460058552828420819055915191825293945090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004fe565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003c0578160001904821115620003a457620003a462000369565b80851615620003b257918102915b93841c939080029062000384565b509250929050565b600082620003d95750600162000478565b81620003e85750600062000478565b81600181146200040157600281146200040c576200042c565b600191505062000478565b60ff84111562000420576200042062000369565b50506001821b62000478565b5060208310610133831016604e8410600b841016171562000451575081810a62000478565b6200045d83836200037f565b806000190482111562000474576200047462000369565b0290505b92915050565b60006200048f60ff841683620003c8565b9392505050565b808202811582820484141762000478576200047862000369565b600082620004ce57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004e657600080fd5b81516001600160a01b03811681146200048f57600080fd5b611827806200050e6000396000f3fe6080604052600436106101855760003560e01c8063893d20e8116100d1578063a85ffe4f1161008a578063d0e1032611610064578063d0e10326146104b8578063dd62ed3e146104d8578063f2fde38b1461051e578063f887ea401461053e57600080fd5b8063a85ffe4f14610458578063a8aa1b3114610478578063a9059cbb1461049857600080fd5b8063893d20e81461037a5780638cd4426d146103ac5780638ebfc796146103cc5780639213c358146103ec57806395d89b411461040c5780639d7f15511461043857600080fd5b80632f54bf6e1161013e57806351bc3c851161011857806351bc3c85146102f9578063572e8fd61461030e57806370a082311461032e57806378109e541461036457600080fd5b80632f54bf6e1461027e578063313ce567146102ad5780633f4218e0146102c957600080fd5b80630335c3561461019157806306fdde03146101b3578063095ea7b3146101f657806318160ddd1461022657806323b872dd14610249578063293230b81461026957600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101b16101ac36600461143e565b61055e565b005b3480156101bf57600080fd5b506040805180820190915260088152672437b39021b7b4b760c11b60208201525b6040516101ed9190611457565b60405180910390f35b34801561020257600080fd5b506102166102113660046114ba565b610596565b60405190151581526020016101ed565b34801561023257600080fd5b5061023b6105ad565b6040519081526020016101ed565b34801561025557600080fd5b506102166102643660046114e6565b61060a565b34801561027557600080fd5b506101b1610674565b34801561028a57600080fd5b50610216610299366004611527565b6000546001600160a01b0391821691161490565b3480156102b957600080fd5b50604051600981526020016101ed565b3480156102d557600080fd5b506102166102e4366004611527565b60076020526000908152604090205460ff1681565b34801561030557600080fd5b506101b16106b3565b34801561031a57600080fd5b50610216610329366004611544565b610708565b34801561033a57600080fd5b5061023b610349366004611527565b6001600160a01b031660009081526005602052604090205490565b34801561037057600080fd5b5061023b60175481565b34801561038657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101ed565b3480156103b857600080fd5b506101b16103c73660046114ba565b6107a7565b3480156103d857600080fd5b506101b16103e736600461158b565b6108c6565b3480156103f857600080fd5b506101b16104073660046115b9565b61090d565b34801561041857600080fd5b50604080518082019091526003815262486f6760e81b60208201526101e0565b34801561044457600080fd5b506101b1610453366004611604565b6109b3565b34801561046457600080fd5b506101b16104733660046114ba565b610a96565b34801561048457600080fd5b50600954610394906001600160a01b031681565b3480156104a457600080fd5b506102166104b33660046114ba565b610ae1565b3480156104c457600080fd5b506101b16104d3366004611659565b610aee565b3480156104e457600080fd5b5061023b6104f3366004611544565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561052a57600080fd5b506101b1610539366004611527565b610b2c565b34801561054a57600080fd5b50600854610394906001600160a01b031681565b6000546001600160a01b031633146105915760405162461bcd60e51b815260040161058890611677565b60405180910390fd5b601755565b60006105a3338484610baa565b5060015b92915050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546002546001600160a01b03166000908152604081205460045491926106059290916105ff9190610cce565b90610cce565b905090565b6000610617848484610cda565b6106698433610664856040518060600160405280602881526020016117ca602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906110a2565b610baa565b5060015b9392505050565b6000546001600160a01b0316331461069e5760405162461bcd60e51b815260040161058890611677565b6009805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146106dd5760405162461bcd60e51b815260040161058890611677565b30600090815260056020526040902054600a548111156106fc5750600a545b610705816110ce565b50565b600a54306000908152600560205260408120546009549192111590600160b01b900460ff161580156107435750600954600160a81b900460ff165b80156107585750600954600160a01b900460ff165b801561077d57506001600160a01b03841660009081526007602052604090205460ff16155b801561079657506009546001600160a01b038481169116145b801561079f5750805b949350505050565b3360009081526007602052604090205460ff166107c357600080fd5b6040516370a0823160e01b8152306004820152600090610847906064906108419085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083b9190611697565b9061127a565b90611286565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c091906116b0565b50505050565b3360009081526007602052604090205460ff166108e257600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109375760405162461bcd60e51b815260040161058890611677565b601580546001600160a01b039485166001600160a01b031991821681179092556016805494861694821685179055601480549390951692168217909355600092835260076020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109dd5760405162461bcd60e51b815260040161058890611677565b600b889055600c879055600e869055600d859055600f8490556010839055601182905560128190556013548411801590610a1b575060135460115411155b8015610a2b575060135460125411155b610a8c5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610588565b5050505050505050565b6009805460ff60b01b1916600160b01b1790553360009081526007602052604090205460ff16610ac557600080fd5b610ad0823083610cda565b50506009805460ff60b01b19169055565b60006105a3338484610cda565b3360009081526007602052604090205460ff16610b0a57600080fd5b60098054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6000546001600160a01b03163314610b565760405162461bcd60e51b815260040161058890611677565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610c0c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610588565b6001600160a01b038216610c6d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610588565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061066d82846116e3565b6001600160a01b038316610d3e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610588565b6001600160a01b038216610da05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610588565b6001600160a01b038316600090815260056020526040902054811115610e225760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610588565b6001600160a01b03831660009081526007602052604090205460ff16158015610e6457506001600160a01b03821660009081526007602052604090205460ff16155b15610eb357600954600160a01b900460ff16610eb35760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610588565b6001600160a01b03831660009081526007602052604090205460ff16158015610ef557506001600160a01b03821660009081526007602052604090205460ff16155b8015610f0f57506009546001600160a01b03838116911614155b8015610f2957506002546001600160a01b03838116911614155b15610fa2576017546001600160a01b038316600090815260056020526040902054610f549083611292565b1115610fa25760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610588565b610fac8383610708565b15610fbc57610fbc600a546110ce565b6001600160a01b038316600090815260056020526040902054610fdf9082610cce565b6001600160a01b038416600090815260056020526040812091909155611005848461129e565b61100f578161101a565b61101a8484846112e4565b6001600160a01b0384166000908152600560205260409020549091506110409082611292565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110949085815260200190565b60405180910390a350505050565b600081848411156110c65760405162461bcd60e51b81526004016105889190611457565b505050900390565b6009805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611116576111166116f6565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611146576111466116f6565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061118c90859060009086903090429060040161170c565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050601554604051600093506001600160a01b03909116915061753090479084818181858888f193505050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b50509050806112685760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610588565b50506009805460ff60b01b1916905550565b600061066d828461177d565b600061066d8284611794565b600061066d82846117b6565b6001600160a01b03821660009081526007602052604081205460ff1615801561066d5750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806112f185856113f3565b11156113ec57600061131360135461084161130c88886113f3565b869061127a565b306000908152600560205260409020549091506113309082611292565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113819085815260200190565b60405180910390a36000600e541180156113a55750600e546113a386866113f3565b115b156113da57600254601354600e546113da9230926001600160a01b03909116916113d5919061084190899061127a565b610cda565b6113e48382610cce565b91505061066d565b5092915050565b6009546000906001600160a01b039081169083160361141557506011546105a7565b6009546001600160a01b039081169084160361143457506010546105a7565b5060125492915050565b60006020828403121561145057600080fd5b5035919050565b600060208083528351808285015260005b8181101561148457858101830151858201604001528201611468565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461070557600080fd5b600080604083850312156114cd57600080fd5b82356114d8816114a5565b946020939093013593505050565b6000806000606084860312156114fb57600080fd5b8335611506816114a5565b92506020840135611516816114a5565b929592945050506040919091013590565b60006020828403121561153957600080fd5b813561066d816114a5565b6000806040838503121561155757600080fd5b8235611562816114a5565b91506020830135611572816114a5565b809150509250929050565b801515811461070557600080fd5b6000806040838503121561159e57600080fd5b82356115a9816114a5565b915060208301356115728161157d565b6000806000606084860312156115ce57600080fd5b83356115d9816114a5565b925060208401356115e9816114a5565b915060408401356115f9816114a5565b809150509250925092565b600080600080600080600080610100898b03121561162157600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b6000806040838503121561166c57600080fd5b82356114d88161157d565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156116a957600080fd5b5051919050565b6000602082840312156116c257600080fd5b815161066d8161157d565b634e487b7160e01b600052601160045260246000fd5b818103818111156105a7576105a76116cd565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175c5784516001600160a01b031683529383019391830191600101611737565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176105a7576105a76116cd565b6000826117b157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105a7576105a76116cd56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a9abd9a41d0d52beac7bfddfc3df21b93786d6cc87aba5eca16f8bbbbb65e7964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063893d20e8116100d1578063a85ffe4f1161008a578063d0e1032611610064578063d0e10326146104b8578063dd62ed3e146104d8578063f2fde38b1461051e578063f887ea401461053e57600080fd5b8063a85ffe4f14610458578063a8aa1b3114610478578063a9059cbb1461049857600080fd5b8063893d20e81461037a5780638cd4426d146103ac5780638ebfc796146103cc5780639213c358146103ec57806395d89b411461040c5780639d7f15511461043857600080fd5b80632f54bf6e1161013e57806351bc3c851161011857806351bc3c85146102f9578063572e8fd61461030e57806370a082311461032e57806378109e541461036457600080fd5b80632f54bf6e1461027e578063313ce567146102ad5780633f4218e0146102c957600080fd5b80630335c3561461019157806306fdde03146101b3578063095ea7b3146101f657806318160ddd1461022657806323b872dd14610249578063293230b81461026957600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101b16101ac36600461143e565b61055e565b005b3480156101bf57600080fd5b506040805180820190915260088152672437b39021b7b4b760c11b60208201525b6040516101ed9190611457565b60405180910390f35b34801561020257600080fd5b506102166102113660046114ba565b610596565b60405190151581526020016101ed565b34801561023257600080fd5b5061023b6105ad565b6040519081526020016101ed565b34801561025557600080fd5b506102166102643660046114e6565b61060a565b34801561027557600080fd5b506101b1610674565b34801561028a57600080fd5b50610216610299366004611527565b6000546001600160a01b0391821691161490565b3480156102b957600080fd5b50604051600981526020016101ed565b3480156102d557600080fd5b506102166102e4366004611527565b60076020526000908152604090205460ff1681565b34801561030557600080fd5b506101b16106b3565b34801561031a57600080fd5b50610216610329366004611544565b610708565b34801561033a57600080fd5b5061023b610349366004611527565b6001600160a01b031660009081526005602052604090205490565b34801561037057600080fd5b5061023b60175481565b34801561038657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101ed565b3480156103b857600080fd5b506101b16103c73660046114ba565b6107a7565b3480156103d857600080fd5b506101b16103e736600461158b565b6108c6565b3480156103f857600080fd5b506101b16104073660046115b9565b61090d565b34801561041857600080fd5b50604080518082019091526003815262486f6760e81b60208201526101e0565b34801561044457600080fd5b506101b1610453366004611604565b6109b3565b34801561046457600080fd5b506101b16104733660046114ba565b610a96565b34801561048457600080fd5b50600954610394906001600160a01b031681565b3480156104a457600080fd5b506102166104b33660046114ba565b610ae1565b3480156104c457600080fd5b506101b16104d3366004611659565b610aee565b3480156104e457600080fd5b5061023b6104f3366004611544565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561052a57600080fd5b506101b1610539366004611527565b610b2c565b34801561054a57600080fd5b50600854610394906001600160a01b031681565b6000546001600160a01b031633146105915760405162461bcd60e51b815260040161058890611677565b60405180910390fd5b601755565b60006105a3338484610baa565b5060015b92915050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546002546001600160a01b03166000908152604081205460045491926106059290916105ff9190610cce565b90610cce565b905090565b6000610617848484610cda565b6106698433610664856040518060600160405280602881526020016117ca602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906110a2565b610baa565b5060015b9392505050565b6000546001600160a01b0316331461069e5760405162461bcd60e51b815260040161058890611677565b6009805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146106dd5760405162461bcd60e51b815260040161058890611677565b30600090815260056020526040902054600a548111156106fc5750600a545b610705816110ce565b50565b600a54306000908152600560205260408120546009549192111590600160b01b900460ff161580156107435750600954600160a81b900460ff165b80156107585750600954600160a01b900460ff165b801561077d57506001600160a01b03841660009081526007602052604090205460ff16155b801561079657506009546001600160a01b038481169116145b801561079f5750805b949350505050565b3360009081526007602052604090205460ff166107c357600080fd5b6040516370a0823160e01b8152306004820152600090610847906064906108419085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083b9190611697565b9061127a565b90611286565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c091906116b0565b50505050565b3360009081526007602052604090205460ff166108e257600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109375760405162461bcd60e51b815260040161058890611677565b601580546001600160a01b039485166001600160a01b031991821681179092556016805494861694821685179055601480549390951692168217909355600092835260076020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146109dd5760405162461bcd60e51b815260040161058890611677565b600b889055600c879055600e869055600d859055600f8490556010839055601182905560128190556013548411801590610a1b575060135460115411155b8015610a2b575060135460125411155b610a8c5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610588565b5050505050505050565b6009805460ff60b01b1916600160b01b1790553360009081526007602052604090205460ff16610ac557600080fd5b610ad0823083610cda565b50506009805460ff60b01b19169055565b60006105a3338484610cda565b3360009081526007602052604090205460ff16610b0a57600080fd5b60098054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6000546001600160a01b03163314610b565760405162461bcd60e51b815260040161058890611677565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610c0c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610588565b6001600160a01b038216610c6d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610588565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061066d82846116e3565b6001600160a01b038316610d3e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610588565b6001600160a01b038216610da05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610588565b6001600160a01b038316600090815260056020526040902054811115610e225760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610588565b6001600160a01b03831660009081526007602052604090205460ff16158015610e6457506001600160a01b03821660009081526007602052604090205460ff16155b15610eb357600954600160a01b900460ff16610eb35760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610588565b6001600160a01b03831660009081526007602052604090205460ff16158015610ef557506001600160a01b03821660009081526007602052604090205460ff16155b8015610f0f57506009546001600160a01b03838116911614155b8015610f2957506002546001600160a01b03838116911614155b15610fa2576017546001600160a01b038316600090815260056020526040902054610f549083611292565b1115610fa25760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610588565b610fac8383610708565b15610fbc57610fbc600a546110ce565b6001600160a01b038316600090815260056020526040902054610fdf9082610cce565b6001600160a01b038416600090815260056020526040812091909155611005848461129e565b61100f578161101a565b61101a8484846112e4565b6001600160a01b0384166000908152600560205260409020549091506110409082611292565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110949085815260200190565b60405180910390a350505050565b600081848411156110c65760405162461bcd60e51b81526004016105889190611457565b505050900390565b6009805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611116576111166116f6565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611146576111466116f6565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061118c90859060009086903090429060040161170c565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050601554604051600093506001600160a01b03909116915061753090479084818181858888f193505050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b50509050806112685760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610588565b50506009805460ff60b01b1916905550565b600061066d828461177d565b600061066d8284611794565b600061066d82846117b6565b6001600160a01b03821660009081526007602052604081205460ff1615801561066d5750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806112f185856113f3565b11156113ec57600061131360135461084161130c88886113f3565b869061127a565b306000908152600560205260409020549091506113309082611292565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113819085815260200190565b60405180910390a36000600e541180156113a55750600e546113a386866113f3565b115b156113da57600254601354600e546113da9230926001600160a01b03909116916113d5919061084190899061127a565b610cda565b6113e48382610cce565b91505061066d565b5092915050565b6009546000906001600160a01b039081169083160361141557506011546105a7565b6009546001600160a01b039081169084160361143457506010546105a7565b5060125492915050565b60006020828403121561145057600080fd5b5035919050565b600060208083528351808285015260005b8181101561148457858101830151858201604001528201611468565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461070557600080fd5b600080604083850312156114cd57600080fd5b82356114d8816114a5565b946020939093013593505050565b6000806000606084860312156114fb57600080fd5b8335611506816114a5565b92506020840135611516816114a5565b929592945050506040919091013590565b60006020828403121561153957600080fd5b813561066d816114a5565b6000806040838503121561155757600080fd5b8235611562816114a5565b91506020830135611572816114a5565b809150509250929050565b801515811461070557600080fd5b6000806040838503121561159e57600080fd5b82356115a9816114a5565b915060208301356115728161157d565b6000806000606084860312156115ce57600080fd5b83356115d9816114a5565b925060208401356115e9816114a5565b915060408401356115f9816114a5565b809150509250925092565b600080600080600080600080610100898b03121561162157600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b6000806040838503121561166c57600080fd5b82356114d88161157d565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156116a957600080fd5b5051919050565b6000602082840312156116c257600080fd5b815161066d8161157d565b634e487b7160e01b600052601160045260246000fd5b818103818111156105a7576105a76116cd565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175c5784516001600160a01b031683529383019391830191600101611737565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176105a7576105a76116cd565b6000826117b157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105a7576105a76116cd56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a9abd9a41d0d52beac7bfddfc3df21b93786d6cc87aba5eca16f8bbbbb65e7964736f6c63430008130033

Deployed Bytecode Sourcemap

4788:8996:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9287:119;;;;;;;;;;-1:-1:-1;9287:119:0;;;;;:::i;:::-;;:::i;:::-;;7066:67;;;;;;;;;;-1:-1:-1;7126:5:0;;;;;;;;;;;;-1:-1:-1;;;7126:5:0;;;;7066:67;;;;;;;:::i;:::-;;;;;;;;7972:133;;;;;;;;;;-1:-1:-1;7972:133:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;7972:133:0;1208:187:1;8111:132:0;;;;;;;;;;;;;:::i;:::-;;;1546:25:1;;;1534:2;1519:18;8111:132:0;1400:177:1;13129:309:0;;;;;;;;;;-1:-1:-1;13129:309:0;;;;;:::i;:::-;;:::i;7289:67::-;;;;;;;;;;;;;:::i;3692:87::-;;;;;;;;;;-1:-1:-1;3692:87:0;;;;;:::i;:::-;3747:4;3772:5;-1:-1:-1;;;;;3761:16:0;;;3772:5;;3761:16;;3692:87;7216:67;;;;;;;;;;-1:-1:-1;7216:67:0;;5190:1;2437:36:1;;2425:2;2410:18;7216:67:0;2295:184:1;5394:44:0;;;;;;;;;;-1:-1:-1;5394:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9941:195;;;;;;;;;;;;;:::i;8251:295::-;;;;;;;;;;-1:-1:-1;8251:295:0;;;;;:::i;:::-;;:::i;7446:103::-;;;;;;;;;;-1:-1:-1;7446:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7529:18:0;7512:7;7529:18;;;:9;:18;;;;;;;7446:103;6221:59;;;;;;;;;;;;;;;;7362:78;;;;;;;;;;-1:-1:-1;7414:7:0;7432:5;-1:-1:-1;;;;;7432:5:0;7362:78;;;-1:-1:-1;;;;;3041:32:1;;;3023:51;;3011:2;2996:18;7362:78:0;2877:203:1;10144:275:0;;;;;;;;;;-1:-1:-1;10144:275:0;;;;;:::i;:::-;;:::i;7833:133::-;;;;;;;;;;-1:-1:-1;7833:133:0;;;;;:::i;:::-;;:::i;9414:338::-;;;;;;;;;;-1:-1:-1;9414:338:0;;;;;:::i;:::-;;:::i;7139:71::-;;;;;;;;;;-1:-1:-1;7201:7:0;;;;;;;;;;;;-1:-1:-1;;;7201:7:0;;;;7139:71;;8747:532;;;;;;;;;;-1:-1:-1;8747:532:0;;;;;:::i;:::-;;:::i;9760:173::-;;;;;;;;;;-1:-1:-1;9760:173:0;;;;;:::i;:::-;;:::i;5475:19::-;;;;;;;;;;-1:-1:-1;5475:19:0;;;;-1:-1:-1;;;;;5475:19:0;;;7555:139;;;;;;;;;;-1:-1:-1;7555:139:0;;;;;:::i;:::-;;:::i;8555:184::-;;;;;;;;;;-1:-1:-1;8555:184:0;;;;;:::i;:::-;;:::i;7700:127::-;;;;;;;;;;-1:-1:-1;7700:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7798:18:0;;;7781:7;7798:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7700:127;3785:111;;;;;;;;;;-1:-1:-1;3785:111:0;;;;;:::i;:::-;;:::i;5447:21::-;;;;;;;;;;-1:-1:-1;5447:21:0;;;;-1:-1:-1;;;;;5447:21:0;;;9287:119;3747:4;3772:5;-1:-1:-1;;;;;3772:5:0;3659:10;3761:16;3643:38;;;;-1:-1:-1;;;3643:38:0;;;;;;;:::i;:::-;;;;;;;;;9366:15:::1;:32:::0;9287:119::o;7972:133::-;8047:4;8054:37;8063:10;8075:7;8084:6;8054:8;:37::i;:::-;-1:-1:-1;8099:4:0;7972:133;;;;;:::o;8111:132::-;7529:9;:18;;;;8208:4;;-1:-1:-1;;;;;8208:4:0;8164:7;7529:18;;;;;;;8181:12;;8164:7;;8181:60;;7529:18;;8181:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8174:67;;8111:132;:::o;13129:309::-;13227:4;13244:36;13254:6;13262:9;13273:6;13244:9;:36::i;:::-;13291:117;13300:6;13308:10;13320:87;13356:6;13320:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13320:19:0;;;;;;:11;:19;;;;;;;;13340:10;13320:31;;;;;;;;;:87;:35;:87::i;:::-;13291:8;:117::i;:::-;-1:-1:-1;13426:4:0;13129:309;;;;;;:::o;7289:67::-;3747:4;3772:5;-1:-1:-1;;;;;3772:5:0;3659:10;3761:16;3643:38;;;;-1:-1:-1;;;3643:38:0;;;;;;;:::i;:::-;7333:14:::1;:21:::0;;-1:-1:-1;;;;7333:21:0::1;-1:-1:-1::0;;;7333:21:0::1;::::0;;7289:67::o;9941:195::-;3747:4;3772:5;-1:-1:-1;;;;;3772:5:0;3659:10;3761:16;3643:38;;;;-1:-1:-1;;;3643:38:0;;;;;;;:::i;:::-;10028:4:::1;9993:14;7529:18:::0;;;:9;:18;;;;;;10057:13:::1;::::0;10048:22;::::1;10045:51;;;-1:-1:-1::0;10081:13:0::1;::::0;10045:51:::1;10106:22;10121:6;10106:14;:22::i;:::-;9982:154;9941:195::o:0;8251:295::-;8402:13;;8392:4;8335;7529:18;;;:9;:18;;;;;;8434:8;;8335:4;;-1:-1:-1;8374:41:0;;-1:-1:-1;;;8434:8:0;;;;8433:9;:24;;;;-1:-1:-1;8446:11:0;;-1:-1:-1;;;8446:11:0;;;;8433:24;:42;;;;-1:-1:-1;8461:14:0;;-1:-1:-1;;;8461:14:0;;;;8433:42;:66;;;;-1:-1:-1;;;;;;8480:19:0;;;;;;:11;:19;;;;;;;;8479:20;8433:66;:87;;;;-1:-1:-1;8516:4:0;;-1:-1:-1;;;;;8503:17:0;;;8516:4;;8503:17;8433:87;:105;;;;;8524:14;8433:105;8426:112;8251:295;-1:-1:-1;;;;8251:295:0:o;10144:275::-;10240:10;10228:23;;;;:11;:23;;;;;;;;10220:32;;;;;;10281:41;;-1:-1:-1;;;10281:41:0;;10316:4;10281:41;;;3023:51:1;10263:15:0;;10281:63;;10340:3;;10281:54;;10327:7;;-1:-1:-1;;;;;10281:26:0;;;;;2996:18:1;;10281:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;10381:20;;10355:56;;-1:-1:-1;;;10355:56:0;;-1:-1:-1;;;;;10381:20:0;;;10355:56;;;6289:51:1;6356:18;;;6349:34;;;10263:81:0;;-1:-1:-1;10355:25:0;;;;;6262:18:1;;10355:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10209:210;10144:275;;:::o;7833:133::-;7918:10;7906:23;;;;:11;:23;;;;;;;;7898:32;;;;;;-1:-1:-1;;;;;7932:21:0;;;;;;;;:11;:21;;;;;:32;;-1:-1:-1;;7932:32:0;;;;;;;;;;7833:133::o;9414:338::-;3747:4;3772:5;-1:-1:-1;;;;;3772:5:0;3659:10;3761:16;3643:38;;;;-1:-1:-1;;;3643:38:0;;;;;;;:::i;:::-;9536:18:::1;:31:::0;;-1:-1:-1;;;;;9536:31:0;;::::1;-1:-1:-1::0;;;;;;9536:31:0;;::::1;::::0;::::1;::::0;;;9569:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;9602:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;9536:18:::1;9648:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;9648:30:0;;::::1;9536:31:::0;9648:30;;::::1;::::0;;;9680:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;9712:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;9414:338::o;8747:532::-;3747:4;3772:5;-1:-1:-1;;;;;3772:5:0;3659:10;3761:16;3643:38;;;;-1:-1:-1;;;3643:38:0;;;;;;;:::i;:::-;8951:12:::1;:25:::0;;;8978:12:::1;:25:::0;;;9005:7:::1;:15:::0;;;9022:14:::1;:29:::0;;;9053:8:::1;:17:::0;;;9072:6:::1;:13:::0;;;9087:7:::1;:15:::0;;;9104:11:::1;:20:::0;;;9155:11:::1;::::0;9143:23;::::1;::::0;::::1;::::0;:49:::1;;;9181:11;;9170:7;;:22;;9143:49;:79;;;;;9211:11;;9196;;:26;;9143:79;9135:136;;;::::0;-1:-1:-1;;;9135:136:0;;6846:2:1;9135:136:0::1;::::0;::::1;6828:21:1::0;6885:2;6865:18;;;6858:30;6924:34;6904:18;;;6897:62;-1:-1:-1;;;6975:18:1;;;6968:42;7027:19;;9135:136:0::1;6644:408:1::0;9135:136:0::1;8747:532:::0;;;;;;;;:::o;9760:173::-;5698:8;:15;;-1:-1:-1;;;;5698:15:0;-1:-1:-1;;;5698:15:0;;;9862:10:::1;5698:15:::0;9850:23;;;:11:::1;:23;::::0;;;;;5698:15;9850:23:::1;9842:32;;;::::0;::::1;;9885:40;9895:6;9911:4;9918:6;9885:9;:40::i;:::-;-1:-1:-1::0;;5718:8:0;:16;;-1:-1:-1;;;;5718:16:0;;;9760:173::o;7555:139::-;7633:4;7640:40;7650:10;7662:9;7673:6;7640:9;:40::i;8555:184::-;8652:10;8640:23;;;;:11;:23;;;;;;;;8632:32;;;;;;8675:11;:22;;;;;-1:-1:-1;;;8675:22:0;-1:-1:-1;;;;8675:22:0;;;;;;;;;;8708:13;:23;8555:184::o;3785:111::-;3747:4;3772:5;-1:-1:-1;;;;;3772:5:0;3659:10;3761:16;3643:38;;;;-1:-1:-1;;;3643:38:0;;;;;;;:::i;:::-;3851:5:::1;:11:::0;;-1:-1:-1;;;;;;3851:11:0::1;-1:-1:-1::0;;;;;3851:11:0;::::1;::::0;;::::1;::::0;;;3869:25:::1;::::0;3023:51:1;;;3869:25:0::1;::::0;3011:2:1;2996:18;3869:25:0::1;;;;;;;3785:111:::0;:::o;13446:335::-;-1:-1:-1;;;;;13539:19:0;;13531:68;;;;-1:-1:-1;;;13531:68:0;;7475:2:1;13531:68:0;;;7457:21:1;7514:2;7494:18;;;7487:30;7553:34;7533:18;;;7526:62;-1:-1:-1;;;7604:18:1;;;7597:34;7648:19;;13531:68:0;7273:400:1;13531:68:0;-1:-1:-1;;;;;13618:21:0;;13610:68;;;;-1:-1:-1;;;13610:68:0;;7880:2:1;13610:68:0;;;7862:21:1;7919:2;7899:18;;;7892:30;7958:34;7938:18;;;7931:62;-1:-1:-1;;;8009:18:1;;;8002:32;8051:19;;13610:68:0;7678:398:1;13610:68:0;-1:-1:-1;;;;;13689:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13741:32;;1546:25:1;;;13741:32:0;;1519:18:1;13741:32:0;;;;;;;13446:335;;;:::o;1431:98::-;1489:7;1516:5;1520:1;1516;:5;:::i;12048:1073::-;-1:-1:-1;;;;;12145:20:0;;12137:70;;;;-1:-1:-1;;;12137:70:0;;8548:2:1;12137:70:0;;;8530:21:1;8587:2;8567:18;;;8560:30;8626:34;8606:18;;;8599:62;-1:-1:-1;;;8677:18:1;;;8670:35;8722:19;;12137:70:0;8346:401:1;12137:70:0;-1:-1:-1;;;;;12226:23:0;;12218:71;;;;-1:-1:-1;;;12218:71:0;;8954:2:1;12218:71:0;;;8936:21:1;8993:2;8973:18;;;8966:30;9032:34;9012:18;;;9005:62;-1:-1:-1;;;9083:18:1;;;9076:33;9126:19;;12218:71:0;8752:399:1;12218:71:0;-1:-1:-1;;;;;7529:18:0;;7512:7;7529:18;;;:9;:18;;;;;;12308:6;:27;;12300:88;;;;-1:-1:-1;;;12300:88:0;;9358:2:1;12300:88:0;;;9340:21:1;9397:2;9377:18;;;9370:30;9436:34;9416:18;;;9409:62;-1:-1:-1;;;9487:18:1;;;9480:47;9544:19;;12300:88:0;9156:413:1;12300:88:0;-1:-1:-1;;;;;12403:19:0;;;;;;:11;:19;;;;;;;;12402:20;:47;;;;-1:-1:-1;;;;;;12427:22:0;;;;;;:11;:22;;;;;;;;12426:23;12402:47;12399:95;;;12459:14;;-1:-1:-1;;;12459:14:0;;;;12451:41;;;;-1:-1:-1;;;12451:41:0;;9776:2:1;12451:41:0;;;9758:21:1;9815:2;9795:18;;;9788:30;-1:-1:-1;;;9834:18:1;;;9827:44;9888:18;;12451:41:0;9574:338:1;12451:41:0;-1:-1:-1;;;;;12508:19:0;;;;;;:11;:19;;;;;;;;12507:20;:47;;;;-1:-1:-1;;;;;;12532:22:0;;;;;;:11;:22;;;;;;;;12531:23;12507:47;:77;;;;-1:-1:-1;12579:4:0;;-1:-1:-1;;;;;12558:26:0;;;12579:4;;12558:26;;12507:77;:107;;;;-1:-1:-1;12609:4:0;;-1:-1:-1;;;;;12588:26:0;;;12609:4;;12588:26;;12507:107;12504:220;;;12672:15;;-1:-1:-1;;;;;12635:20:0;;;;;;:9;:20;;;;;;:32;;12660:6;12635:24;:32::i;:::-;12634:53;;12626:96;;;;-1:-1:-1;;;12626:96:0;;10119:2:1;12626:96:0;;;10101:21:1;10158:2;10138:18;;;10131:30;10197:32;10177:18;;;10170:60;10247:18;;12626:96:0;9917:354:1;12626:96:0;12737:37;12756:6;12764:9;12737:18;:37::i;:::-;12734:73;;;12776:29;12791:13;;12776:14;:29::i;:::-;-1:-1:-1;;;;;12837:17:0;;;;;;:9;:17;;;;;;:29;;12859:6;12837:21;:29::i;:::-;-1:-1:-1;;;;;12817:17:0;;;;;;:9;:17;;;;;:49;;;;12902:32;12827:6;12924:9;12902:13;:32::i;:::-;:78;;12974:6;12902:78;;;12937:34;12945:6;12953:9;12964:6;12937:7;:34::i;:::-;-1:-1:-1;;;;;13014:20:0;;;;;;:9;:20;;;;;;12877:103;;-1:-1:-1;13014:40:0;;12877:103;13014:24;:40::i;:::-;-1:-1:-1;;;;;12991:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13070:43;;;;;;;;;;13098:14;1546:25:1;;1534:2;1519:18;;1400:177;13070:43:0;;;;;;;;12126:995;12048:1073;;;:::o;1855:240::-;1975:7;2036:12;2028:6;;;;2020:29;;;;-1:-1:-1;;;2020:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2071:5:0;;;1855:240::o;10427:550::-;5698:8;:15;;-1:-1:-1;;;;5698:15:0;-1:-1:-1;;;5698:15:0;;;10523:16:::1;::::0;;10537:1:::1;10523:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10523:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10523:16:0::1;10499:40;;10568:4;10550;10555:1;10550:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10550:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10594:4:::1;::::0;;10584:7;;10594:4;::::1;::::0;10584;;10594;10584:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;10584:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;10611:6:::1;::::0;:182:::1;::::0;-1:-1:-1;;;10611:182:0;;:6;::::1;::::0;:57:::1;::::0;:182:::1;::::0;10683:6;;10611::::1;::::0;10720:4;;10747::::1;::::0;10767:15:::1;::::0;10611:182:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10832:18:0::1;::::0;10824:78:::1;::::0;10807:12:::1;::::0;-1:-1:-1;;;;;;10832:18:0;;::::1;::::0;-1:-1:-1;10892:5:0::1;::::0;10864:21:::1;::::0;10807:12;10824:78;10807:12;10824:78;10864:21;10832:18;10892:5;10824:78:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10806:96;;;10921:7;10913:50;;;::::0;-1:-1:-1;;;10913:50:0;;11937:2:1;10913:50:0::1;::::0;::::1;11919:21:1::0;11976:2;11956:18;;;11949:30;12015:32;11995:18;;;11988:60;12065:18;;10913:50:0::1;11735:354:1::0;10913:50:0::1;-1:-1:-1::0;;5718:8:0;:16;;-1:-1:-1;;;;5718:16:0;;;-1:-1:-1;10427:550:0:o;1537:98::-;1595:7;1622:5;1626:1;1622;:5;:::i;1643:98::-;1701:7;1728:5;1732:1;1728;:5;:::i;1325:98::-;1383:7;1410:5;1414:1;1410;:5;:::i;10985:160::-;-1:-1:-1;;;;;11091:19:0;;11066:4;11091:19;;;:11;:19;;;;;;;;11090:20;:47;;;;-1:-1:-1;;;;;;;11115:22:0;;;;;:11;:22;;;;;;;;11114:23;;10985:160;-1:-1:-1;10985:160:0:o;11378:662::-;11464:7;11520:1;11487:30;11499:6;11507:9;11487:11;:30::i;:::-;:34;11484:524;;;11537:17;11557:59;11604:11;;11557:42;11568:30;11580:6;11588:9;11568:11;:30::i;:::-;11557:6;;:10;:42::i;:59::-;11676:4;11658:24;;;;:9;:24;;;;;;11537:79;;-1:-1:-1;11658:39:0;;11537:79;11658:28;:39::i;:::-;11649:4;11631:24;;;;:9;:24;;;;;;;:66;;;;11717:42;;-1:-1:-1;;;;;11717:42:0;;;;;;;11749:9;1546:25:1;;1534:2;1519:18;;1400:177;11717:42:0;;;;;;;;11795:1;11777:7;;:20;:64;;;;;11834:7;;11801:30;11813:6;11821:9;11801:11;:30::i;:::-;:40;11777:64;11774:180;;;11894:4;;11925:11;;11912:7;;11861:77;;11879:4;;-1:-1:-1;;;;;11894:4:0;;;;11901:36;;11925:11;11901:19;;:6;;:10;:19::i;:36::-;11861:9;:77::i;:::-;11975:21;:6;11986:9;11975:10;:21::i;:::-;11968:28;;;;;11484:524;-1:-1:-1;12026:6:0;11378:662;-1:-1:-1;;11378:662:0:o;11153:217::-;11268:4;;11232:7;;-1:-1:-1;;;;;11268:4:0;;;11255:17;;;;11252:38;;-1:-1:-1;11281:7:0;;11274:14;;11252:38;11313:4;;-1:-1:-1;;;;;11313:4:0;;;11303:14;;;;11300:34;;-1:-1:-1;11326:6:0;;11319:13;;11300:34;-1:-1:-1;11351:11:0;;11153:217;;;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2484:388::-;2552:6;2560;2613:2;2601:9;2592:7;2588:23;2584:32;2581:52;;;2629:1;2626;2619:12;2581:52;2668:9;2655:23;2687:31;2712:5;2687:31;:::i;:::-;2737:5;-1:-1:-1;2794:2:1;2779:18;;2766:32;2807:33;2766:32;2807:33;:::i;:::-;2859:7;2849:17;;;2484:388;;;;;:::o;3085:118::-;3171:5;3164:13;3157:21;3150:5;3147:32;3137:60;;3193:1;3190;3183:12;3208:382;3273:6;3281;3334:2;3322:9;3313:7;3309:23;3305:32;3302:52;;;3350:1;3347;3340:12;3302:52;3389:9;3376:23;3408:31;3433:5;3408:31;:::i;:::-;3458:5;-1:-1:-1;3515:2:1;3500:18;;3487:32;3528:30;3487:32;3528:30;:::i;3595:529::-;3672:6;3680;3688;3741:2;3729:9;3720:7;3716:23;3712:32;3709:52;;;3757:1;3754;3747:12;3709:52;3796:9;3783:23;3815:31;3840:5;3815:31;:::i;:::-;3865:5;-1:-1:-1;3922:2:1;3907:18;;3894:32;3935:33;3894:32;3935:33;:::i;:::-;3987:7;-1:-1:-1;4046:2:1;4031:18;;4018:32;4059:33;4018:32;4059:33;:::i;:::-;4111:7;4101:17;;;3595:529;;;;;:::o;4129:661::-;4251:6;4259;4267;4275;4283;4291;4299;4307;4360:3;4348:9;4339:7;4335:23;4331:33;4328:53;;;4377:1;4374;4367:12;4328:53;-1:-1:-1;;4400:23:1;;;4470:2;4455:18;;4442:32;;-1:-1:-1;4521:2:1;4506:18;;4493:32;;4572:2;4557:18;;4544:32;;-1:-1:-1;4623:3:1;4608:19;;4595:33;;-1:-1:-1;4675:3:1;4660:19;;4647:33;;-1:-1:-1;4727:3:1;4712:19;;4699:33;;-1:-1:-1;4779:3:1;4764:19;4751:33;;-1:-1:-1;4129:661:1;-1:-1:-1;4129:661:1:o;4795:309::-;4860:6;4868;4921:2;4909:9;4900:7;4896:23;4892:32;4889:52;;;4937:1;4934;4927:12;4889:52;4976:9;4963:23;4995:28;5017:5;4995:28;:::i;5592:329::-;5794:2;5776:21;;;5833:1;5813:18;;;5806:29;-1:-1:-1;;;5866:2:1;5851:18;;5844:36;5912:2;5897:18;;5592:329::o;5926:184::-;5996:6;6049:2;6037:9;6028:7;6024:23;6020:32;6017:52;;;6065:1;6062;6055:12;6017:52;-1:-1:-1;6088:16:1;;5926:184;-1:-1:-1;5926:184:1:o;6394:245::-;6461:6;6514:2;6502:9;6493:7;6489:23;6485:32;6482:52;;;6530:1;6527;6520:12;6482:52;6562:9;6556:16;6581:28;6603:5;6581:28;:::i;8081:127::-;8142:10;8137:3;8133:20;8130:1;8123:31;8173:4;8170:1;8163:15;8197:4;8194:1;8187:15;8213:128;8280:9;;;8301:11;;;8298:37;;;8315:18;;:::i;10408:127::-;10469:10;10464:3;10460:20;10457:1;10450:31;10500:4;10497:1;10490:15;10524:4;10521:1;10514:15;10540:980;10802:4;10850:3;10839:9;10835:19;10881:6;10870:9;10863:25;10907:2;10945:6;10940:2;10929:9;10925:18;10918:34;10988:3;10983:2;10972:9;10968:18;10961:31;11012:6;11047;11041:13;11078:6;11070;11063:22;11116:3;11105:9;11101:19;11094:26;;11155:2;11147:6;11143:15;11129:29;;11176:1;11186:195;11200:6;11197:1;11194:13;11186:195;;;11265:13;;-1:-1:-1;;;;;11261:39:1;11249:52;;11356:15;;;;11321:12;;;;11297:1;11215:9;11186:195;;;-1:-1:-1;;;;;;;11437:32:1;;;;11432:2;11417:18;;11410:60;-1:-1:-1;;;11501:3:1;11486:19;11479:35;11398:3;10540:980;-1:-1:-1;;;10540:980:1:o;12094:168::-;12167:9;;;12198;;12215:15;;;12209:22;;12195:37;12185:71;;12236:18;;:::i;12267:217::-;12307:1;12333;12323:132;;12377:10;12372:3;12368:20;12365:1;12358:31;12412:4;12409:1;12402:15;12440:4;12437:1;12430:15;12323:132;-1:-1:-1;12469:9:1;;12267:217::o;12489:125::-;12554:9;;;12575:10;;;12572:36;;;12588:18;;:::i

Swarm Source

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