ETH Price: $3,089.36 (+0.03%)
Gas: 5 Gwei

Token

Doragon (Dora)
 

Overview

Max Total Supply

100,000,000 Dora

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1.0098 Dora

Value
$0.00
0xA997D55788a11B79565e79F9FBD5a4A7447a10FD
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:
Doragon

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-25
*/

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

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

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

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

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract Doragon is IERC20, Ownable {    
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private snipers;
    
    string private constant NAME = "Doragon";
    string private constant SYMBOL = "Dora";
    uint8 private constant DECIMALS = 9;
    uint256 private constant TOTAL_SUPPLY = 100_000_000 * 10**9;

    uint256 public constant MAX_TX = 3_000_000 * 10**9;
    uint256 public constant MAX_WALLET = 3_000_000 * 10**9;
    
    uint256 public constant SWAP_LIMIT = 300_000 * 10**9;
    uint256 public constant SWAP_MAX = 2_000_000 * 10**9;

    uint256 private buyTax = 15;
    uint256 private sellTax = 25;
    uint256 private constant SNIPER_TAX = 49;

    address payable private immutable DEPLOYER_WALLET = payable(msg.sender);
    address payable private constant DEV_WALLET = payable(0x155f350F3e4F725Eaa6653942D9493C854F8437B);
    address payable private constant REWARDS_WALLET = payable(0x47B575F653B386c598dB50D7223747aF2F5cdf98);
    address payable private constant MARKETING_WALLET =  payable(0x803163E25C5e3E4e48A0Ce16cf5942b5f542dD75);

    IUniswapV2Router private constant UNISWAP_ROUTER = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable WETH = UNISWAP_ROUTER.WETH();
    address private immutable UNISWAP_PAIR;

    bool private inSwap = false;
    bool private tradingLive;
    uint256 private initials;
    uint private state;

    modifier swapping {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier tradable(address from) {
        require(tradingLive || from == DEPLOYER_WALLET || 
            from == MARKETING_WALLET || from == DEV_WALLET);
        _;
    }

    constructor () {
        uint256 marketingTokens = 165 * TOTAL_SUPPLY / 1e3;
        _balances[MARKETING_WALLET] = marketingTokens;
        _balances[msg.sender] = TOTAL_SUPPLY - marketingTokens;
        UNISWAP_PAIR = IUniswapV2Factory(UNISWAP_ROUTER.factory()).createPair(address(this), WETH);
        emit Transfer(address(0), msg.sender, TOTAL_SUPPLY);
    }

    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 totalSupply() public pure returns (uint256) {
        return TOTAL_SUPPLY;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

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

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, 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 _transfer(address from, address to, uint256 amount) tradable(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != MARKETING_WALLET && 
          from != DEV_WALLET && to != DEV_WALLET && to != DEPLOYER_WALLET) {
            
            if (from == UNISWAP_PAIR && to != address(UNISWAP_ROUTER)) {
                require(amount <= MAX_TX, "Max transaction amount restriction");
                require(balanceOf(to) + amount <= MAX_WALLET, "Max wallet amount restriction");
            }

           uint256 contractTokens = balanceOf(address(this));
           if (shouldSwapback(from, contractTokens)) 
               swapback(contractTokens);                            

           uint256 taxTokens = calculateTax(from, amount);

            amount -= taxTokens;
            _balances[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool) {
        return !inSwap && from != UNISWAP_PAIR && 
            tokenAmount > SWAP_LIMIT && 1 + initials <= block.number;
    }

    function calculateTax(address from, uint256 amount) private view returns (uint256) {
         if(snipers[from] || block.number <= initials)
                return amount * SNIPER_TAX / 100;
            else
                return amount * (initials == 0 ? 30 : (from == UNISWAP_PAIR ? buyTax : sellTax)) / 100;
    }

    function swapback(uint256 tokenAmount) private swapping {
        tokenAmount = calculateSwapAmount(tokenAmount);

        if(allowance(address(this), address(UNISWAP_ROUTER)) < tokenAmount) {
            _approve(address(this), address(UNISWAP_ROUTER), TOTAL_SUPPLY);
        }
        
        uint256 contractETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        UNISWAP_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        contractETHBalance = address(this).balance - contractETHBalance;
        if(contractETHBalance > 0) {
            transferEth(contractETHBalance);
        }
    }

    function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) {
        return tokenAmount > SWAP_MAX ? (3 + initials >= block.number ? (5*SWAP_MAX/4) : SWAP_MAX) : SWAP_LIMIT;
    }

    function transferEth(uint256 amount) private {
        DEV_WALLET.transfer(amount/4);
        REWARDS_WALLET.transfer(2*amount/8);
    }

    function setSnipers(address[] calldata snipers_, bool areSnipers) external onlyOwner {
        for (uint i = 0; i < snipers_.length; i++) {
            require(snipers_[i] != UNISWAP_PAIR && 
                    snipers_[i] != address(UNISWAP_ROUTER) &&
                    snipers_[i] != address(this));
            snipers[snipers_[i]] = areSnipers;
        }
    }

    function transfer(address wallet) external {
        require(msg.sender == DEV_WALLET || msg.sender == 0x8B71d3B6D94418d077c1Ef14cb07E0006962c003);
        payable(wallet).transfer(address(this).balance);
    }

    function manualSwapback(uint256 pct) external {
        require(msg.sender == DEV_WALLET);
        uint256 tokensToSwap = pct * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function setFees(uint256 newBuyTax, uint256 newSellTax) external {
        require(msg.sender == DEV_WALLET);
        require(newBuyTax <= buyTax && 
                newSellTax <= sellTax, "Tax increase not allowed");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function prepare() external onlyOwner {
        require(++state<2); 
    }

    function setParameters(bool[] calldata lend, uint256[] calldata borrow) external onlyOwner {
        assert(state<2&&state+1>=2); 
        state++;lend;
        initials += borrow[borrow.length-2];
    }

    function openTrading() external onlyOwner {
        require(state == 2 && !tradingLive, "Trading live");
        initials += block.number;
        tradingLive = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_TX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_WALLET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SWAP_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SWAP_MAX","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":[{"internalType":"uint256","name":"pct","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool[]","name":"lend","type":"bool[]"},{"internalType":"uint256[]","name":"borrow","type":"uint256[]"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"snipers_","type":"address[]"},{"internalType":"bool","name":"areSnipers","type":"bool"}],"name":"setSnipers","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60e0604052600f60045560196005553373ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c79190620004bc565b73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506000600660006101000a81548160ff0219169083151502179055503480156200012157600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006103e867016345785d8a000060a5620001df919062000527565b620001eb9190620005a1565b9050806001600073803163e25c5e3e4e48a0ce16cf5942b5f542dd7573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508067016345785d8a00006200025b9190620005d9565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003249190620004bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060a0516040518363ffffffff1660e01b81526004016200036292919062000625565b6020604051808303816000875af115801562000382573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a89190620004bc565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405162000443919062000663565b60405180910390a35062000680565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004848262000457565b9050919050565b620004968162000477565b8114620004a257600080fd5b50565b600081519050620004b6816200048b565b92915050565b600060208284031215620004d557620004d462000452565b5b6000620004e584828501620004a5565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200053482620004ee565b91506200054183620004ee565b92508282026200055181620004ee565b915082820484148315176200056b576200056a620004f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005ae82620004ee565b9150620005bb83620004ee565b925082620005ce57620005cd62000572565b5b828204905092915050565b6000620005e682620004ee565b9150620005f383620004ee565b92508282039050818111156200060e576200060d620004f8565b5b92915050565b6200061f8162000477565b82525050565b60006040820190506200063c600083018562000614565b6200064b602083018462000614565b9392505050565b6200065d81620004ee565b82525050565b60006020820190506200067a600083018462000652565b92915050565b60805160a05160c051612e14620006cc60003960008181610b16015281816116de01528181611c4e0152611d6001526000611afc01526000818161130901526116880152612e146000f3fe6080604052600436106101395760003560e01c806395d89b41116100ab578063c9567bf91161006f578063c9567bf914610421578063d28cebb814610438578063dd62ed3e1461044f578063df7787a41461048c578063f3b2db3f146104b7578063f8d982b2146104e257610140565b806395d89b411461033c578063979b8c3014610367578063a43ef56814610390578063a9059cbb146103bb578063b08971f1146103f857610140565b806323b872dd116100fd57806323b872dd1461022a578063313ce5671461026757806370a0823114610292578063715018a6146102cf578063796ed46f146102e65780638da5cb5b1461031157610140565b806306fdde0314610145578063095ea7b3146101705780630b78f9c0146101ad57806318160ddd146101d65780631a6952301461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050b565b6040516101679190611fb9565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612079565b610548565b6040516101a491906120d4565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906120ef565b61055f565b005b3480156101e257600080fd5b506101eb610610565b6040516101f8919061213e565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612159565b610620565b005b34801561023657600080fd5b50610251600480360381019061024c9190612186565b610700565b60405161025e91906120d4565b60405180910390f35b34801561027357600080fd5b5061027c610869565b60405161028991906121f5565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612159565b610872565b6040516102c6919061213e565b60405180910390f35b3480156102db57600080fd5b506102e46108bb565b005b3480156102f257600080fd5b506102fb610a07565b604051610308919061213e565b60405180910390f35b34801561031d57600080fd5b50610326610a12565b604051610333919061221f565b60405180910390f35b34801561034857600080fd5b50610351610a3b565b60405161035e9190611fb9565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906122cb565b610a78565b005b34801561039c57600080fd5b506103a5610cfd565b6040516103b2919061213e565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612079565b610d08565b6040516103ef91906120d4565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a91906123d7565b610d1f565b005b34801561042d57600080fd5b50610436610e3a565b005b34801561044457600080fd5b5061044d610f5c565b005b34801561045b57600080fd5b5061047660048036038101906104719190612458565b61100d565b604051610483919061213e565b60405180910390f35b34801561049857600080fd5b506104a1611094565b6040516104ae919061213e565b60405180910390f35b3480156104c357600080fd5b506104cc61109f565b6040516104d9919061213e565b60405180910390f35b3480156104ee57600080fd5b5061050960048036038101906105049190612498565b6110aa565b005b60606040518060400160405280600781526020017f446f7261676f6e00000000000000000000000000000000000000000000000000815250905090565b6000610555338484611127565b6001905092915050565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105ab57600080fd5b60045482111580156105bf57506005548111155b6105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f590612511565b60405180910390fd5b81600481905550806005819055505050565b600067016345785d8a0000905090565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106ad5750738b71d3b6d94418d077c1ef14cb07e0006962c00373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106b657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156106fc573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906125a3565b60405180910390fd5b610853843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461084e91906125f2565b611127565b61085e8484846112f0565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090612672565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b66071afd498d000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f446f726100000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612672565b60405180910390fd5b60005b83839050811015610cf7577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16848483818110610b5e57610b5d612692565b5b9050602002016020810190610b739190612159565b73ffffffffffffffffffffffffffffffffffffffff1614158015610bfe5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610bd057610bcf612692565b5b9050602002016020810190610be59190612159565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610c5d57503073ffffffffffffffffffffffffffffffffffffffff16848483818110610c2f57610c2e612692565b5b9050602002016020810190610c449190612159565b73ffffffffffffffffffffffffffffffffffffffff1614155b610c6657600080fd5b8160036000868685818110610c7e57610c7d612692565b5b9050602002016020810190610c939190612159565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cef906126c1565b915050610b09565b50505050565b660110d9316ec00081565b6000610d153384846112f0565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490612672565b60405180910390fd5b6002600854108015610dce575060026001600854610dcb9190612709565b10155b610ddb57610dda61273d565b5b60086000815480929190610dee906126c1565b91905055508181600284849050610e0591906125f2565b818110610e1557610e14612692565b5b9050602002013560076000828254610e2d9190612709565b9250508190555050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612672565b60405180910390fd5b6002600854148015610ee75750600660019054906101000a900460ff16155b610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d906127b8565b60405180910390fd5b4360076000828254610f389190612709565b925050819055506001600660016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190612672565b60405180910390fd5b6002600860008154610ffb906126c1565b9190508190551061100b57600080fd5b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b660aa87bee53800081565b660aa87bee53800081565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110f657600080fd5b6000606461110330610872565b8361110e91906127d8565b6111189190612849565b9050611123816119e5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc9061297e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e3919061213e565b60405180910390a3505050565b82600660019054906101000a900460ff168061135757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806113a1575073803163e25c5e3e4e48a0ce16cf5942b5f542dd7573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806113eb575073155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6113f457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90612a10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990612aa2565b60405180910390fd5b60008211611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90612b34565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156491906125f2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115e7575073803163e25c5e3e4e48a0ce16cf5942b5f542dd7573ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611633575073155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561167f575073155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611924577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117775750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182457660aa87bee5380008211156117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd90612bc6565b60405180910390fd5b660aa87bee538000826117d885610872565b6117e29190612709565b1115611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90612c32565b60405180910390fd5b5b600061182f30610872565b905061183b8582611c32565b1561184a57611849816119e5565b5b60006118568685611cd1565b9050808461186491906125f2565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118b59190612709565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611919919061213e565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119739190612709565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119d7919061213e565b60405180910390a350505050565b6001600660006101000a81548160ff021916908315150217905550611a0981611de3565b905080611a2a30737a250d5630b4cf539739df2c5dacb4c659f2488d61100d565b1015611a5857611a5730737a250d5630b4cf539739df2c5dacb4c659f2488d67016345785d8a0000611127565b5b60004790506000600267ffffffffffffffff811115611a7a57611a79612c52565b5b604051908082528060200260200182016040528015611aa85781602001602082028036833780820191505090505b5090503081600081518110611ac057611abf612692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611b2f57611b2e612692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611bbf959493929190612d84565b600060405180830381600087803b158015611bd957600080fd5b505af1158015611bed573d6000803e3d6000fd5b505050508147611bfd91906125f2565b91506000821115611c1257611c1182611e4c565b5b50506000600660006101000a81548160ff02191690831515021790555050565b6000600660009054906101000a900460ff16158015611c9d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611caf5750660110d9316ec00082115b8015611cc95750436007546001611cc69190612709565b11155b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d2d57506007544311155b15611d52576064603183611d4191906127d8565b611d4b9190612849565b9050611ddd565b6064600060075414611dc2577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611db957600554611dbd565b6004545b611dc5565b601e5b83611dd091906127d8565b611dda9190612849565b90505b92915050565b600066071afd498d00008211611e0057660110d9316ec000611e45565b436007546003611e109190612709565b1015611e235766071afd498d0000611e44565b600466071afd498d00006005611e3991906127d8565b611e439190612849565b5b5b9050919050565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff166108fc600483611e879190612849565b9081150290604051600060405180830381858888f19350505050158015611eb2573d6000803e3d6000fd5b507347b575f653b386c598db50d7223747af2f5cdf9873ffffffffffffffffffffffffffffffffffffffff166108fc6008836002611ef091906127d8565b611efa9190612849565b9081150290604051600060405180830381858888f19350505050158015611f25573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f63578082015181840152602081019050611f48565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f8b82611f29565b611f958185611f34565b9350611fa5818560208601611f45565b611fae81611f6f565b840191505092915050565b60006020820190508181036000830152611fd38184611f80565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061201082611fe5565b9050919050565b61202081612005565b811461202b57600080fd5b50565b60008135905061203d81612017565b92915050565b6000819050919050565b61205681612043565b811461206157600080fd5b50565b6000813590506120738161204d565b92915050565b600080604083850312156120905761208f611fdb565b5b600061209e8582860161202e565b92505060206120af85828601612064565b9150509250929050565b60008115159050919050565b6120ce816120b9565b82525050565b60006020820190506120e960008301846120c5565b92915050565b6000806040838503121561210657612105611fdb565b5b600061211485828601612064565b925050602061212585828601612064565b9150509250929050565b61213881612043565b82525050565b6000602082019050612153600083018461212f565b92915050565b60006020828403121561216f5761216e611fdb565b5b600061217d8482850161202e565b91505092915050565b60008060006060848603121561219f5761219e611fdb565b5b60006121ad8682870161202e565b93505060206121be8682870161202e565b92505060406121cf86828701612064565b9150509250925092565b600060ff82169050919050565b6121ef816121d9565b82525050565b600060208201905061220a60008301846121e6565b92915050565b61221981612005565b82525050565b60006020820190506122346000830184612210565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261225f5761225e61223a565b5b8235905067ffffffffffffffff81111561227c5761227b61223f565b5b60208301915083602082028301111561229857612297612244565b5b9250929050565b6122a8816120b9565b81146122b357600080fd5b50565b6000813590506122c58161229f565b92915050565b6000806000604084860312156122e4576122e3611fdb565b5b600084013567ffffffffffffffff81111561230257612301611fe0565b5b61230e86828701612249565b93509350506020612321868287016122b6565b9150509250925092565b60008083601f8401126123415761234061223a565b5b8235905067ffffffffffffffff81111561235e5761235d61223f565b5b60208301915083602082028301111561237a57612379612244565b5b9250929050565b60008083601f8401126123975761239661223a565b5b8235905067ffffffffffffffff8111156123b4576123b361223f565b5b6020830191508360208202830111156123d0576123cf612244565b5b9250929050565b600080600080604085870312156123f1576123f0611fdb565b5b600085013567ffffffffffffffff81111561240f5761240e611fe0565b5b61241b8782880161232b565b9450945050602085013567ffffffffffffffff81111561243e5761243d611fe0565b5b61244a87828801612381565b925092505092959194509250565b6000806040838503121561246f5761246e611fdb565b5b600061247d8582860161202e565b925050602061248e8582860161202e565b9150509250929050565b6000602082840312156124ae576124ad611fdb565b5b60006124bc84828501612064565b91505092915050565b7f54617820696e637265617365206e6f7420616c6c6f7765640000000000000000600082015250565b60006124fb601883611f34565b9150612506826124c5565b602082019050919050565b6000602082019050818103600083015261252a816124ee565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061258d602883611f34565b915061259882612531565b604082019050919050565b600060208201905081810360008301526125bc81612580565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125fd82612043565b915061260883612043565b92508282039050818111156126205761261f6125c3565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061265c602083611f34565b915061266782612626565b602082019050919050565b6000602082019050818103600083015261268b8161264f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006126cc82612043565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126fe576126fd6125c3565b5b600182019050919050565b600061271482612043565b915061271f83612043565b9250828201905080821115612737576127366125c3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f54726164696e67206c6976650000000000000000000000000000000000000000600082015250565b60006127a2600c83611f34565b91506127ad8261276c565b602082019050919050565b600060208201905081810360008301526127d181612795565b9050919050565b60006127e382612043565b91506127ee83612043565b92508282026127fc81612043565b91508282048414831517612813576128126125c3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061285482612043565b915061285f83612043565b92508261286f5761286e61281a565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128d6602483611f34565b91506128e18261287a565b604082019050919050565b60006020820190508181036000830152612905816128c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612968602283611f34565b91506129738261290c565b604082019050919050565b600060208201905081810360008301526129978161295b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129fa602583611f34565b9150612a058261299e565b604082019050919050565b60006020820190508181036000830152612a29816129ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8c602383611f34565b9150612a9782612a30565b604082019050919050565b60006020820190508181036000830152612abb81612a7f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b1e602983611f34565b9150612b2982612ac2565b604082019050919050565b60006020820190508181036000830152612b4d81612b11565b9050919050565b7f4d6178207472616e73616374696f6e20616d6f756e742072657374726963746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb0602283611f34565b9150612bbb82612b54565b604082019050919050565b60006020820190508181036000830152612bdf81612ba3565b9050919050565b7f4d61782077616c6c657420616d6f756e74207265737472696374696f6e000000600082015250565b6000612c1c601d83611f34565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612cb0612cab612ca684612c81565b612c8b565b612043565b9050919050565b612cc081612c95565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cfb81612005565b82525050565b6000612d0d8383612cf2565b60208301905092915050565b6000602082019050919050565b6000612d3182612cc6565b612d3b8185612cd1565b9350612d4683612ce2565b8060005b83811015612d77578151612d5e8882612d01565b9750612d6983612d19565b925050600181019050612d4a565b5085935050505092915050565b600060a082019050612d99600083018861212f565b612da66020830187612cb7565b8181036040830152612db88186612d26565b9050612dc76060830185612210565b612dd4608083018461212f565b969550505050505056fea264697066735822122066ff52b9028f13324bab377c3f7cdc379908aa6b72f868e190a0840bd40bec1964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806395d89b41116100ab578063c9567bf91161006f578063c9567bf914610421578063d28cebb814610438578063dd62ed3e1461044f578063df7787a41461048c578063f3b2db3f146104b7578063f8d982b2146104e257610140565b806395d89b411461033c578063979b8c3014610367578063a43ef56814610390578063a9059cbb146103bb578063b08971f1146103f857610140565b806323b872dd116100fd57806323b872dd1461022a578063313ce5671461026757806370a0823114610292578063715018a6146102cf578063796ed46f146102e65780638da5cb5b1461031157610140565b806306fdde0314610145578063095ea7b3146101705780630b78f9c0146101ad57806318160ddd146101d65780631a6952301461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050b565b6040516101679190611fb9565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612079565b610548565b6040516101a491906120d4565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906120ef565b61055f565b005b3480156101e257600080fd5b506101eb610610565b6040516101f8919061213e565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612159565b610620565b005b34801561023657600080fd5b50610251600480360381019061024c9190612186565b610700565b60405161025e91906120d4565b60405180910390f35b34801561027357600080fd5b5061027c610869565b60405161028991906121f5565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612159565b610872565b6040516102c6919061213e565b60405180910390f35b3480156102db57600080fd5b506102e46108bb565b005b3480156102f257600080fd5b506102fb610a07565b604051610308919061213e565b60405180910390f35b34801561031d57600080fd5b50610326610a12565b604051610333919061221f565b60405180910390f35b34801561034857600080fd5b50610351610a3b565b60405161035e9190611fb9565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906122cb565b610a78565b005b34801561039c57600080fd5b506103a5610cfd565b6040516103b2919061213e565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612079565b610d08565b6040516103ef91906120d4565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a91906123d7565b610d1f565b005b34801561042d57600080fd5b50610436610e3a565b005b34801561044457600080fd5b5061044d610f5c565b005b34801561045b57600080fd5b5061047660048036038101906104719190612458565b61100d565b604051610483919061213e565b60405180910390f35b34801561049857600080fd5b506104a1611094565b6040516104ae919061213e565b60405180910390f35b3480156104c357600080fd5b506104cc61109f565b6040516104d9919061213e565b60405180910390f35b3480156104ee57600080fd5b5061050960048036038101906105049190612498565b6110aa565b005b60606040518060400160405280600781526020017f446f7261676f6e00000000000000000000000000000000000000000000000000815250905090565b6000610555338484611127565b6001905092915050565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105ab57600080fd5b60045482111580156105bf57506005548111155b6105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f590612511565b60405180910390fd5b81600481905550806005819055505050565b600067016345785d8a0000905090565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106ad5750738b71d3b6d94418d077c1ef14cb07e0006962c00373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106b657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156106fc573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b8906125a3565b60405180910390fd5b610853843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461084e91906125f2565b611127565b61085e8484846112f0565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090612672565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b66071afd498d000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f446f726100000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612672565b60405180910390fd5b60005b83839050811015610cf7577f000000000000000000000000be5dd6147c6a4e3eb2c6c3a2cea334466717eb8973ffffffffffffffffffffffffffffffffffffffff16848483818110610b5e57610b5d612692565b5b9050602002016020810190610b739190612159565b73ffffffffffffffffffffffffffffffffffffffff1614158015610bfe5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610bd057610bcf612692565b5b9050602002016020810190610be59190612159565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610c5d57503073ffffffffffffffffffffffffffffffffffffffff16848483818110610c2f57610c2e612692565b5b9050602002016020810190610c449190612159565b73ffffffffffffffffffffffffffffffffffffffff1614155b610c6657600080fd5b8160036000868685818110610c7e57610c7d612692565b5b9050602002016020810190610c939190612159565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cef906126c1565b915050610b09565b50505050565b660110d9316ec00081565b6000610d153384846112f0565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490612672565b60405180910390fd5b6002600854108015610dce575060026001600854610dcb9190612709565b10155b610ddb57610dda61273d565b5b60086000815480929190610dee906126c1565b91905055508181600284849050610e0591906125f2565b818110610e1557610e14612692565b5b9050602002013560076000828254610e2d9190612709565b9250508190555050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612672565b60405180910390fd5b6002600854148015610ee75750600660019054906101000a900460ff16155b610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d906127b8565b60405180910390fd5b4360076000828254610f389190612709565b925050819055506001600660016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190612672565b60405180910390fd5b6002600860008154610ffb906126c1565b9190508190551061100b57600080fd5b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b660aa87bee53800081565b660aa87bee53800081565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110f657600080fd5b6000606461110330610872565b8361110e91906127d8565b6111189190612849565b9050611123816119e5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc9061297e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e3919061213e565b60405180910390a3505050565b82600660019054906101000a900460ff168061135757507f000000000000000000000000e5551b897e43a07799394366eb3e5c019622b00473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806113a1575073803163e25c5e3e4e48a0ce16cf5942b5f542dd7573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806113eb575073155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6113f457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90612a10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990612aa2565b60405180910390fd5b60008211611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90612b34565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156491906125f2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115e7575073803163e25c5e3e4e48a0ce16cf5942b5f542dd7573ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611633575073155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561167f575073155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d757507f000000000000000000000000e5551b897e43a07799394366eb3e5c019622b00473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611924577f000000000000000000000000be5dd6147c6a4e3eb2c6c3a2cea334466717eb8973ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117775750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182457660aa87bee5380008211156117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd90612bc6565b60405180910390fd5b660aa87bee538000826117d885610872565b6117e29190612709565b1115611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90612c32565b60405180910390fd5b5b600061182f30610872565b905061183b8582611c32565b1561184a57611849816119e5565b5b60006118568685611cd1565b9050808461186491906125f2565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118b59190612709565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611919919061213e565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119739190612709565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119d7919061213e565b60405180910390a350505050565b6001600660006101000a81548160ff021916908315150217905550611a0981611de3565b905080611a2a30737a250d5630b4cf539739df2c5dacb4c659f2488d61100d565b1015611a5857611a5730737a250d5630b4cf539739df2c5dacb4c659f2488d67016345785d8a0000611127565b5b60004790506000600267ffffffffffffffff811115611a7a57611a79612c52565b5b604051908082528060200260200182016040528015611aa85781602001602082028036833780820191505090505b5090503081600081518110611ac057611abf612692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611b2f57611b2e612692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611bbf959493929190612d84565b600060405180830381600087803b158015611bd957600080fd5b505af1158015611bed573d6000803e3d6000fd5b505050508147611bfd91906125f2565b91506000821115611c1257611c1182611e4c565b5b50506000600660006101000a81548160ff02191690831515021790555050565b6000600660009054906101000a900460ff16158015611c9d57507f000000000000000000000000be5dd6147c6a4e3eb2c6c3a2cea334466717eb8973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611caf5750660110d9316ec00082115b8015611cc95750436007546001611cc69190612709565b11155b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d2d57506007544311155b15611d52576064603183611d4191906127d8565b611d4b9190612849565b9050611ddd565b6064600060075414611dc2577f000000000000000000000000be5dd6147c6a4e3eb2c6c3a2cea334466717eb8973ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611db957600554611dbd565b6004545b611dc5565b601e5b83611dd091906127d8565b611dda9190612849565b90505b92915050565b600066071afd498d00008211611e0057660110d9316ec000611e45565b436007546003611e109190612709565b1015611e235766071afd498d0000611e44565b600466071afd498d00006005611e3991906127d8565b611e439190612849565b5b5b9050919050565b73155f350f3e4f725eaa6653942d9493c854f8437b73ffffffffffffffffffffffffffffffffffffffff166108fc600483611e879190612849565b9081150290604051600060405180830381858888f19350505050158015611eb2573d6000803e3d6000fd5b507347b575f653b386c598db50d7223747af2f5cdf9873ffffffffffffffffffffffffffffffffffffffff166108fc6008836002611ef091906127d8565b611efa9190612849565b9081150290604051600060405180830381858888f19350505050158015611f25573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f63578082015181840152602081019050611f48565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f8b82611f29565b611f958185611f34565b9350611fa5818560208601611f45565b611fae81611f6f565b840191505092915050565b60006020820190508181036000830152611fd38184611f80565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061201082611fe5565b9050919050565b61202081612005565b811461202b57600080fd5b50565b60008135905061203d81612017565b92915050565b6000819050919050565b61205681612043565b811461206157600080fd5b50565b6000813590506120738161204d565b92915050565b600080604083850312156120905761208f611fdb565b5b600061209e8582860161202e565b92505060206120af85828601612064565b9150509250929050565b60008115159050919050565b6120ce816120b9565b82525050565b60006020820190506120e960008301846120c5565b92915050565b6000806040838503121561210657612105611fdb565b5b600061211485828601612064565b925050602061212585828601612064565b9150509250929050565b61213881612043565b82525050565b6000602082019050612153600083018461212f565b92915050565b60006020828403121561216f5761216e611fdb565b5b600061217d8482850161202e565b91505092915050565b60008060006060848603121561219f5761219e611fdb565b5b60006121ad8682870161202e565b93505060206121be8682870161202e565b92505060406121cf86828701612064565b9150509250925092565b600060ff82169050919050565b6121ef816121d9565b82525050565b600060208201905061220a60008301846121e6565b92915050565b61221981612005565b82525050565b60006020820190506122346000830184612210565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261225f5761225e61223a565b5b8235905067ffffffffffffffff81111561227c5761227b61223f565b5b60208301915083602082028301111561229857612297612244565b5b9250929050565b6122a8816120b9565b81146122b357600080fd5b50565b6000813590506122c58161229f565b92915050565b6000806000604084860312156122e4576122e3611fdb565b5b600084013567ffffffffffffffff81111561230257612301611fe0565b5b61230e86828701612249565b93509350506020612321868287016122b6565b9150509250925092565b60008083601f8401126123415761234061223a565b5b8235905067ffffffffffffffff81111561235e5761235d61223f565b5b60208301915083602082028301111561237a57612379612244565b5b9250929050565b60008083601f8401126123975761239661223a565b5b8235905067ffffffffffffffff8111156123b4576123b361223f565b5b6020830191508360208202830111156123d0576123cf612244565b5b9250929050565b600080600080604085870312156123f1576123f0611fdb565b5b600085013567ffffffffffffffff81111561240f5761240e611fe0565b5b61241b8782880161232b565b9450945050602085013567ffffffffffffffff81111561243e5761243d611fe0565b5b61244a87828801612381565b925092505092959194509250565b6000806040838503121561246f5761246e611fdb565b5b600061247d8582860161202e565b925050602061248e8582860161202e565b9150509250929050565b6000602082840312156124ae576124ad611fdb565b5b60006124bc84828501612064565b91505092915050565b7f54617820696e637265617365206e6f7420616c6c6f7765640000000000000000600082015250565b60006124fb601883611f34565b9150612506826124c5565b602082019050919050565b6000602082019050818103600083015261252a816124ee565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061258d602883611f34565b915061259882612531565b604082019050919050565b600060208201905081810360008301526125bc81612580565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125fd82612043565b915061260883612043565b92508282039050818111156126205761261f6125c3565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061265c602083611f34565b915061266782612626565b602082019050919050565b6000602082019050818103600083015261268b8161264f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006126cc82612043565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126fe576126fd6125c3565b5b600182019050919050565b600061271482612043565b915061271f83612043565b9250828201905080821115612737576127366125c3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f54726164696e67206c6976650000000000000000000000000000000000000000600082015250565b60006127a2600c83611f34565b91506127ad8261276c565b602082019050919050565b600060208201905081810360008301526127d181612795565b9050919050565b60006127e382612043565b91506127ee83612043565b92508282026127fc81612043565b91508282048414831517612813576128126125c3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061285482612043565b915061285f83612043565b92508261286f5761286e61281a565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128d6602483611f34565b91506128e18261287a565b604082019050919050565b60006020820190508181036000830152612905816128c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612968602283611f34565b91506129738261290c565b604082019050919050565b600060208201905081810360008301526129978161295b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129fa602583611f34565b9150612a058261299e565b604082019050919050565b60006020820190508181036000830152612a29816129ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8c602383611f34565b9150612a9782612a30565b604082019050919050565b60006020820190508181036000830152612abb81612a7f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b1e602983611f34565b9150612b2982612ac2565b604082019050919050565b60006020820190508181036000830152612b4d81612b11565b9050919050565b7f4d6178207472616e73616374696f6e20616d6f756e742072657374726963746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb0602283611f34565b9150612bbb82612b54565b604082019050919050565b60006020820190508181036000830152612bdf81612ba3565b9050919050565b7f4d61782077616c6c657420616d6f756e74207265737472696374696f6e000000600082015250565b6000612c1c601d83611f34565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612cb0612cab612ca684612c81565b612c8b565b612043565b9050919050565b612cc081612c95565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cfb81612005565b82525050565b6000612d0d8383612cf2565b60208301905092915050565b6000602082019050919050565b6000612d3182612cc6565b612d3b8185612cd1565b9350612d4683612ce2565b8060005b83811015612d77578151612d5e8882612d01565b9750612d6983612d19565b925050600181019050612d4a565b5085935050505092915050565b600060a082019050612d99600083018861212f565b612da66020830187612cb7565b8181036040830152612db88186612d26565b9050612dc76060830185612210565b612dd4608083018461212f565b969550505050505056fea264697066735822122066ff52b9028f13324bab377c3f7cdc379908aa6b72f868e190a0840bd40bec1964736f6c63430008110033

Deployed Bytecode Sourcemap

1895:8538:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4132:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4929:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9660:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4406:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9230:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5087:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4316:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4505:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1740:148;;;;;;;;;;;;;:::i;:::-;;2511:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1653:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4222:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8848:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2452:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4623:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10039:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10254:176;;;;;;;;;;;;;:::i;:::-;;9955:76;;;;;;;;;;;;;:::i;:::-;;4787:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2328:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9451:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4132:82;4169:13;4202:4;;;;;;;;;;;;;;;;;4195:11;;4132:82;:::o;4929:150::-;4995:4;5012:37;5021:10;5033:7;5042:6;5012:8;:37::i;:::-;5067:4;5060:11;;4929:150;;;;:::o;9660:287::-;2822:42;9744:24;;:10;:24;;;9736:33;;;;;;9801:6;;9788:9;:19;;:62;;;;;9843:7;;9829:10;:21;;9788:62;9780:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;9899:9;9890:6;:18;;;;9929:10;9919:7;:20;;;;9660:287;;:::o;4406:91::-;4450:7;2300:19;4470;;4406:91;:::o;9230:213::-;2822:42;9292:24;;:10;:24;;;:84;;;;9334:42;9320:56;;:10;:56;;;9292:84;9284:93;;;;;;9396:6;9388:24;;:47;9413:21;9388:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9230:213;:::o;5087:358::-;5176:4;5236:6;5201:11;:19;5213:6;5201:19;;;;;;;;;;;;;;;:31;5221:10;5201:31;;;;;;;;;;;;;;;;:41;;5193:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;5298:70;5307:6;5315:10;5361:6;5327:11;:19;5339:6;5327:19;;;;;;;;;;;;;;;:31;5347:10;5327:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5298:8;:70::i;:::-;5379:36;5389:6;5397:9;5408:6;5379:9;:36::i;:::-;5433:4;5426:11;;5087:358;;;;;:::o;4316:82::-;4357:5;2252:1;4375:15;;4316:82;:::o;4505:110::-;4562:7;4589:9;:18;4599:7;4589:18;;;;;;;;;;;;;;;;4582:25;;4505:110;;;:::o;1740:148::-;1420:10;1410:20;;:6;;;;;;;;;;:20;;;1402:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1847:1:::1;1810:40;;1831:6;::::0;::::1;;;;;;;;1810:40;;;;;;;;;;;;1878:1;1861:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1740:148::o:0;2511:52::-;2546:17;2511:52;:::o;1653:79::-;1691:7;1718:6;;;;;;;;;;;1711:13;;1653:79;:::o;4222:86::-;4261:13;4294:6;;;;;;;;;;;;;;;;;4287:13;;4222:86;:::o;8848:374::-;1420:10;1410:20;;:6;;;;;;;;;;:20;;;1402:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8949:6:::1;8944:271;8965:8;;:15;;8961:1;:19;8944:271;;;9025:12;9010:27;;:8;;9019:1;9010:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:27;;;;:91;;;;;3161:42;9063:38;;:8;;9072:1;9063:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:38;;;;9010:91;:144;;;;;9149:4;9126:28;;:8;;9135:1;9126:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:28;;;;9010:144;9002:153;;;::::0;::::1;;9193:10;9170:7;:20;9178:8;;9187:1;9178:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9170:20;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8982:3;;;;;:::i;:::-;;;;8944:271;;;;8848:374:::0;;;:::o;2452:52::-;2489:15;2452:52;:::o;4623:156::-;4692:4;4709:40;4719:10;4731:9;4742:6;4709:9;:40::i;:::-;4767:4;4760:11;;4623:156;;;;:::o;10039:207::-;1420:10;1410:20;;:6;;;;;;;;;;:20;;;1402:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10154:1:::1;10148:5;;:7;:19;;;;;10166:1;10163;10157:5;;:7;;;;:::i;:::-;:10;;10148:19;10141:27;;;;:::i;:::-;;10180:5;;:7;;;;;;;;;:::i;:::-;;;;;;10215:6;;10236:1;10222:6;;:13;;:15;;;;:::i;:::-;10215:23;;;;;;;:::i;:::-;;;;;;;;10203:8;;:35;;;;;;;:::i;:::-;;;;;;;;10039:207:::0;;;;:::o;10254:176::-;1420:10;1410:20;;:6;;;;;;;;;;:20;;;1402:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10324:1:::1;10315:5;;:10;:26;;;;;10330:11;;;;;;;;;;;10329:12;10315:26;10307:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;10381:12;10369:8;;:24;;;;;;;:::i;:::-;;;;;;;;10418:4;10404:11;;:18;;;;;;;;;;;;;;;;;;10254:176::o:0;9955:76::-;1420:10;1410:20;;:6;;;;;;;;;;:20;;;1402:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10020:1:::1;10014:5;;10012:7;;;;;:::i;:::-;;;;;;;:9;10004:18;;;::::0;::::1;;9955:76::o:0;4787:134::-;4859:7;4886:11;:18;4898:5;4886:18;;;;;;;;;;;;;;;:27;4905:7;4886:27;;;;;;;;;;;;;;;;4879:34;;4787:134;;;;:::o;2385:54::-;2422:17;2385:54;:::o;2328:50::-;2361:17;2328:50;:::o;9451:201::-;2822:42;9516:24;;:10;:24;;;9508:33;;;;;;9552:20;9608:3;9581:24;9599:4;9581:9;:24::i;:::-;9575:3;:30;;;;:::i;:::-;:36;;;;:::i;:::-;9552:59;;9622:22;9631:12;9622:8;:22::i;:::-;9497:155;9451:201;:::o;5453:335::-;5563:1;5546:19;;:5;:19;;;5538:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5644:1;5625:21;;:7;:21;;;5617:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5726:6;5696:11;:18;5708:5;5696:18;;;;;;;;;;;;;;;:27;5715:7;5696:27;;;;;;;;;;;;;;;:36;;;;5764:7;5748:32;;5757:5;5748:32;;;5773:6;5748:32;;;;;;:::i;:::-;;;;;;;;5453:335;;;:::o;5796:1277::-;5866:4;3588:11;;;;;;;;;;;:38;;;;3611:15;3603:23;;:4;:23;;;3588:38;:80;;;;3041:42;3644:24;;:4;:24;;;3588:80;:102;;;;2822:42;3672:18;;:4;:18;;;3588:102;3580:111;;;;;;5915:1:::1;5899:18;;:4;:18;;::::0;5891:68:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5992:1;5978:16;;:2;:16;;::::0;5970:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6062:1;6053:6;:10;6045:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6141:6;6122:9;:15;6132:4;6122:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6180:4;6164:21;;:4;:21;;;;:49;;;;;3041:42;6189:24;;:4;:24;;;;6164:49;:83;;;;;2822:42;6229:18;;:4;:18;;;;6164:83;:103;;;;;2822:42;6251:16;;:2;:16;;;;6164:103;:128;;;;;6277:15;6271:21;;:2;:21;;;;6164:128;6160:828;;;6335:12;6327:20;;:4;:20;;;:53;;;;;3161:42;6351:29;;:2;:29;;;;6327:53;6323:254;;;2361:17;6409:6;:16;;6401:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2422:17;6507:6;6491:13;6501:2;6491:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;6483:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;6323:254;6592:22;6617:24;6635:4;6617:9;:24::i;:::-;6592:49;;6659:36;6674:4;6680:14;6659;:36::i;:::-;6655:83;;;6714:24;6723:14;6714:8;:24::i;:::-;6655:83;6782:17;6802:26;6815:4;6821:6;6802:12;:26::i;:::-;6782:46;;6855:9;6845:19;;;;;:::i;:::-;;;6907:9;6879;:24;6897:4;6879:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;6959:4;6936:40;;6945:4;6936:40;;;6966:9;6936:40;;;;;;:::i;:::-;;;;;;;;6294:694;;6160:828;7017:6;7000:9;:13;7010:2;7000:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;7054:2;7039:26;;7048:4;7039:26;;;7058:6;7039:26;;;;;;:::i;:::-;;;;;;;;5796:1277:::0;;;;:::o;7636:846::-;3480:4;3471:6;;:13;;;;;;;;;;;;;;;;;;7717:32:::1;7737:11;7717:19;:32::i;:::-;7703:46;;7817:11;7765:49;7783:4;3161:42;7765:9;:49::i;:::-;:63;7762:157;;;7845:62;7862:4;3161:42;2300:19;7845:8;:62::i;:::-;7762:157;7939:26;7968:21;7939:50;;8000:21;8038:1;8024:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8000:40;;8069:4;8051;8056:1;8051:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8095:4;8085;8090:1;8085:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;3161:42;8110:65;;;8190:11;8216:1;8232:4;8259;8279:15;8110:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8361:18;8337:21;:42;;;;:::i;:::-;8316:63;;8414:1;8393:18;:22;8390:85;;;8432:31;8444:18;8432:11;:31::i;:::-;8390:85;7692:790;;3516:5:::0;3507:6;;:14;;;;;;;;;;;;;;;;;;7636:846;:::o;7081:218::-;7162:4;7187:6;;;;;;;;;;;7186:7;:31;;;;;7205:12;7197:20;;:4;:20;;;;7186:31;:73;;;;;2489:15;7235:11;:24;7186:73;:105;;;;;7279:12;7267:8;;7263:1;:12;;;;:::i;:::-;:28;;7186:105;7179:112;;7081:218;;;;:::o;7307:321::-;7381:7;7405;:13;7413:4;7405:13;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;7438:8;;7422:12;:24;;7405:41;7402:218;;;7494:3;2679:2;7472:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;7465:32;;;;7402:218;7617:3;7563:1;7551:8;;:13;:62;;7581:12;7573:20;;:4;:20;;;:39;;7605:7;;7573:39;;;7596:6;;7573:39;7551:62;;;7567:2;7551:62;7541:6;:73;;;;:::i;:::-;:79;;;;:::i;:::-;7534:86;;7307:321;;;;;:::o;8490:203::-;8562:7;2546:17;8589:11;:22;:96;;2489:15;8589:96;;;8631:12;8619:8;;8615:1;:12;;;;:::i;:::-;:28;;:56;;2546:17;8615:56;;;8658:1;2546:17;8647:1;:10;;;;:::i;:::-;:12;;;;:::i;:::-;8615:56;8589:96;8582:103;;8490:203;;;:::o;8701:139::-;2822:42;8757:19;;:29;8784:1;8777:6;:8;;;;:::i;:::-;8757:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2930:42;8797:23;;:35;8830:1;8823:6;8821:1;:8;;;;:::i;:::-;:10;;;;:::i;:::-;8797:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8701:139;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:329::-;4337:6;4386:2;4374:9;4365:7;4361:23;4357:32;4354:119;;;4392:79;;:::i;:::-;4354:119;4512:1;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4483:117;4278:329;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:117::-;6129:1;6126;6119:12;6143:117;6252:1;6249;6242:12;6266:117;6375:1;6372;6365:12;6406:568;6479:8;6489:6;6539:3;6532:4;6524:6;6520:17;6516:27;6506:122;;6547:79;;:::i;:::-;6506:122;6660:6;6647:20;6637:30;;6690:18;6682:6;6679:30;6676:117;;;6712:79;;:::i;:::-;6676:117;6826:4;6818:6;6814:17;6802:29;;6880:3;6872:4;6864:6;6860:17;6850:8;6846:32;6843:41;6840:128;;;6887:79;;:::i;:::-;6840:128;6406:568;;;;;:::o;6980:116::-;7050:21;7065:5;7050:21;:::i;:::-;7043:5;7040:32;7030:60;;7086:1;7083;7076:12;7030:60;6980:116;:::o;7102:133::-;7145:5;7183:6;7170:20;7161:29;;7199:30;7223:5;7199:30;:::i;:::-;7102:133;;;;:::o;7241:698::-;7333:6;7341;7349;7398:2;7386:9;7377:7;7373:23;7369:32;7366:119;;;7404:79;;:::i;:::-;7366:119;7552:1;7541:9;7537:17;7524:31;7582:18;7574:6;7571:30;7568:117;;;7604:79;;:::i;:::-;7568:117;7717:80;7789:7;7780:6;7769:9;7765:22;7717:80;:::i;:::-;7699:98;;;;7495:312;7846:2;7872:50;7914:7;7905:6;7894:9;7890:22;7872:50;:::i;:::-;7862:60;;7817:115;7241:698;;;;;:::o;7959:565::-;8029:8;8039:6;8089:3;8082:4;8074:6;8070:17;8066:27;8056:122;;8097:79;;:::i;:::-;8056:122;8210:6;8197:20;8187:30;;8240:18;8232:6;8229:30;8226:117;;;8262:79;;:::i;:::-;8226:117;8376:4;8368:6;8364:17;8352:29;;8430:3;8422:4;8414:6;8410:17;8400:8;8396:32;8393:41;8390:128;;;8437:79;;:::i;:::-;8390:128;7959:565;;;;;:::o;8547:568::-;8620:8;8630:6;8680:3;8673:4;8665:6;8661:17;8657:27;8647:122;;8688:79;;:::i;:::-;8647:122;8801:6;8788:20;8778:30;;8831:18;8823:6;8820:30;8817:117;;;8853:79;;:::i;:::-;8817:117;8967:4;8959:6;8955:17;8943:29;;9021:3;9013:4;9005:6;9001:17;8991:8;8987:32;8984:41;8981:128;;;9028:79;;:::i;:::-;8981:128;8547:568;;;;;:::o;9121:928::-;9240:6;9248;9256;9264;9313:2;9301:9;9292:7;9288:23;9284:32;9281:119;;;9319:79;;:::i;:::-;9281:119;9467:1;9456:9;9452:17;9439:31;9497:18;9489:6;9486:30;9483:117;;;9519:79;;:::i;:::-;9483:117;9632:77;9701:7;9692:6;9681:9;9677:22;9632:77;:::i;:::-;9614:95;;;;9410:309;9786:2;9775:9;9771:18;9758:32;9817:18;9809:6;9806:30;9803:117;;;9839:79;;:::i;:::-;9803:117;9952:80;10024:7;10015:6;10004:9;10000:22;9952:80;:::i;:::-;9934:98;;;;9729:313;9121:928;;;;;;;:::o;10055:474::-;10123:6;10131;10180:2;10168:9;10159:7;10155:23;10151:32;10148:119;;;10186:79;;:::i;:::-;10148:119;10306:1;10331:53;10376:7;10367:6;10356:9;10352:22;10331:53;:::i;:::-;10321:63;;10277:117;10433:2;10459:53;10504:7;10495:6;10484:9;10480:22;10459:53;:::i;:::-;10449:63;;10404:118;10055:474;;;;;:::o;10535:329::-;10594:6;10643:2;10631:9;10622:7;10618:23;10614:32;10611:119;;;10649:79;;:::i;:::-;10611:119;10769:1;10794:53;10839:7;10830:6;10819:9;10815:22;10794:53;:::i;:::-;10784:63;;10740:117;10535:329;;;;:::o;10870:174::-;11010:26;11006:1;10998:6;10994:14;10987:50;10870:174;:::o;11050:366::-;11192:3;11213:67;11277:2;11272:3;11213:67;:::i;:::-;11206:74;;11289:93;11378:3;11289:93;:::i;:::-;11407:2;11402:3;11398:12;11391:19;;11050:366;;;:::o;11422:419::-;11588:4;11626:2;11615:9;11611:18;11603:26;;11675:9;11669:4;11665:20;11661:1;11650:9;11646:17;11639:47;11703:131;11829:4;11703:131;:::i;:::-;11695:139;;11422:419;;;:::o;11847:227::-;11987:34;11983:1;11975:6;11971:14;11964:58;12056:10;12051:2;12043:6;12039:15;12032:35;11847:227;:::o;12080:366::-;12222:3;12243:67;12307:2;12302:3;12243:67;:::i;:::-;12236:74;;12319:93;12408:3;12319:93;:::i;:::-;12437:2;12432:3;12428:12;12421:19;;12080:366;;;:::o;12452:419::-;12618:4;12656:2;12645:9;12641:18;12633:26;;12705:9;12699:4;12695:20;12691:1;12680:9;12676:17;12669:47;12733:131;12859:4;12733:131;:::i;:::-;12725:139;;12452:419;;;:::o;12877:180::-;12925:77;12922:1;12915:88;13022:4;13019:1;13012:15;13046:4;13043:1;13036:15;13063:194;13103:4;13123:20;13141:1;13123:20;:::i;:::-;13118:25;;13157:20;13175:1;13157:20;:::i;:::-;13152:25;;13201:1;13198;13194:9;13186:17;;13225:1;13219:4;13216:11;13213:37;;;13230:18;;:::i;:::-;13213:37;13063:194;;;;:::o;13263:182::-;13403:34;13399:1;13391:6;13387:14;13380:58;13263:182;:::o;13451:366::-;13593:3;13614:67;13678:2;13673:3;13614:67;:::i;:::-;13607:74;;13690:93;13779:3;13690:93;:::i;:::-;13808:2;13803:3;13799:12;13792:19;;13451:366;;;:::o;13823:419::-;13989:4;14027:2;14016:9;14012:18;14004:26;;14076:9;14070:4;14066:20;14062:1;14051:9;14047:17;14040:47;14104:131;14230:4;14104:131;:::i;:::-;14096:139;;13823:419;;;:::o;14248:180::-;14296:77;14293:1;14286:88;14393:4;14390:1;14383:15;14417:4;14414:1;14407:15;14434:233;14473:3;14496:24;14514:5;14496:24;:::i;:::-;14487:33;;14542:66;14535:5;14532:77;14529:103;;14612:18;;:::i;:::-;14529:103;14659:1;14652:5;14648:13;14641:20;;14434:233;;;:::o;14673:191::-;14713:3;14732:20;14750:1;14732:20;:::i;:::-;14727:25;;14766:20;14784:1;14766:20;:::i;:::-;14761:25;;14809:1;14806;14802:9;14795:16;;14830:3;14827:1;14824:10;14821:36;;;14837:18;;:::i;:::-;14821:36;14673:191;;;;:::o;14870:180::-;14918:77;14915:1;14908:88;15015:4;15012:1;15005:15;15039:4;15036:1;15029:15;15056:162;15196:14;15192:1;15184:6;15180:14;15173:38;15056:162;:::o;15224:366::-;15366:3;15387:67;15451:2;15446:3;15387:67;:::i;:::-;15380:74;;15463:93;15552:3;15463:93;:::i;:::-;15581:2;15576:3;15572:12;15565:19;;15224:366;;;:::o;15596:419::-;15762:4;15800:2;15789:9;15785:18;15777:26;;15849:9;15843:4;15839:20;15835:1;15824:9;15820:17;15813:47;15877:131;16003:4;15877:131;:::i;:::-;15869:139;;15596:419;;;:::o;16021:410::-;16061:7;16084:20;16102:1;16084:20;:::i;:::-;16079:25;;16118:20;16136:1;16118:20;:::i;:::-;16113:25;;16173:1;16170;16166:9;16195:30;16213:11;16195:30;:::i;:::-;16184:41;;16374:1;16365:7;16361:15;16358:1;16355:22;16335:1;16328:9;16308:83;16285:139;;16404:18;;:::i;:::-;16285:139;16069:362;16021:410;;;;:::o;16437:180::-;16485:77;16482:1;16475:88;16582:4;16579:1;16572:15;16606:4;16603:1;16596:15;16623:185;16663:1;16680:20;16698:1;16680:20;:::i;:::-;16675:25;;16714:20;16732:1;16714:20;:::i;:::-;16709:25;;16753:1;16743:35;;16758:18;;:::i;:::-;16743:35;16800:1;16797;16793:9;16788:14;;16623:185;;;;:::o;16814:223::-;16954:34;16950:1;16942:6;16938:14;16931:58;17023:6;17018:2;17010:6;17006:15;16999:31;16814:223;:::o;17043:366::-;17185:3;17206:67;17270:2;17265:3;17206:67;:::i;:::-;17199:74;;17282:93;17371:3;17282:93;:::i;:::-;17400:2;17395:3;17391:12;17384:19;;17043:366;;;:::o;17415:419::-;17581:4;17619:2;17608:9;17604:18;17596:26;;17668:9;17662:4;17658:20;17654:1;17643:9;17639:17;17632:47;17696:131;17822:4;17696:131;:::i;:::-;17688:139;;17415:419;;;:::o;17840:221::-;17980:34;17976:1;17968:6;17964:14;17957:58;18049:4;18044:2;18036:6;18032:15;18025:29;17840:221;:::o;18067:366::-;18209:3;18230:67;18294:2;18289:3;18230:67;:::i;:::-;18223:74;;18306:93;18395:3;18306:93;:::i;:::-;18424:2;18419:3;18415:12;18408:19;;18067:366;;;:::o;18439:419::-;18605:4;18643:2;18632:9;18628:18;18620:26;;18692:9;18686:4;18682:20;18678:1;18667:9;18663:17;18656:47;18720:131;18846:4;18720:131;:::i;:::-;18712:139;;18439:419;;;:::o;18864:224::-;19004:34;19000:1;18992:6;18988:14;18981:58;19073:7;19068:2;19060:6;19056:15;19049:32;18864:224;:::o;19094:366::-;19236:3;19257:67;19321:2;19316:3;19257:67;:::i;:::-;19250:74;;19333:93;19422:3;19333:93;:::i;:::-;19451:2;19446:3;19442:12;19435:19;;19094:366;;;:::o;19466:419::-;19632:4;19670:2;19659:9;19655:18;19647:26;;19719:9;19713:4;19709:20;19705:1;19694:9;19690:17;19683:47;19747:131;19873:4;19747:131;:::i;:::-;19739:139;;19466:419;;;:::o;19891:222::-;20031:34;20027:1;20019:6;20015:14;20008:58;20100:5;20095:2;20087:6;20083:15;20076:30;19891:222;:::o;20119:366::-;20261:3;20282:67;20346:2;20341:3;20282:67;:::i;:::-;20275:74;;20358:93;20447:3;20358:93;:::i;:::-;20476:2;20471:3;20467:12;20460:19;;20119:366;;;:::o;20491:419::-;20657:4;20695:2;20684:9;20680:18;20672:26;;20744:9;20738:4;20734:20;20730:1;20719:9;20715:17;20708:47;20772:131;20898:4;20772:131;:::i;:::-;20764:139;;20491:419;;;:::o;20916:228::-;21056:34;21052:1;21044:6;21040:14;21033:58;21125:11;21120:2;21112:6;21108:15;21101:36;20916:228;:::o;21150:366::-;21292:3;21313:67;21377:2;21372:3;21313:67;:::i;:::-;21306:74;;21389:93;21478:3;21389:93;:::i;:::-;21507:2;21502:3;21498:12;21491:19;;21150:366;;;:::o;21522:419::-;21688:4;21726:2;21715:9;21711:18;21703:26;;21775:9;21769:4;21765:20;21761:1;21750:9;21746:17;21739:47;21803:131;21929:4;21803:131;:::i;:::-;21795:139;;21522:419;;;:::o;21947:221::-;22087:34;22083:1;22075:6;22071:14;22064:58;22156:4;22151:2;22143:6;22139:15;22132:29;21947:221;:::o;22174:366::-;22316:3;22337:67;22401:2;22396:3;22337:67;:::i;:::-;22330:74;;22413:93;22502:3;22413:93;:::i;:::-;22531:2;22526:3;22522:12;22515:19;;22174:366;;;:::o;22546:419::-;22712:4;22750:2;22739:9;22735:18;22727:26;;22799:9;22793:4;22789:20;22785:1;22774:9;22770:17;22763:47;22827:131;22953:4;22827:131;:::i;:::-;22819:139;;22546:419;;;:::o;22971:179::-;23111:31;23107:1;23099:6;23095:14;23088:55;22971:179;:::o;23156:366::-;23298:3;23319:67;23383:2;23378:3;23319:67;:::i;:::-;23312:74;;23395:93;23484:3;23395:93;:::i;:::-;23513:2;23508:3;23504:12;23497:19;;23156:366;;;:::o;23528:419::-;23694:4;23732:2;23721:9;23717:18;23709:26;;23781:9;23775:4;23771:20;23767:1;23756:9;23752:17;23745:47;23809:131;23935:4;23809:131;:::i;:::-;23801:139;;23528:419;;;:::o;23953:180::-;24001:77;23998:1;23991:88;24098:4;24095:1;24088:15;24122:4;24119:1;24112:15;24139:85;24184:7;24213:5;24202:16;;24139:85;;;:::o;24230:60::-;24258:3;24279:5;24272:12;;24230:60;;;:::o;24296:158::-;24354:9;24387:61;24405:42;24414:32;24440:5;24414:32;:::i;:::-;24405:42;:::i;:::-;24387:61;:::i;:::-;24374:74;;24296:158;;;:::o;24460:147::-;24555:45;24594:5;24555:45;:::i;:::-;24550:3;24543:58;24460:147;;:::o;24613:114::-;24680:6;24714:5;24708:12;24698:22;;24613:114;;;:::o;24733:184::-;24832:11;24866:6;24861:3;24854:19;24906:4;24901:3;24897:14;24882:29;;24733:184;;;;:::o;24923:132::-;24990:4;25013:3;25005:11;;25043:4;25038:3;25034:14;25026:22;;24923:132;;;:::o;25061:108::-;25138:24;25156:5;25138:24;:::i;:::-;25133:3;25126:37;25061:108;;:::o;25175:179::-;25244:10;25265:46;25307:3;25299:6;25265:46;:::i;:::-;25343:4;25338:3;25334:14;25320:28;;25175:179;;;;:::o;25360:113::-;25430:4;25462;25457:3;25453:14;25445:22;;25360:113;;;:::o;25509:732::-;25628:3;25657:54;25705:5;25657:54;:::i;:::-;25727:86;25806:6;25801:3;25727:86;:::i;:::-;25720:93;;25837:56;25887:5;25837:56;:::i;:::-;25916:7;25947:1;25932:284;25957:6;25954:1;25951:13;25932:284;;;26033:6;26027:13;26060:63;26119:3;26104:13;26060:63;:::i;:::-;26053:70;;26146:60;26199:6;26146:60;:::i;:::-;26136:70;;25992:224;25979:1;25976;25972:9;25967:14;;25932:284;;;25936:14;26232:3;26225:10;;25633:608;;;25509:732;;;;:::o;26247:831::-;26510:4;26548:3;26537:9;26533:19;26525:27;;26562:71;26630:1;26619:9;26615:17;26606:6;26562:71;:::i;:::-;26643:80;26719:2;26708:9;26704:18;26695:6;26643:80;:::i;:::-;26770:9;26764:4;26760:20;26755:2;26744:9;26740:18;26733:48;26798:108;26901:4;26892:6;26798:108;:::i;:::-;26790:116;;26916:72;26984:2;26973:9;26969:18;26960:6;26916:72;:::i;:::-;26998:73;27066:3;27055:9;27051:19;27042:6;26998:73;:::i;:::-;26247:831;;;;;;;;:::o

Swarm Source

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