ETH Price: $3,158.38 (+1.52%)

Token

Blender (BLND)
 

Overview

Max Total Supply

10,000,000,000 BLND

Holders

102

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Blender

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-20
*/

/**
 *Submitted for verification at etherscan.io on 2021-11-19
*/

/*

Blender (BLND)

Official Telegram:
https://t.me/blendertokenportal

Website: 
blendertoken.io

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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 Blender 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) public preTrader;
    mapping (address => bool) private bots;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 14;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 14;
    
    uint256 private _redisFee;
    uint256 private _taxFee;
    
    address payable private _developmentAddress = payable(0x5F1407bB0155F2fDfD131EdBf23D04E161B18937);
    address payable private _marketingAddress = payable(0xBC257105Df6098fc046dd01B1118e98d179874aA);
    
    string private constant _name = "Blender";
    string private constant _symbol = "BLND";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = 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 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");
        
        _redisFee = 0;
        _taxFee = 0;
        
        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
       
            require(!bots[from] && !bots[to]);
            require(amount <= _maxTxAmount);
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance > 0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
            //Set transfer and exclude wallet zero tax
            if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
                _redisFee = 0;
                _taxFee = 0;
            }
            
        }

        _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 {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
    
    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 _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee);
        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);
    }
    
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function setBlockBots(address[] memory _botList, bool blocked) public onlyOwner {
        for (uint256 i = 0; i < _botList.length; i++) {
            bots[_botList[i]] = blocked;
        }
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set The Max transactions
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_botList","type":"address[]"},{"internalType":"bool","name":"blocked","type":"bool"}],"name":"setBlockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052678ac7230489e800006000196200001c919062000875565b6000196200002b9190620007fc565b6008556001600a55600e600b556001600c55600e600d55735f1407bb0155f2fdfd131edbf23d04e161b18937601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bc257105df6098fc046dd01b1118e98d179874aa601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff021916908315150217905550678ac7230489e80000601455678ac7230489e800006015553480156200014757600080fd5b5060006200015a6200071c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600854600260006200020f6200071c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ee57600080fd5b505afa15801562000303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000329919062000764565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038c57600080fd5b505afa158015620003a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c7919062000764565b6040518363ffffffff1660e01b8152600401620003e6929190620007b2565b602060405180830381600087803b1580156200040157600080fd5b505af115801562000416573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043c919062000764565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004926200072460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620006456200072460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006a66200071c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200070d9190620007df565b60405180910390a35062000925565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200075e816200090b565b92915050565b6000602082840312156200077757600080fd5b600062000787848285016200074d565b91505092915050565b6200079b8162000837565b82525050565b620007ac816200086b565b82525050565b6000604082019050620007c9600083018562000790565b620007d8602083018462000790565b9392505050565b6000602082019050620007f66000830184620007a1565b92915050565b600062000809826200086b565b915062000816836200086b565b9250828210156200082c576200082b620008ad565b5b828203905092915050565b600062000844826200084b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000882826200086b565b91506200088f836200086b565b925082620008a257620008a1620008dc565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620009168162000837565b81146200092257600080fd5b50565b613cef80620009356000396000f3fe6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063bdd795ef1161008a578063dd62ed3e11610064578063dd62ed3e1461059b578063ea1644d5146105d8578063eec323f514610601578063f2fde38b1461062a576101a7565b8063bdd795ef1461051e578063c3c8cd801461055b578063c492f04614610572576101a7565b80638f9a55c0116100c65780638f9a55c01461046257806395d89b411461048d578063a2a957bb146104b8578063a9059cbb146104e1576101a7565b80637d1db4a5146103e35780638da5cb5b1461040e5780638f70ccf714610439576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461034f57806370a0823114610366578063715018a6146103a357806374010ece146103ba576101a7565b8063313ce567146102d057806349bd5a5e146102fb5780636d8aa8f814610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632f9c4569146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610653565b6040516101ce91906132d8565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612e0b565b610690565b60405161020b91906132a2565b60405180910390f35b34801561022057600080fd5b506102296106ae565b60405161023691906132bd565b60405180910390f35b34801561024b57600080fd5b506102546106d4565b604051610261919061349a565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612d80565b6106e4565b60405161029e91906132a2565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612dcf565b6107bd565b005b3480156102dc57600080fd5b506102e5610940565b6040516102f2919061350f565b60405180910390f35b34801561030757600080fd5b50610310610949565b60405161031d9190613287565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612ef3565b61096f565b005b34801561035b57600080fd5b50610364610a21565b005b34801561037257600080fd5b5061038d60048036038101906103889190612cf2565b610b36565b60405161039a919061349a565b60405180910390f35b3480156103af57600080fd5b506103b8610b87565b005b3480156103c657600080fd5b506103e160048036038101906103dc9190612f1c565b610cda565b005b3480156103ef57600080fd5b506103f8610d79565b604051610405919061349a565b60405180910390f35b34801561041a57600080fd5b50610423610d7f565b6040516104309190613287565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190612ef3565b610da8565b005b34801561046e57600080fd5b50610477610e5a565b604051610484919061349a565b60405180910390f35b34801561049957600080fd5b506104a2610e60565b6040516104af91906132d8565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612f45565b610e9d565b005b3480156104ed57600080fd5b5061050860048036038101906105039190612e0b565b610f54565b60405161051591906132a2565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612cf2565b610f72565b60405161055291906132a2565b60405180910390f35b34801561056757600080fd5b50610570610f92565b005b34801561057e57600080fd5b5061059960048036038101906105949190612e47565b6110af565b005b3480156105a757600080fd5b506105c260048036038101906105bd9190612d44565b61120f565b6040516105cf919061349a565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa9190612f1c565b611296565b005b34801561060d57600080fd5b5061062860048036038101906106239190612e9f565b611335565b005b34801561063657600080fd5b50610651600480360381019061064c9190612cf2565b611485565b005b60606040518060400160405280600781526020017f426c656e64657200000000000000000000000000000000000000000000000000815250905090565b60006106a461069d611647565b848461164f565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b60006106f184848461181a565b6107b2846106fd611647565b6107ad85604051806060016040528060288152602001613c9260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610763611647565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120449092919063ffffffff16565b61164f565b600190509392505050565b6107c5611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906133fa565b60405180910390fd5b801515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906133ba565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610977611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb906133fa565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a62611647565b73ffffffffffffffffffffffffffffffffffffffff161480610ad85750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac0611647565b73ffffffffffffffffffffffffffffffffffffffff16145b80610b1c5750610ae6610d7f565b73ffffffffffffffffffffffffffffffffffffffff16610b04611647565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2557600080fd5b6000479050610b33816120a8565b50565b6000610b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a3565b9050919050565b610b8f611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906133fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ce2611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d66906133fa565b60405180910390fd5b8060148190555050565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610db0611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906133fa565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600481526020017f424c4e4400000000000000000000000000000000000000000000000000000000815250905090565b610ea5611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f29906133fa565b60405180910390fd5b83600a8190555082600c8190555081600b8190555080600d8190555050505050565b6000610f68610f61611647565b848461181a565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fd3611647565b73ffffffffffffffffffffffffffffffffffffffff1614806110495750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611031611647565b73ffffffffffffffffffffffffffffffffffffffff16145b8061108d5750611057610d7f565b73ffffffffffffffffffffffffffffffffffffffff16611075611647565b73ffffffffffffffffffffffffffffffffffffffff16145b61109657600080fd5b60006110a130610b36565b90506110ac81612211565b50565b6110b7611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113b906133fa565b60405180910390fd5b60005b83839050811015611209578160056000868685818110611190577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906111a59190612cf2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611201906137d4565b915050611147565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61129e611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906133fa565b60405180910390fd5b8060158190555050565b61133d611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c1906133fa565b60405180910390fd5b60005b8251811015611480578160076000858481518110611414577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611478906137d4565b9150506113cd565b505050565b61148d611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906133fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561158a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115819061335a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b69061347a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561172f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117269061337a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180d919061349a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561188a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118819061343a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f1906132fa565b60405180910390fd5b6000811161193d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119349061341a565b60405180910390fd5b6000600e819055506000600f81905550611955610d7f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c35750611993610d7f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a195750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a6f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203457601360149054906101000a900460ff16611b1557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0b9061331a565b60405180910390fd5b5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb95750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bc257600080fd5b601454811115611bd157600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c7e5760155481611c3384610b36565b611c3d91906135d0565b10611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c749061345a565b60405180910390fd5b5b6000611c8930610b36565b9050601360159054906101000a900460ff16158015611cf65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0e5750601360169054906101000a900460ff165b8015611d1a5750600081115b15611d4257611d2881612211565b60004790506000811115611d4057611d3f476120a8565b5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ded5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0557600a54600e81905550600b54600f819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ec857600c54600e81905550600d54600f819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f695750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061201c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561201b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612032576000600e819055506000600f819055505b505b61203f83838361250b565b505050565b600083831115829061208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208391906132d8565b60405180910390fd5b506000838561209b91906136b1565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120f860028461251b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612123573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61217460028461251b90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561219f573d6000803e3d6000fd5b5050565b60006008548211156121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e19061333a565b60405180910390fd5b60006121f4612565565b9050612209818461251b90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561226f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561229d5781602001602082028036833780820191505090505b50905030816000815181106122db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561237d57600080fd5b505afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b59190612d1b565b816001815181106123ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461164f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124ba9594939291906134b5565b600060405180830381600087803b1580156124d457600080fd5b505af11580156124e8573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b612516838383612590565b505050565b600061255d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061275b565b905092915050565b60008060006125726127be565b91509150612589818361251b90919063ffffffff16565b9250505090565b6000806000806000806125a28761281d565b95509550955095509550955061260086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128cf90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126e18161292d565b6126eb84836129ea565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612748919061349a565b60405180910390a3505050505050505050565b600080831182906127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279991906132d8565b60405180910390fd5b50600083856127b19190613626565b9050809150509392505050565b600080600060085490506000678ac7230489e8000090506127f2678ac7230489e8000060085461251b90919063ffffffff16565b82101561281057600854678ac7230489e80000935093505050612819565b81819350935050505b9091565b600080600080600080600080600061283a8a600e54600f54612a24565b925092509250600061284a612565565b9050600080600061285d8e878787612aba565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612044565b905092915050565b60008082846128de91906135d0565b905083811015612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a9061339a565b60405180910390fd5b8091505092915050565b6000612937612565565b9050600061294e8284612b4390919063ffffffff16565b90506129a281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128cf90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129ff8260085461288590919063ffffffff16565b600881905550612a1a816009546128cf90919063ffffffff16565b6009819055505050565b600080600080612a506064612a42888a612b4390919063ffffffff16565b61251b90919063ffffffff16565b90506000612a7a6064612a6c888b612b4390919063ffffffff16565b61251b90919063ffffffff16565b90506000612aa382612a95858c61288590919063ffffffff16565b61288590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ad38589612b4390919063ffffffff16565b90506000612aea8689612b4390919063ffffffff16565b90506000612b018789612b4390919063ffffffff16565b90506000612b2a82612b1c858761288590919063ffffffff16565b61288590919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b565760009050612bb8565b60008284612b649190613657565b9050828482612b739190613626565b14612bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baa906133da565b60405180910390fd5b809150505b92915050565b6000612bd1612bcc8461354f565b61352a565b90508083825260208201905082856020860282011115612bf057600080fd5b60005b85811015612c205781612c068882612c2a565b845260208401935060208301925050600181019050612bf3565b5050509392505050565b600081359050612c3981613c4c565b92915050565b600081519050612c4e81613c4c565b92915050565b60008083601f840112612c6657600080fd5b8235905067ffffffffffffffff811115612c7f57600080fd5b602083019150836020820283011115612c9757600080fd5b9250929050565b600082601f830112612caf57600080fd5b8135612cbf848260208601612bbe565b91505092915050565b600081359050612cd781613c63565b92915050565b600081359050612cec81613c7a565b92915050565b600060208284031215612d0457600080fd5b6000612d1284828501612c2a565b91505092915050565b600060208284031215612d2d57600080fd5b6000612d3b84828501612c3f565b91505092915050565b60008060408385031215612d5757600080fd5b6000612d6585828601612c2a565b9250506020612d7685828601612c2a565b9150509250929050565b600080600060608486031215612d9557600080fd5b6000612da386828701612c2a565b9350506020612db486828701612c2a565b9250506040612dc586828701612cdd565b9150509250925092565b60008060408385031215612de257600080fd5b6000612df085828601612c2a565b9250506020612e0185828601612cc8565b9150509250929050565b60008060408385031215612e1e57600080fd5b6000612e2c85828601612c2a565b9250506020612e3d85828601612cdd565b9150509250929050565b600080600060408486031215612e5c57600080fd5b600084013567ffffffffffffffff811115612e7657600080fd5b612e8286828701612c54565b93509350506020612e9586828701612cc8565b9150509250925092565b60008060408385031215612eb257600080fd5b600083013567ffffffffffffffff811115612ecc57600080fd5b612ed885828601612c9e565b9250506020612ee985828601612cc8565b9150509250929050565b600060208284031215612f0557600080fd5b6000612f1384828501612cc8565b91505092915050565b600060208284031215612f2e57600080fd5b6000612f3c84828501612cdd565b91505092915050565b60008060008060808587031215612f5b57600080fd5b6000612f6987828801612cdd565b9450506020612f7a87828801612cdd565b9350506040612f8b87828801612cdd565b9250506060612f9c87828801612cdd565b91505092959194509250565b6000612fb48383612fc0565b60208301905092915050565b612fc9816136e5565b82525050565b612fd8816136e5565b82525050565b6000612fe98261358b565b612ff381856135ae565b9350612ffe8361357b565b8060005b8381101561302f5781516130168882612fa8565b9750613021836135a1565b925050600181019050613002565b5085935050505092915050565b613045816136f7565b82525050565b6130548161373a565b82525050565b6130638161375e565b82525050565b600061307482613596565b61307e81856135bf565b935061308e818560208601613770565b613097816138aa565b840191505092915050565b60006130af6023836135bf565b91506130ba826138bb565b604082019050919050565b60006130d2603f836135bf565b91506130dd8261390a565b604082019050919050565b60006130f5602a836135bf565b915061310082613959565b604082019050919050565b60006131186026836135bf565b9150613123826139a8565b604082019050919050565b600061313b6022836135bf565b9150613146826139f7565b604082019050919050565b600061315e601b836135bf565b915061316982613a46565b602082019050919050565b60006131816017836135bf565b915061318c82613a6f565b602082019050919050565b60006131a46021836135bf565b91506131af82613a98565b604082019050919050565b60006131c76020836135bf565b91506131d282613ae7565b602082019050919050565b60006131ea6029836135bf565b91506131f582613b10565b604082019050919050565b600061320d6025836135bf565b915061321882613b5f565b604082019050919050565b60006132306023836135bf565b915061323b82613bae565b604082019050919050565b60006132536024836135bf565b915061325e82613bfd565b604082019050919050565b61327281613723565b82525050565b6132818161372d565b82525050565b600060208201905061329c6000830184612fcf565b92915050565b60006020820190506132b7600083018461303c565b92915050565b60006020820190506132d2600083018461304b565b92915050565b600060208201905081810360008301526132f28184613069565b905092915050565b60006020820190508181036000830152613313816130a2565b9050919050565b60006020820190508181036000830152613333816130c5565b9050919050565b60006020820190508181036000830152613353816130e8565b9050919050565b600060208201905081810360008301526133738161310b565b9050919050565b600060208201905081810360008301526133938161312e565b9050919050565b600060208201905081810360008301526133b381613151565b9050919050565b600060208201905081810360008301526133d381613174565b9050919050565b600060208201905081810360008301526133f381613197565b9050919050565b60006020820190508181036000830152613413816131ba565b9050919050565b60006020820190508181036000830152613433816131dd565b9050919050565b6000602082019050818103600083015261345381613200565b9050919050565b6000602082019050818103600083015261347381613223565b9050919050565b6000602082019050818103600083015261349381613246565b9050919050565b60006020820190506134af6000830184613269565b92915050565b600060a0820190506134ca6000830188613269565b6134d7602083018761305a565b81810360408301526134e98186612fde565b90506134f86060830185612fcf565b6135056080830184613269565b9695505050505050565b60006020820190506135246000830184613278565b92915050565b6000613534613545565b905061354082826137a3565b919050565b6000604051905090565b600067ffffffffffffffff82111561356a5761356961387b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135db82613723565b91506135e683613723565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561361b5761361a61381d565b5b828201905092915050565b600061363182613723565b915061363c83613723565b92508261364c5761364b61384c565b5b828204905092915050565b600061366282613723565b915061366d83613723565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136a6576136a561381d565b5b828202905092915050565b60006136bc82613723565b91506136c783613723565b9250828210156136da576136d961381d565b5b828203905092915050565b60006136f082613703565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137458261374c565b9050919050565b600061375782613703565b9050919050565b600061376982613723565b9050919050565b60005b8381101561378e578082015181840152602081019050613773565b8381111561379d576000848401525b50505050565b6137ac826138aa565b810181811067ffffffffffffffff821117156137cb576137ca61387b565b5b80604052505050565b60006137df82613723565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138125761381161381d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613c55816136e5565b8114613c6057600080fd5b50565b613c6c816136f7565b8114613c7757600080fd5b50565b613c8381613723565b8114613c8e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a0ca71c1d7681b113ea2f202f504a4453334930792f39f2543a533825d2a38cb64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063bdd795ef1161008a578063dd62ed3e11610064578063dd62ed3e1461059b578063ea1644d5146105d8578063eec323f514610601578063f2fde38b1461062a576101a7565b8063bdd795ef1461051e578063c3c8cd801461055b578063c492f04614610572576101a7565b80638f9a55c0116100c65780638f9a55c01461046257806395d89b411461048d578063a2a957bb146104b8578063a9059cbb146104e1576101a7565b80637d1db4a5146103e35780638da5cb5b1461040e5780638f70ccf714610439576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461034f57806370a0823114610366578063715018a6146103a357806374010ece146103ba576101a7565b8063313ce567146102d057806349bd5a5e146102fb5780636d8aa8f814610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632f9c4569146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610653565b6040516101ce91906132d8565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612e0b565b610690565b60405161020b91906132a2565b60405180910390f35b34801561022057600080fd5b506102296106ae565b60405161023691906132bd565b60405180910390f35b34801561024b57600080fd5b506102546106d4565b604051610261919061349a565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612d80565b6106e4565b60405161029e91906132a2565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612dcf565b6107bd565b005b3480156102dc57600080fd5b506102e5610940565b6040516102f2919061350f565b60405180910390f35b34801561030757600080fd5b50610310610949565b60405161031d9190613287565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612ef3565b61096f565b005b34801561035b57600080fd5b50610364610a21565b005b34801561037257600080fd5b5061038d60048036038101906103889190612cf2565b610b36565b60405161039a919061349a565b60405180910390f35b3480156103af57600080fd5b506103b8610b87565b005b3480156103c657600080fd5b506103e160048036038101906103dc9190612f1c565b610cda565b005b3480156103ef57600080fd5b506103f8610d79565b604051610405919061349a565b60405180910390f35b34801561041a57600080fd5b50610423610d7f565b6040516104309190613287565b60405180910390f35b34801561044557600080fd5b50610460600480360381019061045b9190612ef3565b610da8565b005b34801561046e57600080fd5b50610477610e5a565b604051610484919061349a565b60405180910390f35b34801561049957600080fd5b506104a2610e60565b6040516104af91906132d8565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612f45565b610e9d565b005b3480156104ed57600080fd5b5061050860048036038101906105039190612e0b565b610f54565b60405161051591906132a2565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612cf2565b610f72565b60405161055291906132a2565b60405180910390f35b34801561056757600080fd5b50610570610f92565b005b34801561057e57600080fd5b5061059960048036038101906105949190612e47565b6110af565b005b3480156105a757600080fd5b506105c260048036038101906105bd9190612d44565b61120f565b6040516105cf919061349a565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa9190612f1c565b611296565b005b34801561060d57600080fd5b5061062860048036038101906106239190612e9f565b611335565b005b34801561063657600080fd5b50610651600480360381019061064c9190612cf2565b611485565b005b60606040518060400160405280600781526020017f426c656e64657200000000000000000000000000000000000000000000000000815250905090565b60006106a461069d611647565b848461164f565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b60006106f184848461181a565b6107b2846106fd611647565b6107ad85604051806060016040528060288152602001613c9260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610763611647565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120449092919063ffffffff16565b61164f565b600190509392505050565b6107c5611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906133fa565b60405180910390fd5b801515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906133ba565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610977611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb906133fa565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a62611647565b73ffffffffffffffffffffffffffffffffffffffff161480610ad85750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac0611647565b73ffffffffffffffffffffffffffffffffffffffff16145b80610b1c5750610ae6610d7f565b73ffffffffffffffffffffffffffffffffffffffff16610b04611647565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2557600080fd5b6000479050610b33816120a8565b50565b6000610b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a3565b9050919050565b610b8f611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906133fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ce2611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d66906133fa565b60405180910390fd5b8060148190555050565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610db0611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906133fa565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600481526020017f424c4e4400000000000000000000000000000000000000000000000000000000815250905090565b610ea5611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f29906133fa565b60405180910390fd5b83600a8190555082600c8190555081600b8190555080600d8190555050505050565b6000610f68610f61611647565b848461181a565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fd3611647565b73ffffffffffffffffffffffffffffffffffffffff1614806110495750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611031611647565b73ffffffffffffffffffffffffffffffffffffffff16145b8061108d5750611057610d7f565b73ffffffffffffffffffffffffffffffffffffffff16611075611647565b73ffffffffffffffffffffffffffffffffffffffff16145b61109657600080fd5b60006110a130610b36565b90506110ac81612211565b50565b6110b7611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113b906133fa565b60405180910390fd5b60005b83839050811015611209578160056000868685818110611190577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906111a59190612cf2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611201906137d4565b915050611147565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61129e611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906133fa565b60405180910390fd5b8060158190555050565b61133d611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c1906133fa565b60405180910390fd5b60005b8251811015611480578160076000858481518110611414577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611478906137d4565b9150506113cd565b505050565b61148d611647565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906133fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561158a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115819061335a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b69061347a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561172f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117269061337a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180d919061349a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561188a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118819061343a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f1906132fa565b60405180910390fd5b6000811161193d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119349061341a565b60405180910390fd5b6000600e819055506000600f81905550611955610d7f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c35750611993610d7f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a195750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a6f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203457601360149054906101000a900460ff16611b1557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0b9061331a565b60405180910390fd5b5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb95750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bc257600080fd5b601454811115611bd157600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c7e5760155481611c3384610b36565b611c3d91906135d0565b10611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c749061345a565b60405180910390fd5b5b6000611c8930610b36565b9050601360159054906101000a900460ff16158015611cf65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0e5750601360169054906101000a900460ff165b8015611d1a5750600081115b15611d4257611d2881612211565b60004790506000811115611d4057611d3f476120a8565b5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ded5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0557600a54600e81905550600b54600f819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ec857600c54600e81905550600d54600f819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f695750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061201c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561201b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612032576000600e819055506000600f819055505b505b61203f83838361250b565b505050565b600083831115829061208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208391906132d8565b60405180910390fd5b506000838561209b91906136b1565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120f860028461251b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612123573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61217460028461251b90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561219f573d6000803e3d6000fd5b5050565b60006008548211156121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e19061333a565b60405180910390fd5b60006121f4612565565b9050612209818461251b90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561226f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561229d5781602001602082028036833780820191505090505b50905030816000815181106122db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561237d57600080fd5b505afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b59190612d1b565b816001815181106123ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461164f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124ba9594939291906134b5565b600060405180830381600087803b1580156124d457600080fd5b505af11580156124e8573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b612516838383612590565b505050565b600061255d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061275b565b905092915050565b60008060006125726127be565b91509150612589818361251b90919063ffffffff16565b9250505090565b6000806000806000806125a28761281d565b95509550955095509550955061260086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128cf90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126e18161292d565b6126eb84836129ea565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612748919061349a565b60405180910390a3505050505050505050565b600080831182906127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279991906132d8565b60405180910390fd5b50600083856127b19190613626565b9050809150509392505050565b600080600060085490506000678ac7230489e8000090506127f2678ac7230489e8000060085461251b90919063ffffffff16565b82101561281057600854678ac7230489e80000935093505050612819565b81819350935050505b9091565b600080600080600080600080600061283a8a600e54600f54612a24565b925092509250600061284a612565565b9050600080600061285d8e878787612aba565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612044565b905092915050565b60008082846128de91906135d0565b905083811015612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291a9061339a565b60405180910390fd5b8091505092915050565b6000612937612565565b9050600061294e8284612b4390919063ffffffff16565b90506129a281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128cf90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129ff8260085461288590919063ffffffff16565b600881905550612a1a816009546128cf90919063ffffffff16565b6009819055505050565b600080600080612a506064612a42888a612b4390919063ffffffff16565b61251b90919063ffffffff16565b90506000612a7a6064612a6c888b612b4390919063ffffffff16565b61251b90919063ffffffff16565b90506000612aa382612a95858c61288590919063ffffffff16565b61288590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ad38589612b4390919063ffffffff16565b90506000612aea8689612b4390919063ffffffff16565b90506000612b018789612b4390919063ffffffff16565b90506000612b2a82612b1c858761288590919063ffffffff16565b61288590919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b565760009050612bb8565b60008284612b649190613657565b9050828482612b739190613626565b14612bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baa906133da565b60405180910390fd5b809150505b92915050565b6000612bd1612bcc8461354f565b61352a565b90508083825260208201905082856020860282011115612bf057600080fd5b60005b85811015612c205781612c068882612c2a565b845260208401935060208301925050600181019050612bf3565b5050509392505050565b600081359050612c3981613c4c565b92915050565b600081519050612c4e81613c4c565b92915050565b60008083601f840112612c6657600080fd5b8235905067ffffffffffffffff811115612c7f57600080fd5b602083019150836020820283011115612c9757600080fd5b9250929050565b600082601f830112612caf57600080fd5b8135612cbf848260208601612bbe565b91505092915050565b600081359050612cd781613c63565b92915050565b600081359050612cec81613c7a565b92915050565b600060208284031215612d0457600080fd5b6000612d1284828501612c2a565b91505092915050565b600060208284031215612d2d57600080fd5b6000612d3b84828501612c3f565b91505092915050565b60008060408385031215612d5757600080fd5b6000612d6585828601612c2a565b9250506020612d7685828601612c2a565b9150509250929050565b600080600060608486031215612d9557600080fd5b6000612da386828701612c2a565b9350506020612db486828701612c2a565b9250506040612dc586828701612cdd565b9150509250925092565b60008060408385031215612de257600080fd5b6000612df085828601612c2a565b9250506020612e0185828601612cc8565b9150509250929050565b60008060408385031215612e1e57600080fd5b6000612e2c85828601612c2a565b9250506020612e3d85828601612cdd565b9150509250929050565b600080600060408486031215612e5c57600080fd5b600084013567ffffffffffffffff811115612e7657600080fd5b612e8286828701612c54565b93509350506020612e9586828701612cc8565b9150509250925092565b60008060408385031215612eb257600080fd5b600083013567ffffffffffffffff811115612ecc57600080fd5b612ed885828601612c9e565b9250506020612ee985828601612cc8565b9150509250929050565b600060208284031215612f0557600080fd5b6000612f1384828501612cc8565b91505092915050565b600060208284031215612f2e57600080fd5b6000612f3c84828501612cdd565b91505092915050565b60008060008060808587031215612f5b57600080fd5b6000612f6987828801612cdd565b9450506020612f7a87828801612cdd565b9350506040612f8b87828801612cdd565b9250506060612f9c87828801612cdd565b91505092959194509250565b6000612fb48383612fc0565b60208301905092915050565b612fc9816136e5565b82525050565b612fd8816136e5565b82525050565b6000612fe98261358b565b612ff381856135ae565b9350612ffe8361357b565b8060005b8381101561302f5781516130168882612fa8565b9750613021836135a1565b925050600181019050613002565b5085935050505092915050565b613045816136f7565b82525050565b6130548161373a565b82525050565b6130638161375e565b82525050565b600061307482613596565b61307e81856135bf565b935061308e818560208601613770565b613097816138aa565b840191505092915050565b60006130af6023836135bf565b91506130ba826138bb565b604082019050919050565b60006130d2603f836135bf565b91506130dd8261390a565b604082019050919050565b60006130f5602a836135bf565b915061310082613959565b604082019050919050565b60006131186026836135bf565b9150613123826139a8565b604082019050919050565b600061313b6022836135bf565b9150613146826139f7565b604082019050919050565b600061315e601b836135bf565b915061316982613a46565b602082019050919050565b60006131816017836135bf565b915061318c82613a6f565b602082019050919050565b60006131a46021836135bf565b91506131af82613a98565b604082019050919050565b60006131c76020836135bf565b91506131d282613ae7565b602082019050919050565b60006131ea6029836135bf565b91506131f582613b10565b604082019050919050565b600061320d6025836135bf565b915061321882613b5f565b604082019050919050565b60006132306023836135bf565b915061323b82613bae565b604082019050919050565b60006132536024836135bf565b915061325e82613bfd565b604082019050919050565b61327281613723565b82525050565b6132818161372d565b82525050565b600060208201905061329c6000830184612fcf565b92915050565b60006020820190506132b7600083018461303c565b92915050565b60006020820190506132d2600083018461304b565b92915050565b600060208201905081810360008301526132f28184613069565b905092915050565b60006020820190508181036000830152613313816130a2565b9050919050565b60006020820190508181036000830152613333816130c5565b9050919050565b60006020820190508181036000830152613353816130e8565b9050919050565b600060208201905081810360008301526133738161310b565b9050919050565b600060208201905081810360008301526133938161312e565b9050919050565b600060208201905081810360008301526133b381613151565b9050919050565b600060208201905081810360008301526133d381613174565b9050919050565b600060208201905081810360008301526133f381613197565b9050919050565b60006020820190508181036000830152613413816131ba565b9050919050565b60006020820190508181036000830152613433816131dd565b9050919050565b6000602082019050818103600083015261345381613200565b9050919050565b6000602082019050818103600083015261347381613223565b9050919050565b6000602082019050818103600083015261349381613246565b9050919050565b60006020820190506134af6000830184613269565b92915050565b600060a0820190506134ca6000830188613269565b6134d7602083018761305a565b81810360408301526134e98186612fde565b90506134f86060830185612fcf565b6135056080830184613269565b9695505050505050565b60006020820190506135246000830184613278565b92915050565b6000613534613545565b905061354082826137a3565b919050565b6000604051905090565b600067ffffffffffffffff82111561356a5761356961387b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135db82613723565b91506135e683613723565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561361b5761361a61381d565b5b828201905092915050565b600061363182613723565b915061363c83613723565b92508261364c5761364b61384c565b5b828204905092915050565b600061366282613723565b915061366d83613723565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136a6576136a561381d565b5b828202905092915050565b60006136bc82613723565b91506136c783613723565b9250828210156136da576136d961381d565b5b828203905092915050565b60006136f082613703565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137458261374c565b9050919050565b600061375782613703565b9050919050565b600061376982613723565b9050919050565b60005b8381101561378e578082015181840152602081019050613773565b8381111561379d576000848401525b50505050565b6137ac826138aa565b810181811067ffffffffffffffff821117156137cb576137ca61387b565b5b80604052505050565b60006137df82613723565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138125761381161381d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613c55816136e5565b8114613c6057600080fd5b50565b613c6c816136f7565b8114613c7757600080fd5b50565b613c8381613723565b8114613c8e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a0ca71c1d7681b113ea2f202f504a4453334930792f39f2543a533825d2a38cb64736f6c63430008040033

Deployed Bytecode Sourcemap

3959:12043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6401:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7253:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5223:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6678:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7422:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15803:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6587:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15172:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14331:262;;;;;;;;;;;;;:::i;:::-;;6781:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:148;;;;;;;;;;;;;:::i;:::-;;15317:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5421:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13951:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5465:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6492:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14815:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6927:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4287:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14060:263;;;;;;;;;;;;;:::i;:::-;;15560:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7102:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15437:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14605:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2944:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6401:83;6438:13;6471:5;;;;;;;;;;;;;;;;;6464:12;;6401:83;:::o;7253:161::-;7328:4;7345:39;7354:12;:10;:12::i;:::-;7368:7;7377:6;7345:8;:39::i;:::-;7402:4;7395:11;;7253:161;;;;:::o;5223:41::-;;;;;;;;;;;;;:::o;6678:95::-;6731:7;4471:19;6751:14;;6678:95;:::o;7422:313::-;7520:4;7537:36;7547:6;7555:9;7566:6;7537:9;:36::i;:::-;7584:121;7593:6;7601:12;:10;:12::i;:::-;7615:89;7653:6;7615:89;;;;;;;;;;;;;;;;;:11;:19;7627:6;7615:19;;;;;;;;;;;;;;;:33;7635:12;:10;:12::i;:::-;7615:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7584:8;:121::i;:::-;7723:4;7716:11;;7422:313;;;;;:::o;15803:196::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15917:7:::1;15895:29;;:9;:18;15905:7;15895:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;15887:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15984:7;15963:9;:18;15973:7;15963:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15803:196:::0;;:::o;6587:83::-;6628:5;5209:1;6646:16;;6587:83;:::o;5271:28::-;;;;;;;;;;;;;:::o;15172:101::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15253:12:::1;15239:11;;:26;;;;;;;;;;;;;;;;;;15172:101:::0;:::o;14331:262::-;14397:19;;;;;;;;;;;14381:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14436:17;;;;;;;;;;;14420:33;;:12;:10;:12::i;:::-;:33;;;14381:72;:99;;;;14473:7;:5;:7::i;:::-;14457:23;;:12;:10;:12::i;:::-;:23;;;14381:99;14373:108;;;;;;14492:26;14521:21;14492:50;;14553:32;14566:18;14553:12;:32::i;:::-;14331:262;:::o;6781:138::-;6847:7;6874:37;6894:7;:16;6902:7;6894:16;;;;;;;;;;;;;;;;6874:19;:37::i;:::-;6867:44;;6781:138;;;:::o;2784:148::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2891:1:::1;2854:40;;2875:6;::::0;::::1;;;;;;;;2854:40;;;;;;;;;;;;2922:1;2905:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2784:148::o:0;15317:108::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15406:11:::1;15391:12;:26;;;;15317:108:::0;:::o;5421:37::-;;;;:::o;2570:79::-;2608:7;2635:6;;;;;;;;;;;2628:13;;2570:79;:::o;13951:101::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14032:12:::1;14018:11;;:26;;;;;;;;;;;;;;;;;;13951:101:::0;:::o;5465:39::-;;;;:::o;6492:87::-;6531:13;6564:7;;;;;;;;;;;;;;;;;6557:14;;6492:87;:::o;14815:301::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14966:13:::1;14949:14;:30;;;;15008:14;14990:15;:32;;;;15058:11;15043:12;:26;;;;15096:12;15080:13;:28;;;;14815:301:::0;;;;:::o;6927:167::-;7005:4;7022:42;7032:12;:10;:12::i;:::-;7046:9;7057:6;7022:9;:42::i;:::-;7082:4;7075:11;;6927:167;;;;:::o;4287:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;14060:263::-;14126:19;;;;;;;;;;;14110:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14165:17;;;;;;;;;;;14149:33;;:12;:10;:12::i;:::-;:33;;;14110:72;:99;;;;14202:7;:5;:7::i;:::-;14186:23;;:12;:10;:12::i;:::-;:23;;;14110:99;14102:108;;;;;;14221:23;14247:24;14265:4;14247:9;:24::i;:::-;14221:50;;14282:33;14299:15;14282:16;:33::i;:::-;14060:263;:::o;15560:234::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15677:9:::1;15673:114;15696:8;;:15;;15692:1;:19;15673:114;;;15767:8;15733:18;:31;15752:8;;15761:1;15752:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15733:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;15713:3;;;;;:::i;:::-;;;;15673:114;;;;15560:234:::0;;;:::o;7102:143::-;7183:7;7210:11;:18;7222:5;7210:18;;;;;;;;;;;;;;;:27;7229:7;7210:27;;;;;;;;;;;;;;;;7203:34;;7102:143;;;;:::o;15437:115::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15531:13:::1;15514:14;:30;;;;15437:115:::0;:::o;14605:198::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14701:9:::1;14696:100;14720:8;:15;14716:1;:19;14696:100;;;14777:7;14757:4;:17;14762:8;14771:1;14762:11;;;;;;;;;;;;;;;;;;;;;;14757:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;14737:3;;;;;:::i;:::-;;;;14696:100;;;;14605:198:::0;;:::o;2944:244::-;2707:12;:10;:12::i;:::-;2697:22;;:6;;;;;;;;;;:22;;;2689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3053:1:::1;3033:22;;:8;:22;;;;3025:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3143:8;3114:38;;3135:6;::::0;::::1;;;;;;;;3114:38;;;;;;;;;;;;3172:8;3163:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2944:244:::0;:::o;288:98::-;341:7;368:10;361:17;;288:98;:::o;8005:335::-;8115:1;8098:19;;:5;:19;;;;8090:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8196:1;8177:21;;:7;:21;;;;8169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8278:6;8248:11;:18;8260:5;8248:18;;;;;;;;;;;;;;;:27;8267:7;8248:27;;;;;;;;;;;;;;;:36;;;;8316:7;8300:32;;8309:5;8300:32;;;8325:6;8300:32;;;;;;:::i;:::-;;;;;;;;8005:335;;;:::o;8348:2163::-;8452:1;8436:18;;:4;:18;;;;8428:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8529:1;8515:16;;:2;:16;;;;8507:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8599:1;8590:6;:10;8582:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8679:1;8667:9;:13;;;;8701:1;8691:7;:11;;;;8735:7;:5;:7::i;:::-;8727:15;;:4;:15;;;;:32;;;;;8752:7;:5;:7::i;:::-;8746:13;;:2;:13;;;;8727:32;:52;;;;;8764:9;:15;8774:4;8764:15;;;;;;;;;;;;;;;;;;;;;;;;;8763:16;8727:52;:70;;;;;8784:9;:13;8794:2;8784:13;;;;;;;;;;;;;;;;;;;;;;;;;8783:14;8727:70;8723:1738;;;8866:11;;;;;;;;;;;8861:144;;8906:9;:15;8916:4;8906:15;;;;;;;;;;;;;;;;;;;;;;;;;8898:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8861:144;9037:4;:10;9042:4;9037:10;;;;;;;;;;;;;;;;;;;;;;;;;9036:11;:24;;;;;9052:4;:8;9057:2;9052:8;;;;;;;;;;;;;;;;;;;;;;;;;9051:9;9036:24;9028:33;;;;;;9094:12;;9084:6;:22;;9076:31;;;;;;9145:13;;;;;;;;;;;9139:19;;:2;:19;;;9136:146;;9212:14;;9203:6;9187:13;9197:2;9187:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9179:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9136:146;9310:28;9341:24;9359:4;9341:9;:24::i;:::-;9310:55;;9385:6;;;;;;;;;;;9384:7;:32;;;;;9403:13;;;;;;;;;;;9395:21;;:4;:21;;;;9384:32;:47;;;;;9420:11;;;;;;;;;;;9384:47;:75;;;;;9458:1;9435:20;:24;9384:75;9380:346;;;9480:38;9497:20;9480:16;:38::i;:::-;9537:26;9566:21;9537:50;;9630:1;9609:18;:22;9606:105;;;9656:35;9669:21;9656:12;:35::i;:::-;9606:105;9380:346;;9797:13;;;;;;;;;;;9789:21;;:4;:21;;;:55;;;;;9828:15;;;;;;;;;;;9814:30;;:2;:30;;;;9789:55;9786:162;;;9877:14;;9865:9;:26;;;;9920:12;;9910:7;:22;;;;9786:162;10011:13;;;;;;;;;;;10005:19;;:2;:19;;;:55;;;;;10044:15;;;;;;;;;;;10028:32;;:4;:32;;;;10005:55;10001:165;;;10093:15;;10081:9;:27;;;;10137:13;;10127:7;:23;;;;10001:165;10255:18;:24;10274:4;10255:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10283:18;:22;10302:2;10283:22;;;;;;;;;;;;;;;;;;;;;;;;;10255:50;10254:102;;;;10319:13;;;;;;;;;;;10311:21;;:4;:21;;;;:44;;;;;10342:13;;;;;;;;;;;10336:19;;:2;:19;;;;10311:44;10254:102;10250:186;;;10389:1;10377:9;:13;;;;10419:1;10409:7;:11;;;;10250:186;8723:1738;;10473:30;10488:4;10493:2;10496:6;10473:14;:30::i;:::-;8348:2163;;;:::o;1425:190::-;1511:7;1544:1;1539;:6;;1547:12;1531:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1571:9;1587:1;1583;:5;;;;:::i;:::-;1571:17;;1606:1;1599:8;;;1425:190;;;;;:::o;11018:160::-;11075:19;;;;;;;;;;;:28;;:43;11104:13;11115:1;11104:6;:10;;:13;;;;:::i;:::-;11075:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11129:17;;;;;;;;;;;:26;;:41;11156:13;11167:1;11156:6;:10;;:13;;;;:::i;:::-;11129:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11018:160;:::o;7743:254::-;7810:7;7849;;7838;:18;;7830:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7914:19;7937:10;:8;:10::i;:::-;7914:33;;7965:24;7977:11;7965:7;:11;;:24;;;;:::i;:::-;7958:31;;;7743:254;;;:::o;10519:483::-;5604:4;5595:6;;:13;;;;;;;;;;;;;;;;;;10597:21:::1;10635:1;10621:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10597:40;;10666:4;10648;10653:1;10648:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10692:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10682:4;10687:1;10682:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10725:62;10742:4;10757:15;;;;;;;;;;;10775:11;10725:8;:62::i;:::-;10798:15;;;;;;;;;;;:66;;;10879:11;10905:1;10921:4;10948;10968:15;10798:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5619:1;5640:5:::0;5631:6;;:14;;;;;;;;;;;;;;;;;;10519:483;:::o;11190:146::-;11284:44;11302:6;11310:9;11321:6;11284:17;:44::i;:::-;11190:146;;;:::o;1877:132::-;1935:7;1962:39;1966:1;1969;1962:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1955:46;;1877:132;;;;:::o;13506:163::-;13547:7;13568:15;13585;13604:19;:17;:19::i;:::-;13567:56;;;;13641:20;13653:7;13641;:11;;:20;;;;:::i;:::-;13634:27;;;;13506:163;:::o;11344:488::-;11443:15;11460:23;11485:12;11499:23;11524:12;11538:13;11555:19;11566:7;11555:10;:19::i;:::-;11442:132;;;;;;;;;;;;11603:28;11623:7;11603;:15;11611:6;11603:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11585:7;:15;11593:6;11585:15;;;;;;;;;;;;;;;:46;;;;11663:39;11686:15;11663:7;:18;11671:9;11663:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11642:7;:18;11650:9;11642:18;;;;;;;;;;;;;;;:60;;;;11714:16;11724:5;11714:9;:16::i;:::-;11741:23;11753:4;11759;11741:11;:23::i;:::-;11797:9;11780:44;;11789:6;11780:44;;;11808:15;11780:44;;;;;;:::i;:::-;;;;;;;;11344:488;;;;;;;;;:::o;2017:189::-;2103:7;2135:1;2131;:5;2138:12;2123:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2162:9;2178:1;2174;:5;;;;:::i;:::-;2162:17;;2197:1;2190:8;;;2017:189;;;;;:::o;13677:262::-;13727:7;13736;13756:15;13774:7;;13756:25;;13792:15;4471:19;13792:25;;13848:20;4471:19;13848:7;;:11;;:20;;;;:::i;:::-;13838:7;:30;13834:61;;;13878:7;;4471:19;13870:25;;;;;;;;13834:61;13914:7;13923;13906:25;;;;;;13677:262;;;:::o;12256:469::-;12315:7;12324;12333;12342;12351;12360;12381:23;12406:12;12420:13;12437:40;12449:7;12458:9;;12469:7;;12437:11;:40::i;:::-;12380:97;;;;;;12488:19;12511:10;:8;:10::i;:::-;12488:33;;12533:15;12550:23;12575:12;12591:46;12603:7;12612:4;12618:5;12625:11;12591;:46::i;:::-;12532:105;;;;;;12656:7;12665:15;12682:4;12688:15;12705:4;12711:5;12648:69;;;;;;;;;;;;;;;;;;;12256:469;;;;;;;:::o;1281:136::-;1339:7;1366:43;1370:1;1373;1366:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1359:50;;1281:136;;;;:::o;1094:179::-;1152:7;1172:9;1188:1;1184;:5;;;;:::i;:::-;1172:17;;1213:1;1208;:6;;1200:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1264:1;1257:8;;;1094:179;;;;:::o;11840:212::-;11893:19;11916:10;:8;:10::i;:::-;11893:33;;11937:13;11953:22;11963:11;11953:5;:9;;:22;;;;:::i;:::-;11937:38;;12011:33;12038:5;12011:7;:22;12027:4;12011:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11986:7;:22;12002:4;11986:22;;;;;;;;;;;;;;;:58;;;;11840:212;;;:::o;12060:147::-;12138:17;12150:4;12138:7;;:11;;:17;;;;:::i;:::-;12128:7;:27;;;;12179:20;12194:4;12179:10;;:14;;:20;;;;:::i;:::-;12166:10;:33;;;;12060:147;;:::o;12733:351::-;12826:7;12835;12844;12864:12;12879:28;12903:3;12879:19;12891:6;12879:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12864:43;;12918:13;12934:29;12959:3;12934:20;12946:7;12934;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12918:45;;12974:23;13000:28;13022:5;13000:17;13012:4;13000:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12974:54;;13047:15;13064:4;13070:5;13039:37;;;;;;;;;12733:351;;;;;;;:::o;13092:409::-;13202:7;13211;13220;13240:15;13258:24;13270:11;13258:7;:11;;:24;;;;:::i;:::-;13240:42;;13293:12;13308:21;13317:11;13308:4;:8;;:21;;;;:::i;:::-;13293:36;;13340:13;13356:22;13366:11;13356:5;:9;;:22;;;;:::i;:::-;13340:38;;13389:23;13415:28;13437:5;13415:17;13427:4;13415:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13389:54;;13462:7;13471:15;13488:4;13454:39;;;;;;;;;;13092:409;;;;;;;;:::o;1623:246::-;1681:7;1710:1;1705;:6;1701:47;;;1735:1;1728:8;;;;1701:47;1758:9;1774:1;1770;:5;;;;:::i;:::-;1758:17;;1803:1;1798;1794;:5;;;;:::i;:::-;:10;1786:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1860:1;1853:8;;;1623:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:367::-;1069:8;1079:6;1129:3;1122:4;1114:6;1110:17;1106:27;1096:2;;1147:1;1144;1137:12;1096:2;1183:6;1170:20;1160:30;;1213:18;1205:6;1202:30;1199:2;;;1245:1;1242;1235:12;1199:2;1282:4;1274:6;1270:17;1258:29;;1336:3;1328:4;1320:6;1316:17;1306:8;1302:32;1299:41;1296:2;;;1353:1;1350;1343:12;1296:2;1086:277;;;;;:::o;1386:303::-;1457:5;1506:3;1499:4;1491:6;1487:17;1483:27;1473:2;;1524:1;1521;1514:12;1473:2;1564:6;1551:20;1589:94;1679:3;1671:6;1664:4;1656:6;1652:17;1589:94;:::i;:::-;1580:103;;1463:226;;;;;:::o;1695:133::-;1738:5;1776:6;1763:20;1754:29;;1792:30;1816:5;1792:30;:::i;:::-;1744:84;;;;:::o;1834:139::-;1880:5;1918:6;1905:20;1896:29;;1934:33;1961:5;1934:33;:::i;:::-;1886:87;;;;:::o;1979:262::-;2038:6;2087:2;2075:9;2066:7;2062:23;2058:32;2055:2;;;2103:1;2100;2093:12;2055:2;2146:1;2171:53;2216:7;2207:6;2196:9;2192:22;2171:53;:::i;:::-;2161:63;;2117:117;2045:196;;;;:::o;2247:284::-;2317:6;2366:2;2354:9;2345:7;2341:23;2337:32;2334:2;;;2382:1;2379;2372:12;2334:2;2425:1;2450:64;2506:7;2497:6;2486:9;2482:22;2450:64;:::i;:::-;2440:74;;2396:128;2324:207;;;;:::o;2537:407::-;2605:6;2613;2662:2;2650:9;2641:7;2637:23;2633:32;2630:2;;;2678:1;2675;2668:12;2630:2;2721:1;2746:53;2791:7;2782:6;2771:9;2767:22;2746:53;:::i;:::-;2736:63;;2692:117;2848:2;2874:53;2919:7;2910:6;2899:9;2895:22;2874:53;:::i;:::-;2864:63;;2819:118;2620:324;;;;;:::o;2950:552::-;3027:6;3035;3043;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3151:1;3176:53;3221:7;3212:6;3201:9;3197:22;3176:53;:::i;:::-;3166:63;;3122:117;3278:2;3304:53;3349:7;3340:6;3329:9;3325:22;3304:53;:::i;:::-;3294:63;;3249:118;3406:2;3432:53;3477:7;3468:6;3457:9;3453:22;3432:53;:::i;:::-;3422:63;;3377:118;3050:452;;;;;:::o;3508:401::-;3573:6;3581;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;3646:1;3643;3636:12;3598:2;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:50;3884:7;3875:6;3864:9;3860:22;3842:50;:::i;:::-;3832:60;;3787:115;3588:321;;;;;:::o;3915:407::-;3983:6;3991;4040:2;4028:9;4019:7;4015:23;4011:32;4008:2;;;4056:1;4053;4046:12;4008:2;4099:1;4124:53;4169:7;4160:6;4149:9;4145:22;4124:53;:::i;:::-;4114:63;;4070:117;4226:2;4252:53;4297:7;4288:6;4277:9;4273:22;4252:53;:::i;:::-;4242:63;;4197:118;3998:324;;;;;:::o;4328:564::-;4420:6;4428;4436;4485:2;4473:9;4464:7;4460:23;4456:32;4453:2;;;4501:1;4498;4491:12;4453:2;4572:1;4561:9;4557:17;4544:31;4602:18;4594:6;4591:30;4588:2;;;4634:1;4631;4624:12;4588:2;4670:80;4742:7;4733:6;4722:9;4718:22;4670:80;:::i;:::-;4652:98;;;;4515:245;4799:2;4825:50;4867:7;4858:6;4847:9;4843:22;4825:50;:::i;:::-;4815:60;;4770:115;4443:449;;;;;:::o;4898:544::-;4988:6;4996;5045:2;5033:9;5024:7;5020:23;5016:32;5013:2;;;5061:1;5058;5051:12;5013:2;5132:1;5121:9;5117:17;5104:31;5162:18;5154:6;5151:30;5148:2;;;5194:1;5191;5184:12;5148:2;5222:78;5292:7;5283:6;5272:9;5268:22;5222:78;:::i;:::-;5212:88;;5075:235;5349:2;5375:50;5417:7;5408:6;5397:9;5393:22;5375:50;:::i;:::-;5365:60;;5320:115;5003:439;;;;;:::o;5448:256::-;5504:6;5553:2;5541:9;5532:7;5528:23;5524:32;5521:2;;;5569:1;5566;5559:12;5521:2;5612:1;5637:50;5679:7;5670:6;5659:9;5655:22;5637:50;:::i;:::-;5627:60;;5583:114;5511:193;;;;:::o;5710:262::-;5769:6;5818:2;5806:9;5797:7;5793:23;5789:32;5786:2;;;5834:1;5831;5824:12;5786:2;5877:1;5902:53;5947:7;5938:6;5927:9;5923:22;5902:53;:::i;:::-;5892:63;;5848:117;5776:196;;;;:::o;5978:698::-;6064:6;6072;6080;6088;6137:3;6125:9;6116:7;6112:23;6108:33;6105:2;;;6154:1;6151;6144:12;6105:2;6197:1;6222:53;6267:7;6258:6;6247:9;6243:22;6222:53;:::i;:::-;6212:63;;6168:117;6324:2;6350:53;6395:7;6386:6;6375:9;6371:22;6350:53;:::i;:::-;6340:63;;6295:118;6452:2;6478:53;6523:7;6514:6;6503:9;6499:22;6478:53;:::i;:::-;6468:63;;6423:118;6580:2;6606:53;6651:7;6642:6;6631:9;6627:22;6606:53;:::i;:::-;6596:63;;6551:118;6095:581;;;;;;;:::o;6682:179::-;6751:10;6772:46;6814:3;6806:6;6772:46;:::i;:::-;6850:4;6845:3;6841:14;6827:28;;6762:99;;;;:::o;6867:108::-;6944:24;6962:5;6944:24;:::i;:::-;6939:3;6932:37;6922:53;;:::o;6981:118::-;7068:24;7086:5;7068:24;:::i;:::-;7063:3;7056:37;7046:53;;:::o;7135:732::-;7254:3;7283:54;7331:5;7283:54;:::i;:::-;7353:86;7432:6;7427:3;7353:86;:::i;:::-;7346:93;;7463:56;7513:5;7463:56;:::i;:::-;7542:7;7573:1;7558:284;7583:6;7580:1;7577:13;7558:284;;;7659:6;7653:13;7686:63;7745:3;7730:13;7686:63;:::i;:::-;7679:70;;7772:60;7825:6;7772:60;:::i;:::-;7762:70;;7618:224;7605:1;7602;7598:9;7593:14;;7558:284;;;7562:14;7858:3;7851:10;;7259:608;;;;;;;:::o;7873:109::-;7954:21;7969:5;7954:21;:::i;:::-;7949:3;7942:34;7932:50;;:::o;7988:183::-;8101:63;8158:5;8101:63;:::i;:::-;8096:3;8089:76;8079:92;;:::o;8177:147::-;8272:45;8311:5;8272:45;:::i;:::-;8267:3;8260:58;8250:74;;:::o;8330:364::-;8418:3;8446:39;8479:5;8446:39;:::i;:::-;8501:71;8565:6;8560:3;8501:71;:::i;:::-;8494:78;;8581:52;8626:6;8621:3;8614:4;8607:5;8603:16;8581:52;:::i;:::-;8658:29;8680:6;8658:29;:::i;:::-;8653:3;8649:39;8642:46;;8422:272;;;;;:::o;8700:366::-;8842:3;8863:67;8927:2;8922:3;8863:67;:::i;:::-;8856:74;;8939:93;9028:3;8939:93;:::i;:::-;9057:2;9052:3;9048:12;9041:19;;8846:220;;;:::o;9072:366::-;9214:3;9235:67;9299:2;9294:3;9235:67;:::i;:::-;9228:74;;9311:93;9400:3;9311:93;:::i;:::-;9429:2;9424:3;9420:12;9413:19;;9218:220;;;:::o;9444:366::-;9586:3;9607:67;9671:2;9666:3;9607:67;:::i;:::-;9600:74;;9683:93;9772:3;9683:93;:::i;:::-;9801:2;9796:3;9792:12;9785:19;;9590:220;;;:::o;9816:366::-;9958:3;9979:67;10043:2;10038:3;9979:67;:::i;:::-;9972:74;;10055:93;10144:3;10055:93;:::i;:::-;10173:2;10168:3;10164:12;10157:19;;9962:220;;;:::o;10188:366::-;10330:3;10351:67;10415:2;10410:3;10351:67;:::i;:::-;10344:74;;10427:93;10516:3;10427:93;:::i;:::-;10545:2;10540:3;10536:12;10529:19;;10334:220;;;:::o;10560:366::-;10702:3;10723:67;10787:2;10782:3;10723:67;:::i;:::-;10716:74;;10799:93;10888:3;10799:93;:::i;:::-;10917:2;10912:3;10908:12;10901:19;;10706:220;;;:::o;10932:366::-;11074:3;11095:67;11159:2;11154:3;11095:67;:::i;:::-;11088:74;;11171:93;11260:3;11171:93;:::i;:::-;11289:2;11284:3;11280:12;11273:19;;11078:220;;;:::o;11304:366::-;11446:3;11467:67;11531:2;11526:3;11467:67;:::i;:::-;11460:74;;11543:93;11632:3;11543:93;:::i;:::-;11661:2;11656:3;11652:12;11645:19;;11450:220;;;:::o;11676:366::-;11818:3;11839:67;11903:2;11898:3;11839:67;:::i;:::-;11832:74;;11915:93;12004:3;11915:93;:::i;:::-;12033:2;12028:3;12024:12;12017:19;;11822:220;;;:::o;12048:366::-;12190:3;12211:67;12275:2;12270:3;12211:67;:::i;:::-;12204:74;;12287:93;12376:3;12287:93;:::i;:::-;12405:2;12400:3;12396:12;12389:19;;12194:220;;;:::o;12420:366::-;12562:3;12583:67;12647:2;12642:3;12583:67;:::i;:::-;12576:74;;12659:93;12748:3;12659:93;:::i;:::-;12777:2;12772:3;12768:12;12761:19;;12566:220;;;:::o;12792:366::-;12934:3;12955:67;13019:2;13014:3;12955:67;:::i;:::-;12948:74;;13031:93;13120:3;13031:93;:::i;:::-;13149:2;13144:3;13140:12;13133:19;;12938:220;;;:::o;13164:366::-;13306:3;13327:67;13391:2;13386:3;13327:67;:::i;:::-;13320:74;;13403:93;13492:3;13403:93;:::i;:::-;13521:2;13516:3;13512:12;13505:19;;13310:220;;;:::o;13536:118::-;13623:24;13641:5;13623:24;:::i;:::-;13618:3;13611:37;13601:53;;:::o;13660:112::-;13743:22;13759:5;13743:22;:::i;:::-;13738:3;13731:35;13721:51;;:::o;13778:222::-;13871:4;13909:2;13898:9;13894:18;13886:26;;13922:71;13990:1;13979:9;13975:17;13966:6;13922:71;:::i;:::-;13876:124;;;;:::o;14006:210::-;14093:4;14131:2;14120:9;14116:18;14108:26;;14144:65;14206:1;14195:9;14191:17;14182:6;14144:65;:::i;:::-;14098:118;;;;:::o;14222:274::-;14341:4;14379:2;14368:9;14364:18;14356:26;;14392:97;14486:1;14475:9;14471:17;14462:6;14392:97;:::i;:::-;14346:150;;;;:::o;14502:313::-;14615:4;14653:2;14642:9;14638:18;14630:26;;14702:9;14696:4;14692:20;14688:1;14677:9;14673:17;14666:47;14730:78;14803:4;14794:6;14730:78;:::i;:::-;14722:86;;14620:195;;;;:::o;14821:419::-;14987:4;15025:2;15014:9;15010:18;15002:26;;15074:9;15068:4;15064:20;15060:1;15049:9;15045:17;15038:47;15102:131;15228:4;15102:131;:::i;:::-;15094:139;;14992:248;;;:::o;15246:419::-;15412:4;15450:2;15439:9;15435:18;15427:26;;15499:9;15493:4;15489:20;15485:1;15474:9;15470:17;15463:47;15527:131;15653:4;15527:131;:::i;:::-;15519:139;;15417:248;;;:::o;15671:419::-;15837:4;15875:2;15864:9;15860:18;15852:26;;15924:9;15918:4;15914:20;15910:1;15899:9;15895:17;15888:47;15952:131;16078:4;15952:131;:::i;:::-;15944:139;;15842:248;;;:::o;16096:419::-;16262:4;16300:2;16289:9;16285:18;16277:26;;16349:9;16343:4;16339:20;16335:1;16324:9;16320:17;16313:47;16377:131;16503:4;16377:131;:::i;:::-;16369:139;;16267:248;;;:::o;16521:419::-;16687:4;16725:2;16714:9;16710:18;16702:26;;16774:9;16768:4;16764:20;16760:1;16749:9;16745:17;16738:47;16802:131;16928:4;16802:131;:::i;:::-;16794:139;;16692:248;;;:::o;16946:419::-;17112:4;17150:2;17139:9;17135:18;17127:26;;17199:9;17193:4;17189:20;17185:1;17174:9;17170:17;17163:47;17227:131;17353:4;17227:131;:::i;:::-;17219:139;;17117:248;;;:::o;17371:419::-;17537:4;17575:2;17564:9;17560:18;17552:26;;17624:9;17618:4;17614:20;17610:1;17599:9;17595:17;17588:47;17652:131;17778:4;17652:131;:::i;:::-;17644:139;;17542:248;;;:::o;17796:419::-;17962:4;18000:2;17989:9;17985:18;17977:26;;18049:9;18043:4;18039:20;18035:1;18024:9;18020:17;18013:47;18077:131;18203:4;18077:131;:::i;:::-;18069:139;;17967:248;;;:::o;18221:419::-;18387:4;18425:2;18414:9;18410:18;18402:26;;18474:9;18468:4;18464:20;18460:1;18449:9;18445:17;18438:47;18502:131;18628:4;18502:131;:::i;:::-;18494:139;;18392:248;;;:::o;18646:419::-;18812:4;18850:2;18839:9;18835:18;18827:26;;18899:9;18893:4;18889:20;18885:1;18874:9;18870:17;18863:47;18927:131;19053:4;18927:131;:::i;:::-;18919:139;;18817:248;;;:::o;19071:419::-;19237:4;19275:2;19264:9;19260:18;19252:26;;19324:9;19318:4;19314:20;19310:1;19299:9;19295:17;19288:47;19352:131;19478:4;19352:131;:::i;:::-;19344:139;;19242:248;;;:::o;19496:419::-;19662:4;19700:2;19689:9;19685:18;19677:26;;19749:9;19743:4;19739:20;19735:1;19724:9;19720:17;19713:47;19777:131;19903:4;19777:131;:::i;:::-;19769:139;;19667:248;;;:::o;19921:419::-;20087:4;20125:2;20114:9;20110:18;20102:26;;20174:9;20168:4;20164:20;20160:1;20149:9;20145:17;20138:47;20202:131;20328:4;20202:131;:::i;:::-;20194:139;;20092:248;;;:::o;20346:222::-;20439:4;20477:2;20466:9;20462:18;20454:26;;20490:71;20558:1;20547:9;20543:17;20534:6;20490:71;:::i;:::-;20444:124;;;;:::o;20574:831::-;20837:4;20875:3;20864:9;20860:19;20852:27;;20889:71;20957:1;20946:9;20942:17;20933:6;20889:71;:::i;:::-;20970:80;21046:2;21035:9;21031:18;21022:6;20970:80;:::i;:::-;21097:9;21091:4;21087:20;21082:2;21071:9;21067:18;21060:48;21125:108;21228:4;21219:6;21125:108;:::i;:::-;21117:116;;21243:72;21311:2;21300:9;21296:18;21287:6;21243:72;:::i;:::-;21325:73;21393:3;21382:9;21378:19;21369:6;21325:73;:::i;:::-;20842:563;;;;;;;;:::o;21411:214::-;21500:4;21538:2;21527:9;21523:18;21515:26;;21551:67;21615:1;21604:9;21600:17;21591:6;21551:67;:::i;:::-;21505:120;;;;:::o;21631:129::-;21665:6;21692:20;;:::i;:::-;21682:30;;21721:33;21749:4;21741:6;21721:33;:::i;:::-;21672:88;;;:::o;21766:75::-;21799:6;21832:2;21826:9;21816:19;;21806:35;:::o;21847:311::-;21924:4;22014:18;22006:6;22003:30;22000:2;;;22036:18;;:::i;:::-;22000:2;22086:4;22078:6;22074:17;22066:25;;22146:4;22140;22136:15;22128:23;;21929:229;;;:::o;22164:132::-;22231:4;22254:3;22246:11;;22284:4;22279:3;22275:14;22267:22;;22236:60;;;:::o;22302:114::-;22369:6;22403:5;22397:12;22387:22;;22376:40;;;:::o;22422:99::-;22474:6;22508:5;22502:12;22492:22;;22481:40;;;:::o;22527:113::-;22597:4;22629;22624:3;22620:14;22612:22;;22602:38;;;:::o;22646:184::-;22745:11;22779:6;22774:3;22767:19;22819:4;22814:3;22810:14;22795:29;;22757:73;;;;:::o;22836:169::-;22920:11;22954:6;22949:3;22942:19;22994:4;22989:3;22985:14;22970:29;;22932:73;;;;:::o;23011:305::-;23051:3;23070:20;23088:1;23070:20;:::i;:::-;23065:25;;23104:20;23122:1;23104:20;:::i;:::-;23099:25;;23258:1;23190:66;23186:74;23183:1;23180:81;23177:2;;;23264:18;;:::i;:::-;23177:2;23308:1;23305;23301:9;23294:16;;23055:261;;;;:::o;23322:185::-;23362:1;23379:20;23397:1;23379:20;:::i;:::-;23374:25;;23413:20;23431:1;23413:20;:::i;:::-;23408:25;;23452:1;23442:2;;23457:18;;:::i;:::-;23442:2;23499:1;23496;23492:9;23487:14;;23364:143;;;;:::o;23513:348::-;23553:7;23576:20;23594:1;23576:20;:::i;:::-;23571:25;;23610:20;23628:1;23610:20;:::i;:::-;23605:25;;23798:1;23730:66;23726:74;23723:1;23720:81;23715:1;23708:9;23701:17;23697:105;23694:2;;;23805:18;;:::i;:::-;23694:2;23853:1;23850;23846:9;23835:20;;23561:300;;;;:::o;23867:191::-;23907:4;23927:20;23945:1;23927:20;:::i;:::-;23922:25;;23961:20;23979:1;23961:20;:::i;:::-;23956:25;;24000:1;23997;23994:8;23991:2;;;24005:18;;:::i;:::-;23991:2;24050:1;24047;24043:9;24035:17;;23912:146;;;;:::o;24064:96::-;24101:7;24130:24;24148:5;24130:24;:::i;:::-;24119:35;;24109:51;;;:::o;24166:90::-;24200:7;24243:5;24236:13;24229:21;24218:32;;24208:48;;;:::o;24262:126::-;24299:7;24339:42;24332:5;24328:54;24317:65;;24307:81;;;:::o;24394:77::-;24431:7;24460:5;24449:16;;24439:32;;;:::o;24477:86::-;24512:7;24552:4;24545:5;24541:16;24530:27;;24520:43;;;:::o;24569:178::-;24645:9;24678:63;24735:5;24678:63;:::i;:::-;24665:76;;24655:92;;;:::o;24753:139::-;24829:9;24862:24;24880:5;24862:24;:::i;:::-;24849:37;;24839:53;;;:::o;24898:121::-;24956:9;24989:24;25007:5;24989:24;:::i;:::-;24976:37;;24966:53;;;:::o;25025:307::-;25093:1;25103:113;25117:6;25114:1;25111:13;25103:113;;;25202:1;25197:3;25193:11;25187:18;25183:1;25178:3;25174:11;25167:39;25139:2;25136:1;25132:10;25127:15;;25103:113;;;25234:6;25231:1;25228:13;25225:2;;;25314:1;25305:6;25300:3;25296:16;25289:27;25225:2;25074:258;;;;:::o;25338:281::-;25421:27;25443:4;25421:27;:::i;:::-;25413:6;25409:40;25551:6;25539:10;25536:22;25515:18;25503:10;25500:34;25497:62;25494:2;;;25562:18;;:::i;:::-;25494:2;25602:10;25598:2;25591:22;25381:238;;;:::o;25625:233::-;25664:3;25687:24;25705:5;25687:24;:::i;:::-;25678:33;;25733:66;25726:5;25723:77;25720:2;;;25803:18;;:::i;:::-;25720:2;25850:1;25843:5;25839:13;25832:20;;25668:190;;;:::o;25864:180::-;25912:77;25909:1;25902:88;26009:4;26006:1;25999:15;26033:4;26030:1;26023:15;26050:180;26098:77;26095:1;26088:88;26195:4;26192:1;26185:15;26219:4;26216:1;26209:15;26236:180;26284:77;26281:1;26274:88;26381:4;26378:1;26371:15;26405:4;26402:1;26395:15;26422:102;26463:6;26514:2;26510:7;26505:2;26498:5;26494:14;26490:28;26480:38;;26470:54;;;:::o;26530:222::-;26670:34;26666:1;26658:6;26654:14;26647:58;26739:5;26734:2;26726:6;26722:15;26715:30;26636:116;:::o;26758:250::-;26898:34;26894:1;26886:6;26882:14;26875:58;26967:33;26962:2;26954:6;26950:15;26943:58;26864:144;:::o;27014:229::-;27154:34;27150:1;27142:6;27138:14;27131:58;27223:12;27218:2;27210:6;27206:15;27199:37;27120:123;:::o;27249:225::-;27389:34;27385:1;27377:6;27373:14;27366:58;27458:8;27453:2;27445:6;27441:15;27434:33;27355:119;:::o;27480:221::-;27620:34;27616:1;27608:6;27604:14;27597:58;27689:4;27684:2;27676:6;27672:15;27665:29;27586:115;:::o;27707:177::-;27847:29;27843:1;27835:6;27831:14;27824:53;27813:71;:::o;27890:173::-;28030:25;28026:1;28018:6;28014:14;28007:49;27996:67;:::o;28069:220::-;28209:34;28205:1;28197:6;28193:14;28186:58;28278:3;28273:2;28265:6;28261:15;28254:28;28175:114;:::o;28295:182::-;28435:34;28431:1;28423:6;28419:14;28412:58;28401:76;:::o;28483:228::-;28623:34;28619:1;28611:6;28607:14;28600:58;28692:11;28687:2;28679:6;28675:15;28668:36;28589:122;:::o;28717:224::-;28857:34;28853:1;28845:6;28841:14;28834:58;28926:7;28921:2;28913:6;28909:15;28902:32;28823:118;:::o;28947:222::-;29087:34;29083:1;29075:6;29071:14;29064:58;29156:5;29151:2;29143:6;29139:15;29132:30;29053:116;:::o;29175:223::-;29315:34;29311:1;29303:6;29299:14;29292:58;29384:6;29379:2;29371:6;29367:15;29360:31;29281:117;:::o;29404:122::-;29477:24;29495:5;29477:24;:::i;:::-;29470:5;29467:35;29457:2;;29516:1;29513;29506:12;29457:2;29447:79;:::o;29532:116::-;29602:21;29617:5;29602:21;:::i;:::-;29595:5;29592:32;29582:2;;29638:1;29635;29628:12;29582:2;29572:76;:::o;29654:122::-;29727:24;29745:5;29727:24;:::i;:::-;29720:5;29717:35;29707:2;;29766:1;29763;29756:12;29707:2;29697:79;:::o

Swarm Source

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