ETH Price: $3,688.02 (+2.69%)

Token

ERC-20: Decentracat (purr)
 

Overview

Max Total Supply

10,000,000,000 purr

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
265.195835553 purr

Value
$0.00
0x3df4f4223d168dfe544154ec799c8eca8724280d
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:
Decentracat

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-15
*/

// https://www.decentracat.com/


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.6;

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

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

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 Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

}  

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

contract Decentracat is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e10 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Decentracat";
    string private constant _symbol = "purr";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x42987B091f7de2Af63f7184F7fb3fEB2A52A5259);
        _feeAddrWallet2 = payable(0x42987B091f7de2Af63f7184F7fb3fEB2A52A5259);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _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 pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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");
        _feeAddr1 = 2;
        _feeAddr2 = 3;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 3;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 2e8 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e10 * 10**9;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052678ac7230489e800006000196200001c919062000524565b6000196200002b9190620004df565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010553480156200009857600080fd5b506000620000ab6200048060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507342987b091f7de2af63f7184f7fb3feb2a52a5259600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507342987b091f7de2af63f7184f7fb3feb2a52a5259600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200020a6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200025e6200048860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040b6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620004729190620004c2565b60405180910390a3620005ba565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004bc816200051a565b82525050565b6000602082019050620004d96000830184620004b1565b92915050565b6000620004ec826200051a565b9150620004f9836200051a565b9250828210156200050f576200050e6200055c565b5b828203905092915050565b6000819050919050565b600062000531826200051a565b91506200053e836200051a565b9250826200055157620005506200058b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612fd980620005ca6000396000f3fe6080604052600436106100f75760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd8014610325578063c9567bf91461033c578063dd62ed3e14610353578063ff87260214610390576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d35780635932ead1146101fe5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b60405161012591906127ca565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061238d565b6103e4565b60405161016291906127af565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061292c565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061233a565b610412565b6040516101ca91906127af565b60405180910390f35b3480156101df57600080fd5b506101e86104eb565b6040516101f591906129a1565b60405180910390f35b34801561020a57600080fd5b50610225600480360381019061022091906123cd565b6104f4565b005b34801561023357600080fd5b5061023c6105a6565b005b34801561024a57600080fd5b50610265600480360381019061026091906122a0565b610618565b604051610272919061292c565b60405180910390f35b34801561028757600080fd5b50610290610669565b005b34801561029e57600080fd5b506102a76107bc565b6040516102b491906126e1565b60405180910390f35b3480156102c957600080fd5b506102d26107e5565b6040516102df91906127ca565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061238d565b610822565b60405161031c91906127af565b60405180910390f35b34801561033157600080fd5b5061033a610840565b005b34801561034857600080fd5b506103516108ba565b005b34801561035f57600080fd5b5061037a600480360381019061037591906122fa565b610e15565b604051610387919061292c565b60405180910390f35b34801561039c57600080fd5b506103a5610e9c565b005b60606040518060400160405280600b81526020017f446563656e747261636174000000000000000000000000000000000000000000815250905090565b60006103f86103f1610f42565b8484610f4a565b6001905092915050565b6000678ac7230489e80000905090565b600061041f848484611115565b6104e08461042b610f42565b6104db85604051806060016040528060288152602001612f7c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610491610f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9092919063ffffffff16565b610f4a565b600190509392505050565b60006009905090565b6104fc610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105809061288c565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105e7610f42565b73ffffffffffffffffffffffffffffffffffffffff161461060757600080fd5b60004790506106158161177e565b50565b6000610662600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611879565b9050919050565b610671610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061288c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f7075727200000000000000000000000000000000000000000000000000000000815250905090565b600061083661082f610f42565b8484611115565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610881610f42565b73ffffffffffffffffffffffffffffffffffffffff16146108a157600080fd5b60006108ac30610618565b90506108b7816118e7565b50565b6108c2610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061288c565b60405180910390fd5b600f60149054906101000a900460ff161561099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061290c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a2e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610f4a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac91906122cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0e57600080fd5b505afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906122cd565b6040518363ffffffff1660e01b8152600401610b639291906126fc565b602060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb591906122cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3e30610618565b600080610c496107bc565b426040518863ffffffff1660e01b8152600401610c6b9695949392919061274e565b6060604051808303818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cbd9190612427565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506702c68af0bb1400006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbf929190612725565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906123fa565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ea4610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061288c565b60405180910390fd5b678ac7230489e80000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb1906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061282c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611108919061292c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906128cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906127ec565b60405180910390fd5b60008111611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906128ac565b60405180910390fd5b6002600a819055506003600b819055506112506107bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112be575061128e6107bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561170a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137057600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114895750600f60179054906101000a900460ff165b156115395760105481111561149d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114e857600080fd5b601e426114f59190612a11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611650576002600a819055506003600b819055505b600061165b30610618565b9050600f60159054906101000a900460ff161580156116c85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116e05750600f60169054906101000a900460ff165b15611708576116ee816118e7565b60004790506000811115611706576117054761177e565b5b505b505b611715838383611b6f565b505050565b6000838311158290611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175991906127ca565b60405180910390fd5b50600083856117719190612af2565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117ce600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156117f9573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184a600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611875573d6000803e3d6000fd5b5050565b60006008548211156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061280c565b60405180910390fd5b60006118ca611bc9565b90506118df8184611b7f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191f5761191e612c4d565b5b60405190808252806020026020018201604052801561194d5781602001602082028036833780820191505090505b509050308160008151811061196557611964612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906122cd565b81600181518110611a5357611a52612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aba30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f4a565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b1e959493929190612947565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b7a838383611bf4565b505050565b6000611bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dbf565b905092915050565b6000806000611bd6611e22565b91509150611bed8183611b7f90919063ffffffff16565b9250505090565b600080600080600080611c0687611e81565b955095509550955095509550611c6486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4581611f91565b611d4f848361204e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dac919061292c565b60405180910390a3505050505050505050565b60008083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd91906127ca565b60405180910390fd5b5060008385611e159190612a67565b9050809150509392505050565b600080600060085490506000678ac7230489e800009050611e56678ac7230489e80000600854611b7f90919063ffffffff16565b821015611e7457600854678ac7230489e80000935093505050611e7d565b81819350935050505b9091565b6000806000806000806000806000611e9e8a600a54600b54612088565b9250925092506000611eae611bc9565b90506000806000611ec18e87878761211e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b905092915050565b6000808284611f429190612a11565b905083811015611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061284c565b60405180910390fd5b8091505092915050565b6000611f9b611bc9565b90506000611fb282846121a790919063ffffffff16565b905061200681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61206382600854611ee990919063ffffffff16565b60088190555061207e81600954611f3390919063ffffffff16565b6009819055505050565b6000806000806120b460646120a6888a6121a790919063ffffffff16565b611b7f90919063ffffffff16565b905060006120de60646120d0888b6121a790919063ffffffff16565b611b7f90919063ffffffff16565b90506000612107826120f9858c611ee990919063ffffffff16565b611ee990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061213785896121a790919063ffffffff16565b9050600061214e86896121a790919063ffffffff16565b9050600061216587896121a790919063ffffffff16565b9050600061218e826121808587611ee990919063ffffffff16565b611ee990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121ba576000905061221c565b600082846121c89190612a98565b90508284826121d79190612a67565b14612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061286c565b60405180910390fd5b809150505b92915050565b60008135905061223181612f36565b92915050565b60008151905061224681612f36565b92915050565b60008135905061225b81612f4d565b92915050565b60008151905061227081612f4d565b92915050565b60008135905061228581612f64565b92915050565b60008151905061229a81612f64565b92915050565b6000602082840312156122b6576122b5612c7c565b5b60006122c484828501612222565b91505092915050565b6000602082840312156122e3576122e2612c7c565b5b60006122f184828501612237565b91505092915050565b6000806040838503121561231157612310612c7c565b5b600061231f85828601612222565b925050602061233085828601612222565b9150509250929050565b60008060006060848603121561235357612352612c7c565b5b600061236186828701612222565b935050602061237286828701612222565b925050604061238386828701612276565b9150509250925092565b600080604083850312156123a4576123a3612c7c565b5b60006123b285828601612222565b92505060206123c385828601612276565b9150509250929050565b6000602082840312156123e3576123e2612c7c565b5b60006123f18482850161224c565b91505092915050565b6000602082840312156124105761240f612c7c565b5b600061241e84828501612261565b91505092915050565b6000806000606084860312156124405761243f612c7c565b5b600061244e8682870161228b565b935050602061245f8682870161228b565b92505060406124708682870161228b565b9150509250925092565b60006124868383612492565b60208301905092915050565b61249b81612b26565b82525050565b6124aa81612b26565b82525050565b60006124bb826129cc565b6124c581856129ef565b93506124d0836129bc565b8060005b838110156125015781516124e8888261247a565b97506124f3836129e2565b9250506001810190506124d4565b5085935050505092915050565b61251781612b38565b82525050565b61252681612b7b565b82525050565b6000612537826129d7565b6125418185612a00565b9350612551818560208601612b8d565b61255a81612c81565b840191505092915050565b6000612572602383612a00565b915061257d82612c92565b604082019050919050565b6000612595602a83612a00565b91506125a082612ce1565b604082019050919050565b60006125b8602283612a00565b91506125c382612d30565b604082019050919050565b60006125db601b83612a00565b91506125e682612d7f565b602082019050919050565b60006125fe602183612a00565b915061260982612da8565b604082019050919050565b6000612621602083612a00565b915061262c82612df7565b602082019050919050565b6000612644602983612a00565b915061264f82612e20565b604082019050919050565b6000612667602583612a00565b915061267282612e6f565b604082019050919050565b600061268a602483612a00565b915061269582612ebe565b604082019050919050565b60006126ad601783612a00565b91506126b882612f0d565b602082019050919050565b6126cc81612b64565b82525050565b6126db81612b6e565b82525050565b60006020820190506126f660008301846124a1565b92915050565b600060408201905061271160008301856124a1565b61271e60208301846124a1565b9392505050565b600060408201905061273a60008301856124a1565b61274760208301846126c3565b9392505050565b600060c08201905061276360008301896124a1565b61277060208301886126c3565b61277d604083018761251d565b61278a606083018661251d565b61279760808301856124a1565b6127a460a08301846126c3565b979650505050505050565b60006020820190506127c4600083018461250e565b92915050565b600060208201905081810360008301526127e4818461252c565b905092915050565b6000602082019050818103600083015261280581612565565b9050919050565b6000602082019050818103600083015261282581612588565b9050919050565b60006020820190508181036000830152612845816125ab565b9050919050565b60006020820190508181036000830152612865816125ce565b9050919050565b60006020820190508181036000830152612885816125f1565b9050919050565b600060208201905081810360008301526128a581612614565b9050919050565b600060208201905081810360008301526128c581612637565b9050919050565b600060208201905081810360008301526128e58161265a565b9050919050565b600060208201905081810360008301526129058161267d565b9050919050565b60006020820190508181036000830152612925816126a0565b9050919050565b600060208201905061294160008301846126c3565b92915050565b600060a08201905061295c60008301886126c3565b612969602083018761251d565b818103604083015261297b81866124b0565b905061298a60608301856124a1565b61299760808301846126c3565b9695505050505050565b60006020820190506129b660008301846126d2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a1c82612b64565b9150612a2783612b64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a5c57612a5b612bc0565b5b828201905092915050565b6000612a7282612b64565b9150612a7d83612b64565b925082612a8d57612a8c612bef565b5b828204905092915050565b6000612aa382612b64565b9150612aae83612b64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae757612ae6612bc0565b5b828202905092915050565b6000612afd82612b64565b9150612b0883612b64565b925082821015612b1b57612b1a612bc0565b5b828203905092915050565b6000612b3182612b44565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b8682612b64565b9050919050565b60005b83811015612bab578082015181840152602081019050612b90565b83811115612bba576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f3f81612b26565b8114612f4a57600080fd5b50565b612f5681612b38565b8114612f6157600080fd5b50565b612f6d81612b64565b8114612f7857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c3bd5dea52e5464bbb265aa16b458bf11ae765d78bb74cb59d2f1292405b677264736f6c63430008060033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd8014610325578063c9567bf91461033c578063dd62ed3e14610353578063ff87260214610390576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d35780635932ead1146101fe5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b60405161012591906127ca565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061238d565b6103e4565b60405161016291906127af565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061292c565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061233a565b610412565b6040516101ca91906127af565b60405180910390f35b3480156101df57600080fd5b506101e86104eb565b6040516101f591906129a1565b60405180910390f35b34801561020a57600080fd5b50610225600480360381019061022091906123cd565b6104f4565b005b34801561023357600080fd5b5061023c6105a6565b005b34801561024a57600080fd5b50610265600480360381019061026091906122a0565b610618565b604051610272919061292c565b60405180910390f35b34801561028757600080fd5b50610290610669565b005b34801561029e57600080fd5b506102a76107bc565b6040516102b491906126e1565b60405180910390f35b3480156102c957600080fd5b506102d26107e5565b6040516102df91906127ca565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061238d565b610822565b60405161031c91906127af565b60405180910390f35b34801561033157600080fd5b5061033a610840565b005b34801561034857600080fd5b506103516108ba565b005b34801561035f57600080fd5b5061037a600480360381019061037591906122fa565b610e15565b604051610387919061292c565b60405180910390f35b34801561039c57600080fd5b506103a5610e9c565b005b60606040518060400160405280600b81526020017f446563656e747261636174000000000000000000000000000000000000000000815250905090565b60006103f86103f1610f42565b8484610f4a565b6001905092915050565b6000678ac7230489e80000905090565b600061041f848484611115565b6104e08461042b610f42565b6104db85604051806060016040528060288152602001612f7c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610491610f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9092919063ffffffff16565b610f4a565b600190509392505050565b60006009905090565b6104fc610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105809061288c565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105e7610f42565b73ffffffffffffffffffffffffffffffffffffffff161461060757600080fd5b60004790506106158161177e565b50565b6000610662600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611879565b9050919050565b610671610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061288c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f7075727200000000000000000000000000000000000000000000000000000000815250905090565b600061083661082f610f42565b8484611115565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610881610f42565b73ffffffffffffffffffffffffffffffffffffffff16146108a157600080fd5b60006108ac30610618565b90506108b7816118e7565b50565b6108c2610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061288c565b60405180910390fd5b600f60149054906101000a900460ff161561099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061290c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a2e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610f4a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac91906122cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0e57600080fd5b505afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906122cd565b6040518363ffffffff1660e01b8152600401610b639291906126fc565b602060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb591906122cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3e30610618565b600080610c496107bc565b426040518863ffffffff1660e01b8152600401610c6b9695949392919061274e565b6060604051808303818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cbd9190612427565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506702c68af0bb1400006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbf929190612725565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906123fa565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ea4610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061288c565b60405180910390fd5b678ac7230489e80000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb1906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061282c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611108919061292c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906128cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906127ec565b60405180910390fd5b60008111611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906128ac565b60405180910390fd5b6002600a819055506003600b819055506112506107bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112be575061128e6107bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561170a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137057600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114895750600f60179054906101000a900460ff165b156115395760105481111561149d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114e857600080fd5b601e426114f59190612a11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611650576002600a819055506003600b819055505b600061165b30610618565b9050600f60159054906101000a900460ff161580156116c85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116e05750600f60169054906101000a900460ff165b15611708576116ee816118e7565b60004790506000811115611706576117054761177e565b5b505b505b611715838383611b6f565b505050565b6000838311158290611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175991906127ca565b60405180910390fd5b50600083856117719190612af2565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117ce600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156117f9573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184a600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611875573d6000803e3d6000fd5b5050565b60006008548211156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061280c565b60405180910390fd5b60006118ca611bc9565b90506118df8184611b7f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191f5761191e612c4d565b5b60405190808252806020026020018201604052801561194d5781602001602082028036833780820191505090505b509050308160008151811061196557611964612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906122cd565b81600181518110611a5357611a52612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aba30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f4a565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b1e959493929190612947565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b7a838383611bf4565b505050565b6000611bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dbf565b905092915050565b6000806000611bd6611e22565b91509150611bed8183611b7f90919063ffffffff16565b9250505090565b600080600080600080611c0687611e81565b955095509550955095509550611c6486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4581611f91565b611d4f848361204e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dac919061292c565b60405180910390a3505050505050505050565b60008083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd91906127ca565b60405180910390fd5b5060008385611e159190612a67565b9050809150509392505050565b600080600060085490506000678ac7230489e800009050611e56678ac7230489e80000600854611b7f90919063ffffffff16565b821015611e7457600854678ac7230489e80000935093505050611e7d565b81819350935050505b9091565b6000806000806000806000806000611e9e8a600a54600b54612088565b9250925092506000611eae611bc9565b90506000806000611ec18e87878761211e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b905092915050565b6000808284611f429190612a11565b905083811015611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061284c565b60405180910390fd5b8091505092915050565b6000611f9b611bc9565b90506000611fb282846121a790919063ffffffff16565b905061200681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61206382600854611ee990919063ffffffff16565b60088190555061207e81600954611f3390919063ffffffff16565b6009819055505050565b6000806000806120b460646120a6888a6121a790919063ffffffff16565b611b7f90919063ffffffff16565b905060006120de60646120d0888b6121a790919063ffffffff16565b611b7f90919063ffffffff16565b90506000612107826120f9858c611ee990919063ffffffff16565b611ee990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061213785896121a790919063ffffffff16565b9050600061214e86896121a790919063ffffffff16565b9050600061216587896121a790919063ffffffff16565b9050600061218e826121808587611ee990919063ffffffff16565b611ee990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121ba576000905061221c565b600082846121c89190612a98565b90508284826121d79190612a67565b14612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061286c565b60405180910390fd5b809150505b92915050565b60008135905061223181612f36565b92915050565b60008151905061224681612f36565b92915050565b60008135905061225b81612f4d565b92915050565b60008151905061227081612f4d565b92915050565b60008135905061228581612f64565b92915050565b60008151905061229a81612f64565b92915050565b6000602082840312156122b6576122b5612c7c565b5b60006122c484828501612222565b91505092915050565b6000602082840312156122e3576122e2612c7c565b5b60006122f184828501612237565b91505092915050565b6000806040838503121561231157612310612c7c565b5b600061231f85828601612222565b925050602061233085828601612222565b9150509250929050565b60008060006060848603121561235357612352612c7c565b5b600061236186828701612222565b935050602061237286828701612222565b925050604061238386828701612276565b9150509250925092565b600080604083850312156123a4576123a3612c7c565b5b60006123b285828601612222565b92505060206123c385828601612276565b9150509250929050565b6000602082840312156123e3576123e2612c7c565b5b60006123f18482850161224c565b91505092915050565b6000602082840312156124105761240f612c7c565b5b600061241e84828501612261565b91505092915050565b6000806000606084860312156124405761243f612c7c565b5b600061244e8682870161228b565b935050602061245f8682870161228b565b92505060406124708682870161228b565b9150509250925092565b60006124868383612492565b60208301905092915050565b61249b81612b26565b82525050565b6124aa81612b26565b82525050565b60006124bb826129cc565b6124c581856129ef565b93506124d0836129bc565b8060005b838110156125015781516124e8888261247a565b97506124f3836129e2565b9250506001810190506124d4565b5085935050505092915050565b61251781612b38565b82525050565b61252681612b7b565b82525050565b6000612537826129d7565b6125418185612a00565b9350612551818560208601612b8d565b61255a81612c81565b840191505092915050565b6000612572602383612a00565b915061257d82612c92565b604082019050919050565b6000612595602a83612a00565b91506125a082612ce1565b604082019050919050565b60006125b8602283612a00565b91506125c382612d30565b604082019050919050565b60006125db601b83612a00565b91506125e682612d7f565b602082019050919050565b60006125fe602183612a00565b915061260982612da8565b604082019050919050565b6000612621602083612a00565b915061262c82612df7565b602082019050919050565b6000612644602983612a00565b915061264f82612e20565b604082019050919050565b6000612667602583612a00565b915061267282612e6f565b604082019050919050565b600061268a602483612a00565b915061269582612ebe565b604082019050919050565b60006126ad601783612a00565b91506126b882612f0d565b602082019050919050565b6126cc81612b64565b82525050565b6126db81612b6e565b82525050565b60006020820190506126f660008301846124a1565b92915050565b600060408201905061271160008301856124a1565b61271e60208301846124a1565b9392505050565b600060408201905061273a60008301856124a1565b61274760208301846126c3565b9392505050565b600060c08201905061276360008301896124a1565b61277060208301886126c3565b61277d604083018761251d565b61278a606083018661251d565b61279760808301856124a1565b6127a460a08301846126c3565b979650505050505050565b60006020820190506127c4600083018461250e565b92915050565b600060208201905081810360008301526127e4818461252c565b905092915050565b6000602082019050818103600083015261280581612565565b9050919050565b6000602082019050818103600083015261282581612588565b9050919050565b60006020820190508181036000830152612845816125ab565b9050919050565b60006020820190508181036000830152612865816125ce565b9050919050565b60006020820190508181036000830152612885816125f1565b9050919050565b600060208201905081810360008301526128a581612614565b9050919050565b600060208201905081810360008301526128c581612637565b9050919050565b600060208201905081810360008301526128e58161265a565b9050919050565b600060208201905081810360008301526129058161267d565b9050919050565b60006020820190508181036000830152612925816126a0565b9050919050565b600060208201905061294160008301846126c3565b92915050565b600060a08201905061295c60008301886126c3565b612969602083018761251d565b818103604083015261297b81866124b0565b905061298a60608301856124a1565b61299760808301846126c3565b9695505050505050565b60006020820190506129b660008301846126d2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a1c82612b64565b9150612a2783612b64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a5c57612a5b612bc0565b5b828201905092915050565b6000612a7282612b64565b9150612a7d83612b64565b925082612a8d57612a8c612bef565b5b828204905092915050565b6000612aa382612b64565b9150612aae83612b64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae757612ae6612bc0565b5b828202905092915050565b6000612afd82612b64565b9150612b0883612b64565b925082821015612b1b57612b1a612bc0565b5b828203905092915050565b6000612b3182612b44565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b8682612b64565b9050919050565b60005b83811015612bab578082015181840152602081019050612b90565b83811115612bba576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f3f81612b26565b8114612f4a57600080fd5b50565b612f5681612b38565b8114612f6157600080fd5b50565b612f6d81612b64565b8114612f7857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c3bd5dea52e5464bbb265aa16b458bf11ae765d78bb74cb59d2f1292405b677264736f6c63430008060033

Deployed Bytecode Sourcemap

3556:10177:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6294:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5719:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6463:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5628:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6784:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11837:194;;;;;;;;;;;;;:::i;:::-;;5822:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2635:148;;;;;;;;;;;;;:::i;:::-;;2421:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5533:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11630:195;;;;;;;;;;;;;:::i;:::-;;9634:808;;;;;;;;;;;;;:::i;:::-;;6143:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10454:94;;;;;;;;;;;;;:::i;:::-;;5442:83;5479:13;5512:5;;;;;;;;;;;;;;;;;5505:12;;5442:83;:::o;6294:161::-;6369:4;6386:39;6395:12;:10;:12::i;:::-;6409:7;6418:6;6386:8;:39::i;:::-;6443:4;6436:11;;6294:161;;;;:::o;5719:95::-;5772:7;4060:12;5792:14;;5719:95;:::o;6463:313::-;6561:4;6578:36;6588:6;6596:9;6607:6;6578:9;:36::i;:::-;6625:121;6634:6;6642:12;:10;:12::i;:::-;6656:89;6694:6;6656:89;;;;;;;;;;;;;;;;;:11;:19;6668:6;6656:19;;;;;;;;;;;;;;;:33;6676:12;:10;:12::i;:::-;6656:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6625:8;:121::i;:::-;6764:4;6757:11;;6463:313;;;;;:::o;5628:83::-;5669:5;4470:1;5687:16;;5628:83;:::o;6784:103::-;2558:12;:10;:12::i;:::-;2548:22;;:6;;;;;;;;;;:22;;;2540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6874:5:::1;6856:15;;:23;;;;;;;;;;;;;;;;;;6784:103:::0;:::o;11837:194::-;11903:15;;;;;;;;;;;11887:31;;:12;:10;:12::i;:::-;:31;;;11879:40;;;;;;11930:26;11959:21;11930:50;;11991:32;12004:18;11991:12;:32::i;:::-;11868:163;11837:194::o;5822:138::-;5888:7;5915:37;5935:7;:16;5943:7;5935:16;;;;;;;;;;;;;;;;5915:19;:37::i;:::-;5908:44;;5822:138;;;:::o;2635:148::-;2558:12;:10;:12::i;:::-;2548:22;;:6;;;;;;;;;;:22;;;2540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2742:1:::1;2705:40;;2726:6;::::0;::::1;;;;;;;;2705:40;;;;;;;;;;;;2773:1;2756:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2635:148::o:0;2421:79::-;2459:7;2486:6;;;;;;;;;;;2479:13;;2421:79;:::o;5533:87::-;5572:13;5605:7;;;;;;;;;;;;;;;;;5598:14;;5533:87;:::o;5968:167::-;6046:4;6063:42;6073:12;:10;:12::i;:::-;6087:9;6098:6;6063:9;:42::i;:::-;6123:4;6116:11;;5968:167;;;;:::o;11630:195::-;11696:15;;;;;;;;;;;11680:31;;:12;:10;:12::i;:::-;:31;;;11672:40;;;;;;11723:23;11749:24;11767:4;11749:9;:24::i;:::-;11723:50;;11784:33;11801:15;11784:16;:33::i;:::-;11661:164;11630:195::o;9634:808::-;2558:12;:10;:12::i;:::-;2548:22;;:6;;;;;;;;;;:22;;;2540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9698:11:::1;;;;;;;;;;;9697:12;9689:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9747:35;9804:42;9747:100;;9876:16;9858:15;;:34;;;;;;;;;;;;;;;;;;9903:58;9920:4;9935:15;;;;;;;;;;;4060:12;9903:8;:58::i;:::-;10006:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9988:56;;;10053:4;10060:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9988:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9972:13;;:112;;;;;;;;;;;;;;;;;;10095:15;;;;;;;;;;;:31;;;10134:21;10165:4;10171:24;10189:4;10171:9;:24::i;:::-;10196:1;10198::::0;10200:7:::1;:5;:7::i;:::-;10208:15;10095:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10249:4;10235:11;;:18;;;;;;;;;;;;;;;;;;10282:4;10264:15;;:22;;;;;;;;;;;;;;;;;;10312:11;10297:12;:26;;;;10348:4;10334:11;;:18;;;;;;;;;;;;;;;;;;10370:13;;;;;;;;;;;10363:29;;;10401:15;;;;;;;;;;;10419:14;10363:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9678:764;9634:808::o:0;6143:143::-;6224:7;6251:11;:18;6263:5;6251:18;;;;;;;;;;;;;;;:27;6270:7;6251:27;;;;;;;;;;;;;;;;6244:34;;6143:143;;;;:::o;10454:94::-;2558:12;:10;:12::i;:::-;2548:22;;:6;;;;;;;;;;:22;;;2540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10528:12:::1;10513;:27;;;;10454:94::o:0;139:98::-;192:7;219:10;212:17;;139:98;:::o;7157:335::-;7267:1;7250:19;;:5;:19;;;;7242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7348:1;7329:21;;:7;:21;;;;7321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7430:6;7400:11;:18;7412:5;7400:18;;;;;;;;;;;;;;;:27;7419:7;7400:27;;;;;;;;;;;;;;;:36;;;;7468:7;7452:32;;7461:5;7452:32;;;7477:6;7452:32;;;;;;:::i;:::-;;;;;;;;7157:335;;;:::o;7500:1461::-;7604:1;7588:18;;:4;:18;;;;7580:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7681:1;7667:16;;:2;:16;;;;7659:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7751:1;7742:6;:10;7734:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7821:1;7809:9;:13;;;;7845:1;7833:9;:13;;;;7869:7;:5;:7::i;:::-;7861:15;;:4;:15;;;;:32;;;;;7886:7;:5;:7::i;:::-;7880:13;;:2;:13;;;;7861:32;7857:1052;;;7919:4;:10;7924:4;7919:10;;;;;;;;;;;;;;;;;;;;;;;;;7918:11;:24;;;;;7934:4;:8;7939:2;7934:8;;;;;;;;;;;;;;;;;;;;;;;;;7933:9;7918:24;7910:33;;;;;;7970:13;;;;;;;;;;;7962:21;;:4;:21;;;:55;;;;;8001:15;;;;;;;;;;;7987:30;;:2;:30;;;;7962:55;:83;;;;;8023:18;:22;8042:2;8023:22;;;;;;;;;;;;;;;;;;;;;;;;;8021:24;7962:83;:102;;;;;8049:15;;;;;;;;;;;7962:102;7958:325;;;8132:12;;8122:6;:22;;8114:31;;;;;;8187:15;8172:8;:12;8181:2;8172:12;;;;;;;;;;;;;;;;:30;8164:39;;;;;;8256:10;8237:15;:30;;;;:::i;:::-;8222:8;:12;8231:2;8222:12;;;;;;;;;;;;;;;:45;;;;7958:325;8335:13;;;;;;;;;;;8329:19;;:2;:19;;;:55;;;;;8368:15;;;;;;;;;;;8352:32;;:4;:32;;;;8329:55;:85;;;;;8390:18;:24;8409:4;8390:24;;;;;;;;;;;;;;;;;;;;;;;;;8388:26;8329:85;8325:171;;;8447:1;8435:9;:13;;;;8479:1;8467:9;:13;;;;8325:171;8510:28;8541:24;8559:4;8541:9;:24::i;:::-;8510:55;;8585:6;;;;;;;;;;;8584:7;:32;;;;;8603:13;;;;;;;;;;;8595:21;;:4;:21;;;;8584:32;:47;;;;;8620:11;;;;;;;;;;;8584:47;8580:318;;;8652:38;8669:20;8652:16;:38::i;:::-;8709:26;8738:21;8709:50;;8802:1;8781:18;:22;8778:105;;;8828:35;8841:21;8828:12;:35::i;:::-;8778:105;8633:265;8580:318;7895:1014;7857:1052;8923:30;8938:4;8943:2;8946:6;8923:14;:30::i;:::-;7500:1461;;;:::o;1276:190::-;1362:7;1395:1;1390;:6;;1398:12;1382:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1422:9;1438:1;1434;:5;;;;:::i;:::-;1422:17;;1457:1;1450:8;;;1276:190;;;;;:::o;9468:154::-;9525:15;;;;;;;;;;;:24;;:39;9550:13;9561:1;9550:6;:10;;:13;;;;:::i;:::-;9525:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9575:15;;;;;;;;;;;:24;;:39;9600:13;9611:1;9600:6;:10;;:13;;;;:::i;:::-;9575:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9468:154;:::o;6895:254::-;6962:7;7001;;6990;:18;;6982:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7066:19;7089:10;:8;:10::i;:::-;7066:33;;7117:24;7129:11;7117:7;:11;;:24;;;;:::i;:::-;7110:31;;;6895:254;;;:::o;8969:483::-;4852:4;4843:6;;:13;;;;;;;;;;;;;;;;;;9047:21:::1;9085:1;9071:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9047:40;;9116:4;9098;9103:1;9098:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9142:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9132:4;9137:1;9132:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9175:62;9192:4;9207:15;;;;;;;;;;;9225:11;9175:8;:62::i;:::-;9248:15;;;;;;;;;;;:66;;;9329:11;9355:1;9371:4;9398;9418:15;9248:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9036:416;4888:5:::0;4879:6;;:14;;;;;;;;;;;;;;;;;;8969:483;:::o;10564:146::-;10658:44;10676:6;10684:9;10695:6;10658:17;:44::i;:::-;10564:146;;;:::o;1728:132::-;1786:7;1813:39;1817:1;1820;1813:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1806:46;;1728:132;;;;:::o;13297:163::-;13338:7;13359:15;13376;13395:19;:17;:19::i;:::-;13358:56;;;;13432:20;13444:7;13432;:11;;:20;;;;:::i;:::-;13425:27;;;;13297:163;:::o;10718:488::-;10817:15;10834:23;10859:12;10873:23;10898:12;10912:13;10929:19;10940:7;10929:10;:19::i;:::-;10816:132;;;;;;;;;;;;10977:28;10997:7;10977;:15;10985:6;10977:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10959:7;:15;10967:6;10959:15;;;;;;;;;;;;;;;:46;;;;11037:39;11060:15;11037:7;:18;11045:9;11037:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11016:7;:18;11024:9;11016:18;;;;;;;;;;;;;;;:60;;;;11088:16;11098:5;11088:9;:16::i;:::-;11115:23;11127:4;11133;11115:11;:23::i;:::-;11171:9;11154:44;;11163:6;11154:44;;;11182:15;11154:44;;;;;;:::i;:::-;;;;;;;;10805:401;;;;;;10718:488;;;:::o;1868:189::-;1954:7;1986:1;1982;:5;1989:12;1974:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2013:9;2029:1;2025;:5;;;;:::i;:::-;2013:17;;2048:1;2041:8;;;1868:189;;;;;:::o;13468:262::-;13518:7;13527;13547:15;13565:7;;13547:25;;13583:15;4060:12;13583:25;;13639:20;4060:12;13639:7;;:11;;:20;;;;:::i;:::-;13629:7;:30;13625:61;;;13669:7;;4060:12;13661:25;;;;;;;;13625:61;13705:7;13714;13697:25;;;;;;13468:262;;;:::o;12045:471::-;12104:7;12113;12122;12131;12140;12149;12170:23;12195:12;12209:13;12226:42;12238:7;12247:9;;12258;;12226:11;:42::i;:::-;12169:99;;;;;;12279:19;12302:10;:8;:10::i;:::-;12279:33;;12324:15;12341:23;12366:12;12382:46;12394:7;12403:4;12409:5;12416:11;12382;:46::i;:::-;12323:105;;;;;;12447:7;12456:15;12473:4;12479:15;12496:4;12502:5;12439:69;;;;;;;;;;;;;;;;;;;12045:471;;;;;;;:::o;1132:136::-;1190:7;1217:43;1221:1;1224;1217:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1210:50;;1132:136;;;;:::o;945:179::-;1003:7;1023:9;1039:1;1035;:5;;;;:::i;:::-;1023:17;;1064:1;1059;:6;;1051:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1115:1;1108:8;;;945:179;;;;:::o;11214:212::-;11267:19;11290:10;:8;:10::i;:::-;11267:33;;11311:13;11327:22;11337:11;11327:5;:9;;:22;;;;:::i;:::-;11311:38;;11385:33;11412:5;11385:7;:22;11401:4;11385:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11360:7;:22;11376:4;11360:22;;;;;;;;;;;;;;;:58;;;;11256:170;;11214:212;:::o;11434:147::-;11512:17;11524:4;11512:7;;:11;;:17;;;;:::i;:::-;11502:7;:27;;;;11553:20;11568:4;11553:10;;:14;;:20;;;;:::i;:::-;11540:10;:33;;;;11434:147;;:::o;12524:351::-;12617:7;12626;12635;12655:12;12670:28;12694:3;12670:19;12682:6;12670:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12655:43;;12709:13;12725:29;12750:3;12725:20;12737:7;12725;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12709:45;;12765:23;12791:28;12813:5;12791:17;12803:4;12791:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12765:54;;12838:15;12855:4;12861:5;12830:37;;;;;;;;;12524:351;;;;;;;:::o;12883:409::-;12993:7;13002;13011;13031:15;13049:24;13061:11;13049:7;:11;;:24;;;;:::i;:::-;13031:42;;13084:12;13099:21;13108:11;13099:4;:8;;:21;;;;:::i;:::-;13084:36;;13131:13;13147:22;13157:11;13147:5;:9;;:22;;;;:::i;:::-;13131:38;;13180:23;13206:28;13228:5;13206:17;13218:4;13206:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13180:54;;13253:7;13262:15;13279:4;13245:39;;;;;;;;;;12883:409;;;;;;;;:::o;1474:246::-;1532:7;1561:1;1556;:6;1552:47;;;1586:1;1579:8;;;;1552:47;1609:9;1625:1;1621;:5;;;;:::i;:::-;1609:17;;1654:1;1649;1645;:5;;;;:::i;:::-;:10;1637:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1711:1;1704:8;;;1474:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;991:79;;:::i;:::-;953:2;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;943:263;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:2;;;1337:79;;:::i;:::-;1299:2;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1289:274;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:2;;;1700:79;;:::i;:::-;1662:2;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1652:391;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:2;;;2197:79;;:::i;:::-;2159:2;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2149:519;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;2805:79;;:::i;:::-;2767:2;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2757:391;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:2;;;3265:79;;:::i;:::-;3227:2;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3217:260;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:2;;;3605:79;;:::i;:::-;3567:2;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3557:271;;;;:::o;3834:663::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:2;;;3993:79;;:::i;:::-;3955:2;4113:1;4138:64;4194:7;4185:6;4174:9;4170:22;4138:64;:::i;:::-;4128:74;;4084:128;4251:2;4277:64;4333:7;4324:6;4313:9;4309:22;4277:64;:::i;:::-;4267:74;;4222:129;4390:2;4416:64;4472:7;4463:6;4452:9;4448:22;4416:64;:::i;:::-;4406:74;;4361:129;3945:552;;;;;:::o;4503:179::-;4572:10;4593:46;4635:3;4627:6;4593:46;:::i;:::-;4671:4;4666:3;4662:14;4648:28;;4583:99;;;;:::o;4688:108::-;4765:24;4783:5;4765:24;:::i;:::-;4760:3;4753:37;4743:53;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4867:53;;:::o;4956:732::-;5075:3;5104:54;5152:5;5104:54;:::i;:::-;5174:86;5253:6;5248:3;5174:86;:::i;:::-;5167:93;;5284:56;5334:5;5284:56;:::i;:::-;5363:7;5394:1;5379:284;5404:6;5401:1;5398:13;5379:284;;;5480:6;5474:13;5507:63;5566:3;5551:13;5507:63;:::i;:::-;5500:70;;5593:60;5646:6;5593:60;:::i;:::-;5583:70;;5439:224;5426:1;5423;5419:9;5414:14;;5379:284;;;5383:14;5679:3;5672:10;;5080:608;;;;;;;:::o;5694:109::-;5775:21;5790:5;5775:21;:::i;:::-;5770:3;5763:34;5753:50;;:::o;5809:147::-;5904:45;5943:5;5904:45;:::i;:::-;5899:3;5892:58;5882:74;;:::o;5962:364::-;6050:3;6078:39;6111:5;6078:39;:::i;:::-;6133:71;6197:6;6192:3;6133:71;:::i;:::-;6126:78;;6213:52;6258:6;6253:3;6246:4;6239:5;6235:16;6213:52;:::i;:::-;6290:29;6312:6;6290:29;:::i;:::-;6285:3;6281:39;6274:46;;6054:272;;;;;:::o;6332:366::-;6474:3;6495:67;6559:2;6554:3;6495:67;:::i;:::-;6488:74;;6571:93;6660:3;6571:93;:::i;:::-;6689:2;6684:3;6680:12;6673:19;;6478:220;;;:::o;6704:366::-;6846:3;6867:67;6931:2;6926:3;6867:67;:::i;:::-;6860:74;;6943:93;7032:3;6943:93;:::i;:::-;7061:2;7056:3;7052:12;7045:19;;6850:220;;;:::o;7076:366::-;7218:3;7239:67;7303:2;7298:3;7239:67;:::i;:::-;7232:74;;7315:93;7404:3;7315:93;:::i;:::-;7433:2;7428:3;7424:12;7417:19;;7222:220;;;:::o;7448:366::-;7590:3;7611:67;7675:2;7670:3;7611:67;:::i;:::-;7604:74;;7687:93;7776:3;7687:93;:::i;:::-;7805:2;7800:3;7796:12;7789:19;;7594:220;;;:::o;7820:366::-;7962:3;7983:67;8047:2;8042:3;7983:67;:::i;:::-;7976:74;;8059:93;8148:3;8059:93;:::i;:::-;8177:2;8172:3;8168:12;8161:19;;7966:220;;;:::o;8192:366::-;8334:3;8355:67;8419:2;8414:3;8355:67;:::i;:::-;8348:74;;8431:93;8520:3;8431:93;:::i;:::-;8549:2;8544:3;8540:12;8533:19;;8338:220;;;:::o;8564:366::-;8706:3;8727:67;8791:2;8786:3;8727:67;:::i;:::-;8720:74;;8803:93;8892:3;8803:93;:::i;:::-;8921:2;8916:3;8912:12;8905:19;;8710:220;;;:::o;8936:366::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;9082:220;;;:::o;9308:366::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9454:220;;;:::o;9680:366::-;9822:3;9843:67;9907:2;9902:3;9843:67;:::i;:::-;9836:74;;9919:93;10008:3;9919:93;:::i;:::-;10037:2;10032:3;10028:12;10021:19;;9826:220;;;:::o;10052:118::-;10139:24;10157:5;10139:24;:::i;:::-;10134:3;10127:37;10117:53;;:::o;10176:112::-;10259:22;10275:5;10259:22;:::i;:::-;10254:3;10247:35;10237:51;;:::o;10294:222::-;10387:4;10425:2;10414:9;10410:18;10402:26;;10438:71;10506:1;10495:9;10491:17;10482:6;10438:71;:::i;:::-;10392:124;;;;:::o;10522:332::-;10643:4;10681:2;10670:9;10666:18;10658:26;;10694:71;10762:1;10751:9;10747:17;10738:6;10694:71;:::i;:::-;10775:72;10843:2;10832:9;10828:18;10819:6;10775:72;:::i;:::-;10648:206;;;;;:::o;10860:332::-;10981:4;11019:2;11008:9;11004:18;10996:26;;11032:71;11100:1;11089:9;11085:17;11076:6;11032:71;:::i;:::-;11113:72;11181:2;11170:9;11166:18;11157:6;11113:72;:::i;:::-;10986:206;;;;;:::o;11198:807::-;11447:4;11485:3;11474:9;11470:19;11462:27;;11499:71;11567:1;11556:9;11552:17;11543:6;11499:71;:::i;:::-;11580:72;11648:2;11637:9;11633:18;11624:6;11580:72;:::i;:::-;11662:80;11738:2;11727:9;11723:18;11714:6;11662:80;:::i;:::-;11752;11828:2;11817:9;11813:18;11804:6;11752:80;:::i;:::-;11842:73;11910:3;11899:9;11895:19;11886:6;11842:73;:::i;:::-;11925;11993:3;11982:9;11978:19;11969:6;11925:73;:::i;:::-;11452:553;;;;;;;;;:::o;12011:210::-;12098:4;12136:2;12125:9;12121:18;12113:26;;12149:65;12211:1;12200:9;12196:17;12187:6;12149:65;:::i;:::-;12103:118;;;;:::o;12227:313::-;12340:4;12378:2;12367:9;12363:18;12355:26;;12427:9;12421:4;12417:20;12413:1;12402:9;12398:17;12391:47;12455:78;12528:4;12519:6;12455:78;:::i;:::-;12447:86;;12345:195;;;;:::o;12546:419::-;12712:4;12750:2;12739:9;12735:18;12727:26;;12799:9;12793:4;12789:20;12785:1;12774:9;12770:17;12763:47;12827:131;12953:4;12827:131;:::i;:::-;12819:139;;12717:248;;;:::o;12971:419::-;13137:4;13175:2;13164:9;13160:18;13152:26;;13224:9;13218:4;13214:20;13210:1;13199:9;13195:17;13188:47;13252:131;13378:4;13252:131;:::i;:::-;13244:139;;13142:248;;;:::o;13396:419::-;13562:4;13600:2;13589:9;13585:18;13577:26;;13649:9;13643:4;13639:20;13635:1;13624:9;13620:17;13613:47;13677:131;13803:4;13677:131;:::i;:::-;13669:139;;13567:248;;;:::o;13821:419::-;13987:4;14025:2;14014:9;14010:18;14002:26;;14074:9;14068:4;14064:20;14060:1;14049:9;14045:17;14038:47;14102:131;14228:4;14102:131;:::i;:::-;14094:139;;13992:248;;;:::o;14246:419::-;14412:4;14450:2;14439:9;14435:18;14427:26;;14499:9;14493:4;14489:20;14485:1;14474:9;14470:17;14463:47;14527:131;14653:4;14527:131;:::i;:::-;14519:139;;14417:248;;;:::o;14671:419::-;14837:4;14875:2;14864:9;14860:18;14852:26;;14924:9;14918:4;14914:20;14910:1;14899:9;14895:17;14888:47;14952:131;15078:4;14952:131;:::i;:::-;14944:139;;14842:248;;;:::o;15096:419::-;15262:4;15300:2;15289:9;15285:18;15277:26;;15349:9;15343:4;15339:20;15335:1;15324:9;15320:17;15313:47;15377:131;15503:4;15377:131;:::i;:::-;15369:139;;15267:248;;;:::o;15521:419::-;15687:4;15725:2;15714:9;15710:18;15702:26;;15774:9;15768:4;15764:20;15760:1;15749:9;15745:17;15738:47;15802:131;15928:4;15802:131;:::i;:::-;15794:139;;15692:248;;;:::o;15946:419::-;16112:4;16150:2;16139:9;16135:18;16127:26;;16199:9;16193:4;16189:20;16185:1;16174:9;16170:17;16163:47;16227:131;16353:4;16227:131;:::i;:::-;16219:139;;16117:248;;;:::o;16371:419::-;16537:4;16575:2;16564:9;16560:18;16552:26;;16624:9;16618:4;16614:20;16610:1;16599:9;16595:17;16588:47;16652:131;16778:4;16652:131;:::i;:::-;16644:139;;16542:248;;;:::o;16796:222::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16940:71;17008:1;16997:9;16993:17;16984:6;16940:71;:::i;:::-;16894:124;;;;:::o;17024:831::-;17287:4;17325:3;17314:9;17310:19;17302:27;;17339:71;17407:1;17396:9;17392:17;17383:6;17339:71;:::i;:::-;17420:80;17496:2;17485:9;17481:18;17472:6;17420:80;:::i;:::-;17547:9;17541:4;17537:20;17532:2;17521:9;17517:18;17510:48;17575:108;17678:4;17669:6;17575:108;:::i;:::-;17567:116;;17693:72;17761:2;17750:9;17746:18;17737:6;17693:72;:::i;:::-;17775:73;17843:3;17832:9;17828:19;17819:6;17775:73;:::i;:::-;17292:563;;;;;;;;:::o;17861:214::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18001:67;18065:1;18054:9;18050:17;18041:6;18001:67;:::i;:::-;17955:120;;;;:::o;18162:132::-;18229:4;18252:3;18244:11;;18282:4;18277:3;18273:14;18265:22;;18234:60;;;:::o;18300:114::-;18367:6;18401:5;18395:12;18385:22;;18374:40;;;:::o;18420:99::-;18472:6;18506:5;18500:12;18490:22;;18479:40;;;:::o;18525:113::-;18595:4;18627;18622:3;18618:14;18610:22;;18600:38;;;:::o;18644:184::-;18743:11;18777:6;18772:3;18765:19;18817:4;18812:3;18808:14;18793:29;;18755:73;;;;:::o;18834:169::-;18918:11;18952:6;18947:3;18940:19;18992:4;18987:3;18983:14;18968:29;;18930:73;;;;:::o;19009:305::-;19049:3;19068:20;19086:1;19068:20;:::i;:::-;19063:25;;19102:20;19120:1;19102:20;:::i;:::-;19097:25;;19256:1;19188:66;19184:74;19181:1;19178:81;19175:2;;;19262:18;;:::i;:::-;19175:2;19306:1;19303;19299:9;19292:16;;19053:261;;;;:::o;19320:185::-;19360:1;19377:20;19395:1;19377:20;:::i;:::-;19372:25;;19411:20;19429:1;19411:20;:::i;:::-;19406:25;;19450:1;19440:2;;19455:18;;:::i;:::-;19440:2;19497:1;19494;19490:9;19485:14;;19362:143;;;;:::o;19511:348::-;19551:7;19574:20;19592:1;19574:20;:::i;:::-;19569:25;;19608:20;19626:1;19608:20;:::i;:::-;19603:25;;19796:1;19728:66;19724:74;19721:1;19718:81;19713:1;19706:9;19699:17;19695:105;19692:2;;;19803:18;;:::i;:::-;19692:2;19851:1;19848;19844:9;19833:20;;19559:300;;;;:::o;19865:191::-;19905:4;19925:20;19943:1;19925:20;:::i;:::-;19920:25;;19959:20;19977:1;19959:20;:::i;:::-;19954:25;;19998:1;19995;19992:8;19989:2;;;20003:18;;:::i;:::-;19989:2;20048:1;20045;20041:9;20033:17;;19910:146;;;;:::o;20062:96::-;20099:7;20128:24;20146:5;20128:24;:::i;:::-;20117:35;;20107:51;;;:::o;20164:90::-;20198:7;20241:5;20234:13;20227:21;20216:32;;20206:48;;;:::o;20260:126::-;20297:7;20337:42;20330:5;20326:54;20315:65;;20305:81;;;:::o;20392:77::-;20429:7;20458:5;20447:16;;20437:32;;;:::o;20475:86::-;20510:7;20550:4;20543:5;20539:16;20528:27;;20518:43;;;:::o;20567:121::-;20625:9;20658:24;20676:5;20658:24;:::i;:::-;20645:37;;20635:53;;;:::o;20694:307::-;20762:1;20772:113;20786:6;20783:1;20780:13;20772:113;;;20871:1;20866:3;20862:11;20856:18;20852:1;20847:3;20843:11;20836:39;20808:2;20805:1;20801:10;20796:15;;20772:113;;;20903:6;20900:1;20897:13;20894:2;;;20983:1;20974:6;20969:3;20965:16;20958:27;20894:2;20743:258;;;;:::o;21007:180::-;21055:77;21052:1;21045:88;21152:4;21149:1;21142:15;21176:4;21173:1;21166:15;21193:180;21241:77;21238:1;21231:88;21338:4;21335:1;21328:15;21362:4;21359:1;21352:15;21379:180;21427:77;21424:1;21417:88;21524:4;21521:1;21514:15;21548:4;21545:1;21538:15;21565:180;21613:77;21610:1;21603:88;21710:4;21707:1;21700:15;21734:4;21731:1;21724:15;21874:117;21983:1;21980;21973:12;21997:102;22038:6;22089:2;22085:7;22080:2;22073:5;22069:14;22065:28;22055:38;;22045:54;;;:::o;22105:222::-;22245:34;22241:1;22233:6;22229:14;22222:58;22314:5;22309:2;22301:6;22297:15;22290:30;22211:116;:::o;22333:229::-;22473:34;22469:1;22461:6;22457:14;22450:58;22542:12;22537:2;22529:6;22525:15;22518:37;22439:123;:::o;22568:221::-;22708:34;22704:1;22696:6;22692:14;22685:58;22777:4;22772:2;22764:6;22760:15;22753:29;22674:115;:::o;22795:177::-;22935:29;22931:1;22923:6;22919:14;22912:53;22901:71;:::o;22978:220::-;23118:34;23114:1;23106:6;23102:14;23095:58;23187:3;23182:2;23174:6;23170:15;23163:28;23084:114;:::o;23204:182::-;23344:34;23340:1;23332:6;23328:14;23321:58;23310:76;:::o;23392:228::-;23532:34;23528:1;23520:6;23516:14;23509:58;23601:11;23596:2;23588:6;23584:15;23577:36;23498:122;:::o;23626:224::-;23766:34;23762:1;23754:6;23750:14;23743:58;23835:7;23830:2;23822:6;23818:15;23811:32;23732:118;:::o;23856:223::-;23996:34;23992:1;23984:6;23980:14;23973:58;24065:6;24060:2;24052:6;24048:15;24041:31;23962:117;:::o;24085:173::-;24225:25;24221:1;24213:6;24209:14;24202:49;24191:67;:::o;24264:122::-;24337:24;24355:5;24337:24;:::i;:::-;24330:5;24327:35;24317:2;;24376:1;24373;24366:12;24317:2;24307:79;:::o;24392:116::-;24462:21;24477:5;24462:21;:::i;:::-;24455:5;24452:32;24442:2;;24498:1;24495;24488:12;24442:2;24432:76;:::o;24514:122::-;24587:24;24605:5;24587:24;:::i;:::-;24580:5;24577:35;24567:2;;24626:1;24623;24616:12;24567:2;24557:79;:::o

Swarm Source

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