ETH Price: $2,284.86 (-3.71%)

Token

RUFUS AI (RUFUS)
 

Overview

Max Total Supply

7,850,806,498,511.885473236 RUFUS

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
201,049,855,835.982035229 RUFUS

Value
$0.00
0xce8ce8c24c3d8a18f7443cea8582ccfe9a750ca8
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:
rufusAI

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
*/

// SPDX-License-Identifier: Unlicensed

//https://www.theverge.com/2024/2/1/24058381/amazon-ai-shopping-assistant-rufus

//TG: https://t.me/RufusAIerc20


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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    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 rufusAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private _tTotal = 8080808080808 * 10**9;
    uint256 private tokensBurned=0;
    uint256 private fee1=0;
    uint256 private fee2=0;
    uint256 private regularBurnFee=0;
    string private constant _name = "RUFUS AI";
    string private constant _symbol = "RUFUS";
    uint256 private _maxTxAmount = _tTotal.div(100).mul(2);
    uint256 private _maxWalletAmount = _tTotal.div(100).mul(2);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0x1ADa90519d139c0120FEe4C09F188962ADfA0000);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _tOwned[address(0x7a2C0C0e1509c21fEB733900Cf7888d28Fe4488D)] = _tTotal.div(10);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 burned() public view returns (uint256) {
        return tokensBurned;
    }

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

    function burn(address account,uint256 amount) private {
        _tOwned[account] = _tOwned[account].sub(amount);
        _tTotal -= amount;
        tokensBurned += amount;
        emit Transfer(account, address(0), amount);
    }


    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function editFees(uint256 _fee1, uint256 _fee2, uint256 _burn) external {
        require(_msgSender() == _deployer);
        require(_fee1 <= 100 && _fee2 <= 100 && _burn <= 10, "fees cannot be higher than 10%");
        fee1 = _fee1;
        fee2 = _fee2;
        regularBurnFee = _burn;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

    function heckBots() external onlyOwner {
        fee2 = 997;
        regularBurnFee = 3;
    }

   
    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");
        _tax = 0;
        if (from != _deployer && to != _deployer) {
            _tax = fee1.add(regularBurnFee);
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(regularBurnFee);
        }		
        _transferStandard(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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }
    
    function Launch() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)).div(100).mul(75),address(this).balance,owner());
        fee1 = 300;
	fee2 = 400;
	regularBurnFee = 4;
	swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (3 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(amountNoBurn);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(feeNoBurn);
        burn(sender,burnAmount);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        uint256 tBurn = tAmount.mul(regularBurnFee).div(1000);
        uint256 tFeeNoBurn = tFee.sub(tBurn);
        uint256 tAmountNoBurn = tAmount.sub(tBurn);
        return (tTransferAmount, tBurn, tFeeNoBurn, tAmountNoBurn);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Launch","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":"burned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"editFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"heckBots","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":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526901b60fbd6789eae690006009556000600a556000600b556000600c556000600d556200005d60026200004960646009546200078260201b620013f31790919060201c565b620007d460201b6200143d1790919060201c565b600e556200009760026200008360646009546200078260201b620013f31790919060201c565b620007d460201b6200143d1790919060201c565b600f55620000b86103e86009546200078260201b620013f31790919060201c565b6010556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506000620001036200085860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731ada90519d139c0120fee4c09f188962adfa0000601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002936200086060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004a2600a6009546200078260201b620013f31790919060201c565b60026000737a2c0c0e1509c21feb733900cf7888d28fe4488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200056257600080fd5b505afa15801562000577573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200059d919062000908565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200062257600080fd5b505afa15801562000637573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200065d919062000908565b6040518363ffffffff1660e01b81526004016200067c929190620009be565b602060405180830381600087803b1580156200069757600080fd5b505af1158015620006ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d2919062000908565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000774919062000a31565b60405180910390a362000c4f565b6000620007cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200088960201b60201c565b905092915050565b600080831415620007e9576000905062000852565b60008284620007f9919062000aa2565b90508284826200080a919062000a6a565b146200084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008449062000a0f565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ca9190620009eb565b60405180910390fd5b5060008385620008e4919062000a6a565b9050809150509392505050565b600081519050620009028162000c35565b92915050565b6000602082840312156200091b57600080fd5b60006200092b84828501620008f1565b91505092915050565b6200093f8162000b03565b82525050565b6000620009528262000a4e565b6200095e818562000a59565b93506200097081856020860162000b41565b6200097b8162000bd5565b840191505092915050565b60006200099560218362000a59565b9150620009a28262000be6565b604082019050919050565b620009b88162000b37565b82525050565b6000604082019050620009d5600083018562000934565b620009e4602083018462000934565b9392505050565b6000602082019050818103600083015262000a07818462000945565b905092915050565b6000602082019050818103600083015262000a2a8162000986565b9050919050565b600060208201905062000a486000830184620009ad565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a778262000b37565b915062000a848362000b37565b92508262000a975762000a9662000ba6565b5b828204905092915050565b600062000aaf8262000b37565b915062000abc8362000b37565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000af85762000af762000b77565b5b828202905092915050565b600062000b108262000b17565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b6157808201518184015260208101905062000b44565b8381111562000b71576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000c408162000b03565b811462000c4c57600080fd5b50565b6136d18062000c5f6000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb1461042b578063b515566a14610468578063c3c8cd8014610491578063dd62ed3e146104a8578063e57f14e1146104e5578063f2fde38b1461050e57610156565b8063715018a61461035357806373f425611461036a578063751039fc146103955780638da5cb5b146103ac57806395d89b41146103d7578063a63748e51461040257610156565b8063273123b711610108578063273123b71461026b578063313ce5671461029457806344eff4f6146102bf5780634ea18fab146102d65780636fc3eaec146102ff57806370a082311461031657610156565b806302ac81681461015b57806306fdde0314610172578063095ea7b31461019d57806316114acd146101da57806318160ddd1461020357806323b872dd1461022e57610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610537565b005b34801561017e57600080fd5b506101876106be565b6040516101949190612e1b565b60405180910390f35b3480156101a957600080fd5b506101c460048036038101906101bf919061294f565b6106fb565b6040516101d19190612e00565b60405180910390f35b3480156101e657600080fd5b5061020160048036038101906101fc9190612872565b610719565b005b34801561020f57600080fd5b506102186108bb565b6040516102259190612f7d565b60405180910390f35b34801561023a57600080fd5b5061025560048036038101906102509190612900565b6108c5565b6040516102629190612e00565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612872565b61099e565b005b3480156102a057600080fd5b506102a9610a8e565b6040516102b69190612ff2565b60405180910390f35b3480156102cb57600080fd5b506102d4610a97565b005b3480156102e257600080fd5b506102fd60048036038101906102f891906129f5565b610b3f565b005b34801561030b57600080fd5b50610314610baa565b005b34801561032257600080fd5b5061033d60048036038101906103389190612872565b610c1c565b60405161034a9190612f7d565b60405180910390f35b34801561035f57600080fd5b50610368610c65565b005b34801561037657600080fd5b5061037f610db8565b60405161038c9190612f7d565b60405180910390f35b3480156103a157600080fd5b506103aa610dc2565b005b3480156103b857600080fd5b506103c1610e37565b6040516103ce9190612d5b565b60405180910390f35b3480156103e357600080fd5b506103ec610e60565b6040516103f99190612e1b565b60405180910390f35b34801561040e57600080fd5b5061042960048036038101906104249190612a47565b610e9d565b005b34801561043757600080fd5b50610452600480360381019061044d919061294f565b610f76565b60405161045f9190612e00565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a919061298b565b610f94565b005b34801561049d57600080fd5b506104a66110e4565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906128c4565b61115e565b6040516104dc9190612f7d565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612872565b6111e5565b005b34801561051a57600080fd5b5061053560048036038101906105309190612872565b6112a1565b005b61053f6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c390612ebd565b60405180910390fd5b60148054906101000a900460ff161561061a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061190612f5d565b60405180910390fd5b61065a61064c604b61063e606461063030610c1c565b6113f390919063ffffffff16565b61143d90919063ffffffff16565b47610655610e37565b6114c0565b61012c600b81905550610190600c819055506004600d819055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555060b4426106b691906130b3565b600781905550565b60606040518060400160405280600881526020017f5255465553204149000000000000000000000000000000000000000000000000815250905090565b600061070f6107086114b8565b84846115e4565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075a6114b8565b73ffffffffffffffffffffffffffffffffffffffff161461077a57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107f79190612d5b565b60206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108479190612a1e565b6040518363ffffffff1660e01b8152600401610864929190612d76565b602060405180830381600087803b15801561087e57600080fd5b505af1158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b691906129cc565b505050565b6000600954905090565b60006108d28484846117af565b610993846108de6114b8565b61098e8560405180606001604052806028815260200161367460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109446114b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e629092919063ffffffff16565b6115e4565b600190509392505050565b6109a66114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90612ebd565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610a9f6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612ebd565b60405180910390fd5b6103e5600c819055506003600d81905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b806114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610ba057600080fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb6114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b6000479050610c1981611ec6565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c6d6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190612ebd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a54905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e036114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e2357600080fd5b600954600e81905550600954600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5255465553000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ede6114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610efe57600080fd5b60648311158015610f10575060648211155b8015610f1d5750600a8111155b610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612efd565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b6000610f8a610f836114b8565b84846117af565b6001905092915050565b610f9c6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090612ebd565b60405180910390fd5b60005b81518110156110e057600160056000848481518110611074577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110d8906132c9565b91505061102c565b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111256114b8565b73ffffffffffffffffffffffffffffffffffffffff161461114557600080fd5b600061115030610c1c565b905061115b81611f32565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112266114b8565b73ffffffffffffffffffffffffffffffffffffffff161461124657600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112a96114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132d90612ebd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061143583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061222c565b905092915050565b60008083141561145057600090506114b2565b6000828461145e919061313a565b905082848261146d9190613109565b146114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a490612e9d565b60405180910390fd5b809150505b92915050565b600033905090565b6001601460156101000a81548160ff02191690831515021790555061150830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856115e4565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161156f96959493929190612d9f565b6060604051808303818588803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115c19190612a96565b5050506000601460156101000a81548160ff021916908315150217905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b90612f3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90612e5d565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a29190612f7d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612f1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690612e3d565b60405180910390fd5b600081116118d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c990612edd565b60405180910390fd5b6000600881905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119865750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2e576119a2600d54600b5461228f90919063ffffffff16565b600881905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a4c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a5557600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b565750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b63575060075442105b15611c1357600e54811115611b7757600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611bc257600080fd5b601e42611bcf91906130b3565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601460159054906101000a900460ff16158015611c7e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c965750601460169054906101000a900460ff165b8015611cec5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2d576000611cfc30610c1c565b9050601054811115611d2b57611d1181611f32565b60004790506000811115611d2957611d2847611ec6565b5b505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611dd95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e5257611e4b600d54600c5461228f90919063ffffffff16565b6008819055505b611e5d8383836122ed565b505050565b6000838311158290611eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea19190612e1b565b60405180910390fd5b5060008385611eb99190613194565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f2e573d6000803e3d6000fd5b5050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f90577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611fbe5781602001602082028036833780820191505090505b5090503081600081518110611ffc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561209e57600080fd5b505afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d6919061289b565b81600181518110612110577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061217730601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115e4565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121db959493929190612f98565b600060405180830381600087803b1580156121f557600080fd5b505af1158015612209573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b60008083118290612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a9190612e1b565b60405180910390fd5b50600083856122829190613109565b9050809150509392505050565b600080828461229e91906130b3565b9050838110156122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da90612e7d565b60405180910390fd5b8091505092915050565b6000806000806122fc8561253b565b935093509350935061235681600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123eb84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228f90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248082600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124cd8784612642565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161252a9190612f7d565b60405180910390a350505050505050565b600080600080600061256c6103e861255e6008548961143d90919063ffffffff16565b6113f390919063ffffffff16565b9050600061258382886125f890919063ffffffff16565b905060006125b06103e86125a2600d548b61143d90919063ffffffff16565b6113f390919063ffffffff16565b905060006125c782856125f890919063ffffffff16565b905060006125de838b6125f890919063ffffffff16565b905083838383985098509850985050505050509193509193565b600061263a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e62565b905092915050565b61269481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f890919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008282546126e99190613194565b9250508190555080600a600082825461270291906130b3565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127679190612f7d565b60405180910390a35050565b600061278661278184613032565b61300d565b905080838252602082019050828560208602820111156127a557600080fd5b60005b858110156127d557816127bb88826127df565b8452602084019350602083019250506001810190506127a8565b5050509392505050565b6000813590506127ee8161362e565b92915050565b6000815190506128038161362e565b92915050565b600082601f83011261281a57600080fd5b813561282a848260208601612773565b91505092915050565b60008151905061284281613645565b92915050565b6000813590506128578161365c565b92915050565b60008151905061286c8161365c565b92915050565b60006020828403121561288457600080fd5b6000612892848285016127df565b91505092915050565b6000602082840312156128ad57600080fd5b60006128bb848285016127f4565b91505092915050565b600080604083850312156128d757600080fd5b60006128e5858286016127df565b92505060206128f6858286016127df565b9150509250929050565b60008060006060848603121561291557600080fd5b6000612923868287016127df565b9350506020612934868287016127df565b925050604061294586828701612848565b9150509250925092565b6000806040838503121561296257600080fd5b6000612970858286016127df565b925050602061298185828601612848565b9150509250929050565b60006020828403121561299d57600080fd5b600082013567ffffffffffffffff8111156129b757600080fd5b6129c384828501612809565b91505092915050565b6000602082840312156129de57600080fd5b60006129ec84828501612833565b91505092915050565b600060208284031215612a0757600080fd5b6000612a1584828501612848565b91505092915050565b600060208284031215612a3057600080fd5b6000612a3e8482850161285d565b91505092915050565b600080600060608486031215612a5c57600080fd5b6000612a6a86828701612848565b9350506020612a7b86828701612848565b9250506040612a8c86828701612848565b9150509250925092565b600080600060608486031215612aab57600080fd5b6000612ab98682870161285d565b9350506020612aca8682870161285d565b9250506040612adb8682870161285d565b9150509250925092565b6000612af18383612b0c565b60208301905092915050565b612b068161321d565b82525050565b612b15816131c8565b82525050565b612b24816131c8565b82525050565b6000612b358261306e565b612b3f8185613091565b9350612b4a8361305e565b8060005b83811015612b7b578151612b628882612ae5565b9750612b6d83613084565b925050600181019050612b4e565b5085935050505092915050565b612b91816131da565b82525050565b612ba08161322f565b82525050565b6000612bb182613079565b612bbb81856130a2565b9350612bcb818560208601613265565b612bd48161339f565b840191505092915050565b6000612bec6023836130a2565b9150612bf7826133b0565b604082019050919050565b6000612c0f6022836130a2565b9150612c1a826133ff565b604082019050919050565b6000612c32601b836130a2565b9150612c3d8261344e565b602082019050919050565b6000612c556021836130a2565b9150612c6082613477565b604082019050919050565b6000612c786020836130a2565b9150612c83826134c6565b602082019050919050565b6000612c9b6029836130a2565b9150612ca6826134ef565b604082019050919050565b6000612cbe601e836130a2565b9150612cc98261353e565b602082019050919050565b6000612ce16025836130a2565b9150612cec82613567565b604082019050919050565b6000612d046024836130a2565b9150612d0f826135b6565b604082019050919050565b6000612d276017836130a2565b9150612d3282613605565b602082019050919050565b612d4681613206565b82525050565b612d5581613210565b82525050565b6000602082019050612d706000830184612b1b565b92915050565b6000604082019050612d8b6000830185612afd565b612d986020830184612d3d565b9392505050565b600060c082019050612db46000830189612b1b565b612dc16020830188612d3d565b612dce6040830187612b97565b612ddb6060830186612b97565b612de86080830185612b1b565b612df560a0830184612d3d565b979650505050505050565b6000602082019050612e156000830184612b88565b92915050565b60006020820190508181036000830152612e358184612ba6565b905092915050565b60006020820190508181036000830152612e5681612bdf565b9050919050565b60006020820190508181036000830152612e7681612c02565b9050919050565b60006020820190508181036000830152612e9681612c25565b9050919050565b60006020820190508181036000830152612eb681612c48565b9050919050565b60006020820190508181036000830152612ed681612c6b565b9050919050565b60006020820190508181036000830152612ef681612c8e565b9050919050565b60006020820190508181036000830152612f1681612cb1565b9050919050565b60006020820190508181036000830152612f3681612cd4565b9050919050565b60006020820190508181036000830152612f5681612cf7565b9050919050565b60006020820190508181036000830152612f7681612d1a565b9050919050565b6000602082019050612f926000830184612d3d565b92915050565b600060a082019050612fad6000830188612d3d565b612fba6020830187612b97565b8181036040830152612fcc8186612b2a565b9050612fdb6060830185612b1b565b612fe86080830184612d3d565b9695505050505050565b60006020820190506130076000830184612d4c565b92915050565b6000613017613028565b90506130238282613298565b919050565b6000604051905090565b600067ffffffffffffffff82111561304d5761304c613370565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130be82613206565b91506130c983613206565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130fe576130fd613312565b5b828201905092915050565b600061311482613206565b915061311f83613206565b92508261312f5761312e613341565b5b828204905092915050565b600061314582613206565b915061315083613206565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561318957613188613312565b5b828202905092915050565b600061319f82613206565b91506131aa83613206565b9250828210156131bd576131bc613312565b5b828203905092915050565b60006131d3826131e6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061322882613241565b9050919050565b600061323a82613206565b9050919050565b600061324c82613253565b9050919050565b600061325e826131e6565b9050919050565b60005b83811015613283578082015181840152602081019050613268565b83811115613292576000848401525b50505050565b6132a18261339f565b810181811067ffffffffffffffff821117156132c0576132bf613370565b5b80604052505050565b60006132d482613206565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561330757613306613312565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f666565732063616e6e6f7420626520686967686572207468616e203130250000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613637816131c8565b811461364257600080fd5b50565b61364e816131da565b811461365957600080fd5b50565b61366581613206565b811461367057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c2cc63f7360f50f2a0b9f2036d0171d6ebaf7ae0fa9dda2c6e7a8ba086eca4164736f6c63430008040033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb1461042b578063b515566a14610468578063c3c8cd8014610491578063dd62ed3e146104a8578063e57f14e1146104e5578063f2fde38b1461050e57610156565b8063715018a61461035357806373f425611461036a578063751039fc146103955780638da5cb5b146103ac57806395d89b41146103d7578063a63748e51461040257610156565b8063273123b711610108578063273123b71461026b578063313ce5671461029457806344eff4f6146102bf5780634ea18fab146102d65780636fc3eaec146102ff57806370a082311461031657610156565b806302ac81681461015b57806306fdde0314610172578063095ea7b31461019d57806316114acd146101da57806318160ddd1461020357806323b872dd1461022e57610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610537565b005b34801561017e57600080fd5b506101876106be565b6040516101949190612e1b565b60405180910390f35b3480156101a957600080fd5b506101c460048036038101906101bf919061294f565b6106fb565b6040516101d19190612e00565b60405180910390f35b3480156101e657600080fd5b5061020160048036038101906101fc9190612872565b610719565b005b34801561020f57600080fd5b506102186108bb565b6040516102259190612f7d565b60405180910390f35b34801561023a57600080fd5b5061025560048036038101906102509190612900565b6108c5565b6040516102629190612e00565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612872565b61099e565b005b3480156102a057600080fd5b506102a9610a8e565b6040516102b69190612ff2565b60405180910390f35b3480156102cb57600080fd5b506102d4610a97565b005b3480156102e257600080fd5b506102fd60048036038101906102f891906129f5565b610b3f565b005b34801561030b57600080fd5b50610314610baa565b005b34801561032257600080fd5b5061033d60048036038101906103389190612872565b610c1c565b60405161034a9190612f7d565b60405180910390f35b34801561035f57600080fd5b50610368610c65565b005b34801561037657600080fd5b5061037f610db8565b60405161038c9190612f7d565b60405180910390f35b3480156103a157600080fd5b506103aa610dc2565b005b3480156103b857600080fd5b506103c1610e37565b6040516103ce9190612d5b565b60405180910390f35b3480156103e357600080fd5b506103ec610e60565b6040516103f99190612e1b565b60405180910390f35b34801561040e57600080fd5b5061042960048036038101906104249190612a47565b610e9d565b005b34801561043757600080fd5b50610452600480360381019061044d919061294f565b610f76565b60405161045f9190612e00565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a919061298b565b610f94565b005b34801561049d57600080fd5b506104a66110e4565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906128c4565b61115e565b6040516104dc9190612f7d565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612872565b6111e5565b005b34801561051a57600080fd5b5061053560048036038101906105309190612872565b6112a1565b005b61053f6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c390612ebd565b60405180910390fd5b60148054906101000a900460ff161561061a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061190612f5d565b60405180910390fd5b61065a61064c604b61063e606461063030610c1c565b6113f390919063ffffffff16565b61143d90919063ffffffff16565b47610655610e37565b6114c0565b61012c600b81905550610190600c819055506004600d819055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555060b4426106b691906130b3565b600781905550565b60606040518060400160405280600881526020017f5255465553204149000000000000000000000000000000000000000000000000815250905090565b600061070f6107086114b8565b84846115e4565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075a6114b8565b73ffffffffffffffffffffffffffffffffffffffff161461077a57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107f79190612d5b565b60206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108479190612a1e565b6040518363ffffffff1660e01b8152600401610864929190612d76565b602060405180830381600087803b15801561087e57600080fd5b505af1158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b691906129cc565b505050565b6000600954905090565b60006108d28484846117af565b610993846108de6114b8565b61098e8560405180606001604052806028815260200161367460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109446114b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e629092919063ffffffff16565b6115e4565b600190509392505050565b6109a66114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90612ebd565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610a9f6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612ebd565b60405180910390fd5b6103e5600c819055506003600d81905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b806114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610ba057600080fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb6114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b6000479050610c1981611ec6565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c6d6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190612ebd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a54905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e036114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e2357600080fd5b600954600e81905550600954600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5255465553000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ede6114b8565b73ffffffffffffffffffffffffffffffffffffffff1614610efe57600080fd5b60648311158015610f10575060648211155b8015610f1d5750600a8111155b610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612efd565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b6000610f8a610f836114b8565b84846117af565b6001905092915050565b610f9c6114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090612ebd565b60405180910390fd5b60005b81518110156110e057600160056000848481518110611074577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110d8906132c9565b91505061102c565b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111256114b8565b73ffffffffffffffffffffffffffffffffffffffff161461114557600080fd5b600061115030610c1c565b905061115b81611f32565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112266114b8565b73ffffffffffffffffffffffffffffffffffffffff161461124657600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112a96114b8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132d90612ebd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061143583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061222c565b905092915050565b60008083141561145057600090506114b2565b6000828461145e919061313a565b905082848261146d9190613109565b146114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a490612e9d565b60405180910390fd5b809150505b92915050565b600033905090565b6001601460156101000a81548160ff02191690831515021790555061150830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856115e4565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161156f96959493929190612d9f565b6060604051808303818588803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115c19190612a96565b5050506000601460156101000a81548160ff021916908315150217905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b90612f3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90612e5d565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a29190612f7d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690612f1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690612e3d565b60405180910390fd5b600081116118d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c990612edd565b60405180910390fd5b6000600881905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119865750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2e576119a2600d54600b5461228f90919063ffffffff16565b600881905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a4c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a5557600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b565750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b63575060075442105b15611c1357600e54811115611b7757600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611bc257600080fd5b601e42611bcf91906130b3565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601460159054906101000a900460ff16158015611c7e5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c965750601460169054906101000a900460ff165b8015611cec5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2d576000611cfc30610c1c565b9050601054811115611d2b57611d1181611f32565b60004790506000811115611d2957611d2847611ec6565b5b505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611dd95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e5257611e4b600d54600c5461228f90919063ffffffff16565b6008819055505b611e5d8383836122ed565b505050565b6000838311158290611eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea19190612e1b565b60405180910390fd5b5060008385611eb99190613194565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f2e573d6000803e3d6000fd5b5050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f90577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611fbe5781602001602082028036833780820191505090505b5090503081600081518110611ffc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561209e57600080fd5b505afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d6919061289b565b81600181518110612110577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061217730601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115e4565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121db959493929190612f98565b600060405180830381600087803b1580156121f557600080fd5b505af1158015612209573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b60008083118290612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a9190612e1b565b60405180910390fd5b50600083856122829190613109565b9050809150509392505050565b600080828461229e91906130b3565b9050838110156122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da90612e7d565b60405180910390fd5b8091505092915050565b6000806000806122fc8561253b565b935093509350935061235681600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123eb84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228f90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248082600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124cd8784612642565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161252a9190612f7d565b60405180910390a350505050505050565b600080600080600061256c6103e861255e6008548961143d90919063ffffffff16565b6113f390919063ffffffff16565b9050600061258382886125f890919063ffffffff16565b905060006125b06103e86125a2600d548b61143d90919063ffffffff16565b6113f390919063ffffffff16565b905060006125c782856125f890919063ffffffff16565b905060006125de838b6125f890919063ffffffff16565b905083838383985098509850985050505050509193509193565b600061263a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e62565b905092915050565b61269481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f890919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008282546126e99190613194565b9250508190555080600a600082825461270291906130b3565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127679190612f7d565b60405180910390a35050565b600061278661278184613032565b61300d565b905080838252602082019050828560208602820111156127a557600080fd5b60005b858110156127d557816127bb88826127df565b8452602084019350602083019250506001810190506127a8565b5050509392505050565b6000813590506127ee8161362e565b92915050565b6000815190506128038161362e565b92915050565b600082601f83011261281a57600080fd5b813561282a848260208601612773565b91505092915050565b60008151905061284281613645565b92915050565b6000813590506128578161365c565b92915050565b60008151905061286c8161365c565b92915050565b60006020828403121561288457600080fd5b6000612892848285016127df565b91505092915050565b6000602082840312156128ad57600080fd5b60006128bb848285016127f4565b91505092915050565b600080604083850312156128d757600080fd5b60006128e5858286016127df565b92505060206128f6858286016127df565b9150509250929050565b60008060006060848603121561291557600080fd5b6000612923868287016127df565b9350506020612934868287016127df565b925050604061294586828701612848565b9150509250925092565b6000806040838503121561296257600080fd5b6000612970858286016127df565b925050602061298185828601612848565b9150509250929050565b60006020828403121561299d57600080fd5b600082013567ffffffffffffffff8111156129b757600080fd5b6129c384828501612809565b91505092915050565b6000602082840312156129de57600080fd5b60006129ec84828501612833565b91505092915050565b600060208284031215612a0757600080fd5b6000612a1584828501612848565b91505092915050565b600060208284031215612a3057600080fd5b6000612a3e8482850161285d565b91505092915050565b600080600060608486031215612a5c57600080fd5b6000612a6a86828701612848565b9350506020612a7b86828701612848565b9250506040612a8c86828701612848565b9150509250925092565b600080600060608486031215612aab57600080fd5b6000612ab98682870161285d565b9350506020612aca8682870161285d565b9250506040612adb8682870161285d565b9150509250925092565b6000612af18383612b0c565b60208301905092915050565b612b068161321d565b82525050565b612b15816131c8565b82525050565b612b24816131c8565b82525050565b6000612b358261306e565b612b3f8185613091565b9350612b4a8361305e565b8060005b83811015612b7b578151612b628882612ae5565b9750612b6d83613084565b925050600181019050612b4e565b5085935050505092915050565b612b91816131da565b82525050565b612ba08161322f565b82525050565b6000612bb182613079565b612bbb81856130a2565b9350612bcb818560208601613265565b612bd48161339f565b840191505092915050565b6000612bec6023836130a2565b9150612bf7826133b0565b604082019050919050565b6000612c0f6022836130a2565b9150612c1a826133ff565b604082019050919050565b6000612c32601b836130a2565b9150612c3d8261344e565b602082019050919050565b6000612c556021836130a2565b9150612c6082613477565b604082019050919050565b6000612c786020836130a2565b9150612c83826134c6565b602082019050919050565b6000612c9b6029836130a2565b9150612ca6826134ef565b604082019050919050565b6000612cbe601e836130a2565b9150612cc98261353e565b602082019050919050565b6000612ce16025836130a2565b9150612cec82613567565b604082019050919050565b6000612d046024836130a2565b9150612d0f826135b6565b604082019050919050565b6000612d276017836130a2565b9150612d3282613605565b602082019050919050565b612d4681613206565b82525050565b612d5581613210565b82525050565b6000602082019050612d706000830184612b1b565b92915050565b6000604082019050612d8b6000830185612afd565b612d986020830184612d3d565b9392505050565b600060c082019050612db46000830189612b1b565b612dc16020830188612d3d565b612dce6040830187612b97565b612ddb6060830186612b97565b612de86080830185612b1b565b612df560a0830184612d3d565b979650505050505050565b6000602082019050612e156000830184612b88565b92915050565b60006020820190508181036000830152612e358184612ba6565b905092915050565b60006020820190508181036000830152612e5681612bdf565b9050919050565b60006020820190508181036000830152612e7681612c02565b9050919050565b60006020820190508181036000830152612e9681612c25565b9050919050565b60006020820190508181036000830152612eb681612c48565b9050919050565b60006020820190508181036000830152612ed681612c6b565b9050919050565b60006020820190508181036000830152612ef681612c8e565b9050919050565b60006020820190508181036000830152612f1681612cb1565b9050919050565b60006020820190508181036000830152612f3681612cd4565b9050919050565b60006020820190508181036000830152612f5681612cf7565b9050919050565b60006020820190508181036000830152612f7681612d1a565b9050919050565b6000602082019050612f926000830184612d3d565b92915050565b600060a082019050612fad6000830188612d3d565b612fba6020830187612b97565b8181036040830152612fcc8186612b2a565b9050612fdb6060830185612b1b565b612fe86080830184612d3d565b9695505050505050565b60006020820190506130076000830184612d4c565b92915050565b6000613017613028565b90506130238282613298565b919050565b6000604051905090565b600067ffffffffffffffff82111561304d5761304c613370565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130be82613206565b91506130c983613206565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130fe576130fd613312565b5b828201905092915050565b600061311482613206565b915061311f83613206565b92508261312f5761312e613341565b5b828204905092915050565b600061314582613206565b915061315083613206565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561318957613188613312565b5b828202905092915050565b600061319f82613206565b91506131aa83613206565b9250828210156131bd576131bc613312565b5b828203905092915050565b60006131d3826131e6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061322882613241565b9050919050565b600061323a82613206565b9050919050565b600061324c82613253565b9050919050565b600061325e826131e6565b9050919050565b60005b83811015613283578082015181840152602081019050613268565b83811115613292576000848401525b50505050565b6132a18261339f565b810181811067ffffffffffffffff821117156132c0576132bf613370565b5b80604052505050565b60006132d482613206565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561330757613306613312565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f666565732063616e6e6f7420626520686967686572207468616e203130250000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613637816131c8565b811461364257600080fd5b50565b61364e816131da565b811461365957600080fd5b50565b61366581613206565b811461367057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c2cc63f7360f50f2a0b9f2036d0171d6ebaf7ae0fa9dda2c6e7a8ba086eca4164736f6c63430008040033

Deployed Bytecode Sourcemap

4030:9756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11488:356;;;;;;;;;;;;;:::i;:::-;;6094:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6925:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13539:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6371:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7188:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12032:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6280:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8525:97;;;;;;;;;;;;;:::i;:::-;;7753:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12888:188;;;;;;;;;;;;;:::i;:::-;;6474:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2910:148;;;;;;;;;;;;;:::i;:::-;;7094:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8206:156;;;;;;;;;;;;;:::i;:::-;;2515:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6185:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7897:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6599:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11856:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12687:189;;;;;;;;;;;;;:::i;:::-;;6774:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8370:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2729:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11488:356;2652:12;:10;:12::i;:::-;2642:22;;:6;;;;;;;;;;:22;;;2634:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11547:11:::1;::::0;::::1;;;;;;;;11546:12;11538:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11596:85;11609:41;11647:2;11609:33;11638:3;11609:24;11627:4;11609:9;:24::i;:::-;:28;;:33;;;;:::i;:::-;:37;;:41;;;;:::i;:::-;11651:21;11673:7;:5;:7::i;:::-;11596:12;:85::i;:::-;11699:3;11692:4;:10;;;;11713:3;11706:4;:10;;;;11737:1;11720:14;:18;;;;11756:4;11742:11;;:18;;;;;;;;;;;;;;;;;;11785:4;11771:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11826:9;11807:15;:29;;;;:::i;:::-;11800:4;:36;;;;11488:356::o:0;6094:83::-;6131:13;6164:5;;;;;;;;;;;;;;;;;6157:12;;6094:83;:::o;6925:161::-;7000:4;7017:39;7026:12;:10;:12::i;:::-;7040:7;7049:6;7017:8;:39::i;:::-;7074:4;7067:11;;6925:161;;;;:::o;13539:244::-;13628:9;;;;;;;;;;;13612:25;;:12;:10;:12::i;:::-;:25;;;13604:34;;;;;;13649:20;13679:12;13649:43;;13703:13;:22;;;13726:9;;;;;;;;;;;13736:13;:23;;;13768:4;13736:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13703:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13539:244;;:::o;6371:95::-;6424:7;6451;;6444:14;;6371:95;:::o;7188:313::-;7286:4;7303:36;7313:6;7321:9;7332:6;7303:9;:36::i;:::-;7350:121;7359:6;7367:12;:10;:12::i;:::-;7381:89;7419:6;7381:89;;;;;;;;;;;;;;;;;:11;:19;7393:6;7381:19;;;;;;;;;;;;;;;:33;7401:12;:10;:12::i;:::-;7381:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7350:8;:121::i;:::-;7489:4;7482:11;;7188:313;;;;;:::o;12032:88::-;2652:12;:10;:12::i;:::-;2642:22;;:6;;;;;;;;;;:22;;;2634:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12107:5:::1;12092:4;:12;12097:6;12092:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12032:88:::0;:::o;6280:83::-;6321:5;4954:1;6339:16;;6280:83;:::o;8525:97::-;2652:12;:10;:12::i;:::-;2642:22;;:6;;;;;;;;;;:22;;;2634:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8582:3:::1;8575:4;:10;;;;8613:1;8596:14;:18;;;;8525:97::o:0;7753:136::-;7839:9;;;;;;;;;;;7823:25;;:12;:10;:12::i;:::-;:25;;;7815:34;;;;;;7873:6;7860:10;:19;;;;7753:136;:::o;12888:188::-;12954:9;;;;;;;;;;;12938:25;;:12;:10;:12::i;:::-;:25;;;12930:34;;;;;;12975:26;13004:21;12975:50;;13036:32;13049:18;13036:12;:32::i;:::-;12888:188;:::o;6474:117::-;6540:7;6567;:16;6575:7;6567:16;;;;;;;;;;;;;;;;6560:23;;6474:117;;;:::o;2910:148::-;2652:12;:10;:12::i;:::-;2642:22;;:6;;;;;;;;;;:22;;;2634:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3017:1:::1;2980:40;;3001:6;::::0;::::1;;;;;;;;2980:40;;;;;;;;;;;;3048:1;3031:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2910:148::o:0;7094:86::-;7133:7;7160:12;;7153:19;;7094:86;:::o;8206:156::-;8274:9;;;;;;;;;;;8258:25;;:12;:10;:12::i;:::-;:25;;;8250:34;;;;;;8310:7;;8295:12;:22;;;;8347:7;;8328:16;:26;;;;8206:156::o;2515:79::-;2553:7;2580:6;;;;;;;;;;;2573:13;;2515:79;:::o;6185:87::-;6224:13;6257:7;;;;;;;;;;;;;;;;;6250:14;;6185:87;:::o;7897:301::-;8004:9;;;;;;;;;;;7988:25;;:12;:10;:12::i;:::-;:25;;;7980:34;;;;;;8042:3;8033:5;:12;;:28;;;;;8058:3;8049:5;:12;;8033:28;:43;;;;;8074:2;8065:5;:11;;8033:43;8025:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;8129:5;8122:4;:12;;;;8152:5;8145:4;:12;;;;8185:5;8168:14;:22;;;;7897:301;;;:::o;6599:167::-;6677:4;6694:42;6704:12;:10;:12::i;:::-;6718:9;6729:6;6694:9;:42::i;:::-;6754:4;6747:11;;6599:167;;;;:::o;11856:164::-;2652:12;:10;:12::i;:::-;2642:22;;:6;;;;;;;;;;:22;;;2634:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11930:6:::1;11925:88;11946:5;:12;11942:1;:16;11925:88;;;11997:4;11980;:14;11985:5;11991:1;11985:8;;;;;;;;;;;;;;;;;;;;;;11980:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11960:3;;;;;:::i;:::-;;;;11925:88;;;;11856:164:::0;:::o;12687:189::-;12753:9;;;;;;;;;;;12737:25;;:12;:10;:12::i;:::-;:25;;;12729:34;;;;;;12774:23;12800:24;12818:4;12800:9;:24::i;:::-;12774:50;;12835:33;12852:15;12835:16;:33::i;:::-;12687:189;:::o;6774:143::-;6855:7;6882:11;:18;6894:5;6882:18;;;;;;;;;;;;;;;:27;6901:7;6882:27;;;;;;;;;;;;;;;;6875:34;;6774:143;;;;:::o;8370:147::-;8455:9;;;;;;;;;;;8439:25;;:12;:10;:12::i;:::-;:25;;;8431:34;;;;;;8505:4;8476:18;:26;8495:6;8476:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8370:147;:::o;2729:173::-;2652:12;:10;:12::i;:::-;2642:22;;:6;;;;;;;;;;:22;;;2634:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2845:9:::1;2816:39;;2837:6;::::0;::::1;;;;;;;;2816:39;;;;;;;;;;;;2875:9;2866:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2729:173:::0;:::o;1822:132::-;1880:7;1907:39;1911:1;1914;1907:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1900:46;;1822:132;;;;:::o;1568:246::-;1626:7;1655:1;1650;:6;1646:47;;;1680:1;1673:8;;;;1646:47;1703:9;1719:1;1715;:5;;;;:::i;:::-;1703:17;;1748:1;1743;1739;:5;;;;:::i;:::-;:10;1731:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1805:1;1798:8;;;1568:246;;;;;:::o;233:98::-;286:7;313:10;306:17;;233:98;:::o;11076:288::-;5279:4;5270:6;;:13;;;;;;;;;;;;;;;;;;11182:60:::1;11199:4;11213:15;;;;;;;;;;;11230:11;11182:8;:60::i;:::-;11253:15;;;;;;;;;;;:31;;;11292:9;11311:4;11317:11;11329:1;11331::::0;11333:6:::1;11340:15;11253:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5315:5:::0;5306:6;;:14;;;;;;;;;;;;;;;;;;11076:288;;;:::o;8635:335::-;8745:1;8728:19;;:5;:19;;;;8720:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8826:1;8807:21;;:7;:21;;;;8799:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8908:6;8878:11;:18;8890:5;8878:18;;;;;;;;;;;;;;;:27;8897:7;8878:27;;;;;;;;;;;;;;;:36;;;;8946:7;8930:32;;8939:5;8930:32;;;8955:6;8930:32;;;;;;:::i;:::-;;;;;;;;8635:335;;;:::o;8978:1593::-;9082:1;9066:18;;:4;:18;;;;9058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9159:1;9145:16;;:2;:16;;;;9137:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9229:1;9220:6;:10;9212:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9294:1;9287:4;:8;;;;9318:9;;;;;;;;;;;9310:17;;:4;:17;;;;:36;;;;;9337:9;;;;;;;;;;;9331:15;;:2;:15;;;;9310:36;9306:1053;;;9370:24;9379:14;;9370:4;;:8;;:24;;;;:::i;:::-;9363:4;:31;;;;9418:4;:10;9423:4;9418:10;;;;;;;;;;;;;;;;;;;;;;;;;9417:11;:24;;;;;9433:4;:8;9438:2;9433:8;;;;;;;;;;;;;;;;;;;;;;;;;9432:9;9417:24;9409:33;;;;;;9469:13;;;;;;;;;;;9461:21;;:4;:21;;;:55;;;;;9500:15;;;;;;;;;;;9486:30;;:2;:30;;;;9461:55;:83;;;;;9522:18;:22;9541:2;9522:22;;;;;;;;;;;;;;;;;;;;;;;;;9520:24;9461:83;:111;;;;;9567:4;;9549:15;:22;9461:111;9457:333;;;9639:12;;9629:6;:22;;9621:31;;;;;;9694:15;9679:8;:12;9688:2;9679:12;;;;;;;;;;;;;;;;:30;9671:39;;;;;;9763:10;9744:15;:30;;;;:::i;:::-;9729:8;:12;9738:2;9729:12;;;;;;;;;;;;;;;:45;;;;9457:333;9837:6;;;;;;;;;;;9836:7;:32;;;;;9855:13;;;;;;;;;;;9847:21;;:4;:21;;;;9836:32;:47;;;;;9872:11;;;;;;;;;;;9836:47;:76;;;;;9888:18;:24;9907:4;9888:24;;;;;;;;;;;;;;;;;;;;;;;;;9887:25;9836:76;9832:516;;;9933:28;9964:24;9982:4;9964:9;:24::i;:::-;9933:55;;10033:10;;10010:20;:33;10007:326;;;10067:38;10084:20;10067:16;:38::i;:::-;10128:26;10157:21;10128:50;;10225:1;10204:18;:22;10201:113;;;10255:35;10268:21;10255:12;:35::i;:::-;10201:113;10007:326;;9832:516;;9306:1053;10379:13;;;;;;;;;;;10373:19;;:2;:19;;;:55;;;;;10412:15;;;;;;;;;;;10396:32;;:4;:32;;;;10373:55;:85;;;;;10434:18;:24;10453:4;10434:24;;;;;;;;;;;;;;;;;;;;;;;;;10432:26;10373:85;10369:149;;;10482:24;10491:14;;10482:4;;:8;;:24;;;;:::i;:::-;10475:4;:31;;;;10369:149;10530:33;10548:4;10553:2;10556:6;10530:17;:33::i;:::-;8978:1593;;;:::o;1370:190::-;1456:7;1489:1;1484;:6;;1492:12;1476:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1516:9;1532:1;1528;:5;;;;:::i;:::-;1516:17;;1551:1;1544:8;;;1370:190;;;;;:::o;11378:98::-;11435:16;;;;;;;;;;;:25;;:33;11461:6;11435:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11378:98;:::o;10579:483::-;5279:4;5270:6;;:13;;;;;;;;;;;;;;;;;;10657:21:::1;10695:1;10681:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10657:40;;10726:4;10708;10713:1;10708:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10752:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10742:4;10747:1;10742:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10785:62;10802:4;10817:15;;;;;;;;;;;10835:11;10785:8;:62::i;:::-;10858:15;;;;;;;;;;;:66;;;10939:11;10965:1;10981:4;11008;11028:15;10858:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5294:1;5315:5:::0;5306:6;;:14;;;;;;;;;;;;;;;;;;10579:483;:::o;1962:189::-;2048:7;2080:1;2076;:5;2083:12;2068:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2107:9;2123:1;2119;:5;;;;:::i;:::-;2107:17;;2142:1;2135:8;;;1962:189;;;;;:::o;1039:179::-;1097:7;1117:9;1133:1;1129;:5;;;;:::i;:::-;1117:17;;1158:1;1153;:6;;1145:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1209:1;1202:8;;;1039:179;;;;:::o;12128:510::-;12227:22;12250:18;12269:17;12287:20;12311;12323:7;12311:11;:20::i;:::-;12226:105;;;;;;;;12360:33;12380:12;12360:7;:15;12368:6;12360:15;;;;;;;;;;;;;;;;:19;;:33;;;;:::i;:::-;12342:7;:15;12350:6;12342:15;;;;;;;;;;;;;;;:51;;;;12425:38;12448:14;12425:7;:18;12433:9;12425:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12404:7;:18;12412:9;12404:18;;;;;;;;;;;;;;;:59;;;;12500:37;12527:9;12500:7;:22;12516:4;12500:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;12475:7;:22;12491:4;12475:22;;;;;;;;;;;;;;;:62;;;;12548:23;12553:6;12560:10;12548:4;:23::i;:::-;12604:9;12587:43;;12596:6;12587:43;;;12615:14;12587:43;;;;;;:::i;:::-;;;;;;;;12128:510;;;;;;;:::o;13087:444::-;13147:7;13156;13165;13174;13194:12;13209:27;13231:4;13209:17;13221:4;;13209:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13194:42;;13247:23;13273:17;13285:4;13273:7;:11;;:17;;;;:::i;:::-;13247:43;;13301:13;13317:37;13349:4;13317:27;13329:14;;13317:7;:11;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;13301:53;;13365:18;13386:15;13395:5;13386:4;:8;;:15;;;;:::i;:::-;13365:36;;13412:21;13436:18;13448:5;13436:7;:11;;:18;;;;:::i;:::-;13412:42;;13473:15;13490:5;13497:10;13509:13;13465:58;;;;;;;;;;;;;13087:444;;;;;:::o;1226:136::-;1284:7;1311:43;1315:1;1318;1311:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1304:50;;1226:136;;;;:::o;7509:234::-;7593:28;7614:6;7593:7;:16;7601:7;7593:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;7574:7;:16;7582:7;7574:16;;;;;;;;;;;;;;;:47;;;;7643:6;7632:7;;:17;;;;;;;:::i;:::-;;;;;;;;7676:6;7660:12;;:22;;;;;;;:::i;:::-;;;;;;;;7724:1;7698:37;;7707:7;7698:37;;;7728:6;7698:37;;;;;;:::i;:::-;;;;;;;;7509:234;;:::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:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:262::-;1801:6;1850:2;1838:9;1829:7;1825:23;1821:32;1818:2;;;1866:1;1863;1856:12;1818:2;1909:1;1934:53;1979:7;1970:6;1959:9;1955:22;1934:53;:::i;:::-;1924:63;;1880:117;1808:196;;;;:::o;2010:284::-;2080:6;2129:2;2117:9;2108:7;2104:23;2100:32;2097:2;;;2145:1;2142;2135:12;2097:2;2188:1;2213:64;2269:7;2260:6;2249:9;2245:22;2213:64;:::i;:::-;2203:74;;2159:128;2087:207;;;;:::o;2300:407::-;2368:6;2376;2425:2;2413:9;2404:7;2400:23;2396:32;2393:2;;;2441:1;2438;2431:12;2393:2;2484:1;2509:53;2554:7;2545:6;2534:9;2530:22;2509:53;:::i;:::-;2499:63;;2455:117;2611:2;2637:53;2682:7;2673:6;2662:9;2658:22;2637:53;:::i;:::-;2627:63;;2582:118;2383:324;;;;;:::o;2713:552::-;2790:6;2798;2806;2855:2;2843:9;2834:7;2830:23;2826:32;2823:2;;;2871:1;2868;2861:12;2823:2;2914:1;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2885:117;3041:2;3067:53;3112:7;3103:6;3092:9;3088:22;3067:53;:::i;:::-;3057:63;;3012:118;3169:2;3195:53;3240:7;3231:6;3220:9;3216:22;3195:53;:::i;:::-;3185:63;;3140:118;2813:452;;;;;:::o;3271:407::-;3339:6;3347;3396:2;3384:9;3375:7;3371:23;3367:32;3364:2;;;3412:1;3409;3402:12;3364:2;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3354:324;;;;;:::o;3684:405::-;3768:6;3817:2;3805:9;3796:7;3792:23;3788:32;3785:2;;;3833:1;3830;3823:12;3785:2;3904:1;3893:9;3889:17;3876:31;3934:18;3926:6;3923:30;3920:2;;;3966:1;3963;3956:12;3920:2;3994:78;4064:7;4055:6;4044:9;4040:22;3994:78;:::i;:::-;3984:88;;3847:235;3775:314;;;;:::o;4095:278::-;4162:6;4211:2;4199:9;4190:7;4186:23;4182:32;4179:2;;;4227:1;4224;4217:12;4179:2;4270:1;4295:61;4348:7;4339:6;4328:9;4324:22;4295:61;:::i;:::-;4285:71;;4241:125;4169:204;;;;:::o;4379:262::-;4438:6;4487:2;4475:9;4466:7;4462:23;4458:32;4455:2;;;4503:1;4500;4493:12;4455:2;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4445:196;;;;:::o;4647:284::-;4717:6;4766:2;4754:9;4745:7;4741:23;4737:32;4734:2;;;4782:1;4779;4772:12;4734:2;4825:1;4850:64;4906:7;4897:6;4886:9;4882:22;4850:64;:::i;:::-;4840:74;;4796:128;4724:207;;;;:::o;4937:552::-;5014:6;5022;5030;5079:2;5067:9;5058:7;5054:23;5050:32;5047:2;;;5095:1;5092;5085:12;5047:2;5138:1;5163:53;5208:7;5199:6;5188:9;5184:22;5163:53;:::i;:::-;5153:63;;5109:117;5265:2;5291:53;5336:7;5327:6;5316:9;5312:22;5291:53;:::i;:::-;5281:63;;5236:118;5393:2;5419:53;5464:7;5455:6;5444:9;5440:22;5419:53;:::i;:::-;5409:63;;5364:118;5037:452;;;;;:::o;5495:596::-;5583:6;5591;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:2;;;5664:1;5661;5654:12;5616:2;5707:1;5732:64;5788:7;5779:6;5768:9;5764:22;5732:64;:::i;:::-;5722:74;;5678:128;5845:2;5871:64;5927:7;5918:6;5907:9;5903:22;5871:64;:::i;:::-;5861:74;;5816:129;5984:2;6010:64;6066:7;6057:6;6046:9;6042:22;6010:64;:::i;:::-;6000:74;;5955:129;5606:485;;;;;:::o;6097:179::-;6166:10;6187:46;6229:3;6221:6;6187:46;:::i;:::-;6265:4;6260:3;6256:14;6242:28;;6177:99;;;;:::o;6282:147::-;6377:45;6416:5;6377:45;:::i;:::-;6372:3;6365:58;6355:74;;:::o;6435:108::-;6512:24;6530:5;6512:24;:::i;:::-;6507:3;6500:37;6490:53;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6614:53;;:::o;6703:732::-;6822:3;6851:54;6899:5;6851:54;:::i;:::-;6921:86;7000:6;6995:3;6921:86;:::i;:::-;6914:93;;7031:56;7081:5;7031:56;:::i;:::-;7110:7;7141:1;7126:284;7151:6;7148:1;7145:13;7126:284;;;7227:6;7221:13;7254:63;7313:3;7298:13;7254:63;:::i;:::-;7247:70;;7340:60;7393:6;7340:60;:::i;:::-;7330:70;;7186:224;7173:1;7170;7166:9;7161:14;;7126:284;;;7130:14;7426:3;7419:10;;6827:608;;;;;;;:::o;7441:109::-;7522:21;7537:5;7522:21;:::i;:::-;7517:3;7510:34;7500:50;;:::o;7556:147::-;7651:45;7690:5;7651:45;:::i;:::-;7646:3;7639:58;7629:74;;:::o;7709:364::-;7797:3;7825:39;7858:5;7825:39;:::i;:::-;7880:71;7944:6;7939:3;7880:71;:::i;:::-;7873:78;;7960:52;8005:6;8000:3;7993:4;7986:5;7982:16;7960:52;:::i;:::-;8037:29;8059:6;8037:29;:::i;:::-;8032:3;8028:39;8021:46;;7801:272;;;;;:::o;8079:366::-;8221:3;8242:67;8306:2;8301:3;8242:67;:::i;:::-;8235:74;;8318:93;8407:3;8318:93;:::i;:::-;8436:2;8431:3;8427:12;8420:19;;8225:220;;;:::o;8451:366::-;8593:3;8614:67;8678:2;8673:3;8614:67;:::i;:::-;8607:74;;8690:93;8779:3;8690:93;:::i;:::-;8808:2;8803:3;8799:12;8792:19;;8597:220;;;:::o;8823:366::-;8965:3;8986:67;9050:2;9045:3;8986:67;:::i;:::-;8979:74;;9062:93;9151:3;9062:93;:::i;:::-;9180:2;9175:3;9171:12;9164:19;;8969:220;;;:::o;9195:366::-;9337:3;9358:67;9422:2;9417:3;9358:67;:::i;:::-;9351:74;;9434:93;9523:3;9434:93;:::i;:::-;9552:2;9547:3;9543:12;9536:19;;9341:220;;;:::o;9567:366::-;9709:3;9730:67;9794:2;9789:3;9730:67;:::i;:::-;9723:74;;9806:93;9895:3;9806:93;:::i;:::-;9924:2;9919:3;9915:12;9908:19;;9713:220;;;:::o;9939:366::-;10081:3;10102:67;10166:2;10161:3;10102:67;:::i;:::-;10095:74;;10178:93;10267:3;10178:93;:::i;:::-;10296:2;10291:3;10287:12;10280:19;;10085:220;;;:::o;10311:366::-;10453:3;10474:67;10538:2;10533:3;10474:67;:::i;:::-;10467:74;;10550:93;10639:3;10550:93;:::i;:::-;10668:2;10663:3;10659:12;10652:19;;10457:220;;;:::o;10683:366::-;10825:3;10846:67;10910:2;10905:3;10846:67;:::i;:::-;10839:74;;10922:93;11011:3;10922:93;:::i;:::-;11040:2;11035:3;11031:12;11024:19;;10829:220;;;:::o;11055:366::-;11197:3;11218:67;11282:2;11277:3;11218:67;:::i;:::-;11211:74;;11294:93;11383:3;11294:93;:::i;:::-;11412:2;11407:3;11403:12;11396:19;;11201:220;;;:::o;11427:366::-;11569:3;11590:67;11654:2;11649:3;11590:67;:::i;:::-;11583:74;;11666:93;11755:3;11666:93;:::i;:::-;11784:2;11779:3;11775:12;11768:19;;11573:220;;;:::o;11799:118::-;11886:24;11904:5;11886:24;:::i;:::-;11881:3;11874:37;11864:53;;:::o;11923:112::-;12006:22;12022:5;12006:22;:::i;:::-;12001:3;11994:35;11984:51;;:::o;12041:222::-;12134:4;12172:2;12161:9;12157:18;12149:26;;12185:71;12253:1;12242:9;12238:17;12229:6;12185:71;:::i;:::-;12139:124;;;;:::o;12269:348::-;12398:4;12436:2;12425:9;12421:18;12413:26;;12449:79;12525:1;12514:9;12510:17;12501:6;12449:79;:::i;:::-;12538:72;12606:2;12595:9;12591:18;12582:6;12538:72;:::i;:::-;12403:214;;;;;:::o;12623:807::-;12872:4;12910:3;12899:9;12895:19;12887:27;;12924:71;12992:1;12981:9;12977:17;12968:6;12924:71;:::i;:::-;13005:72;13073:2;13062:9;13058:18;13049:6;13005:72;:::i;:::-;13087:80;13163:2;13152:9;13148:18;13139:6;13087:80;:::i;:::-;13177;13253:2;13242:9;13238:18;13229:6;13177:80;:::i;:::-;13267:73;13335:3;13324:9;13320:19;13311:6;13267:73;:::i;:::-;13350;13418:3;13407:9;13403:19;13394:6;13350:73;:::i;:::-;12877:553;;;;;;;;;:::o;13436:210::-;13523:4;13561:2;13550:9;13546:18;13538:26;;13574:65;13636:1;13625:9;13621:17;13612:6;13574:65;:::i;:::-;13528:118;;;;:::o;13652:313::-;13765:4;13803:2;13792:9;13788:18;13780:26;;13852:9;13846:4;13842:20;13838:1;13827:9;13823:17;13816:47;13880:78;13953:4;13944:6;13880:78;:::i;:::-;13872:86;;13770:195;;;;:::o;13971:419::-;14137:4;14175:2;14164:9;14160:18;14152:26;;14224:9;14218:4;14214:20;14210:1;14199:9;14195:17;14188:47;14252:131;14378:4;14252:131;:::i;:::-;14244:139;;14142:248;;;:::o;14396:419::-;14562:4;14600:2;14589:9;14585:18;14577:26;;14649:9;14643:4;14639:20;14635:1;14624:9;14620:17;14613:47;14677:131;14803:4;14677:131;:::i;:::-;14669:139;;14567:248;;;:::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:222::-;18314:4;18352:2;18341:9;18337:18;18329:26;;18365:71;18433:1;18422:9;18418:17;18409:6;18365:71;:::i;:::-;18319:124;;;;:::o;18449:831::-;18712:4;18750:3;18739:9;18735:19;18727:27;;18764:71;18832:1;18821:9;18817:17;18808:6;18764:71;:::i;:::-;18845:80;18921:2;18910:9;18906:18;18897:6;18845:80;:::i;:::-;18972:9;18966:4;18962:20;18957:2;18946:9;18942:18;18935:48;19000:108;19103:4;19094:6;19000:108;:::i;:::-;18992:116;;19118:72;19186:2;19175:9;19171:18;19162:6;19118:72;:::i;:::-;19200:73;19268:3;19257:9;19253:19;19244:6;19200:73;:::i;:::-;18717:563;;;;;;;;:::o;19286:214::-;19375:4;19413:2;19402:9;19398:18;19390:26;;19426:67;19490:1;19479:9;19475:17;19466:6;19426:67;:::i;:::-;19380:120;;;;:::o;19506:129::-;19540:6;19567:20;;:::i;:::-;19557:30;;19596:33;19624:4;19616:6;19596:33;:::i;:::-;19547:88;;;:::o;19641:75::-;19674:6;19707:2;19701:9;19691:19;;19681:35;:::o;19722:311::-;19799:4;19889:18;19881:6;19878:30;19875:2;;;19911:18;;:::i;:::-;19875:2;19961:4;19953:6;19949:17;19941:25;;20021:4;20015;20011:15;20003:23;;19804:229;;;:::o;20039:132::-;20106:4;20129:3;20121:11;;20159:4;20154:3;20150:14;20142:22;;20111:60;;;:::o;20177:114::-;20244:6;20278:5;20272:12;20262:22;;20251:40;;;:::o;20297:99::-;20349:6;20383:5;20377:12;20367:22;;20356:40;;;:::o;20402:113::-;20472:4;20504;20499:3;20495:14;20487:22;;20477:38;;;:::o;20521:184::-;20620:11;20654:6;20649:3;20642:19;20694:4;20689:3;20685:14;20670:29;;20632:73;;;;:::o;20711:169::-;20795:11;20829:6;20824:3;20817:19;20869:4;20864:3;20860:14;20845:29;;20807:73;;;;:::o;20886:305::-;20926:3;20945:20;20963:1;20945:20;:::i;:::-;20940:25;;20979:20;20997:1;20979:20;:::i;:::-;20974:25;;21133:1;21065:66;21061:74;21058:1;21055:81;21052:2;;;21139:18;;:::i;:::-;21052:2;21183:1;21180;21176:9;21169:16;;20930:261;;;;:::o;21197:185::-;21237:1;21254:20;21272:1;21254:20;:::i;:::-;21249:25;;21288:20;21306:1;21288:20;:::i;:::-;21283:25;;21327:1;21317:2;;21332:18;;:::i;:::-;21317:2;21374:1;21371;21367:9;21362:14;;21239:143;;;;:::o;21388:348::-;21428:7;21451:20;21469:1;21451:20;:::i;:::-;21446:25;;21485:20;21503:1;21485:20;:::i;:::-;21480:25;;21673:1;21605:66;21601:74;21598:1;21595:81;21590:1;21583:9;21576:17;21572:105;21569:2;;;21680:18;;:::i;:::-;21569:2;21728:1;21725;21721:9;21710:20;;21436:300;;;;:::o;21742:191::-;21782:4;21802:20;21820:1;21802:20;:::i;:::-;21797:25;;21836:20;21854:1;21836:20;:::i;:::-;21831:25;;21875:1;21872;21869:8;21866:2;;;21880:18;;:::i;:::-;21866:2;21925:1;21922;21918:9;21910:17;;21787:146;;;;:::o;21939:96::-;21976:7;22005:24;22023:5;22005:24;:::i;:::-;21994:35;;21984:51;;;:::o;22041:90::-;22075:7;22118:5;22111:13;22104:21;22093:32;;22083:48;;;:::o;22137:126::-;22174:7;22214:42;22207:5;22203:54;22192:65;;22182:81;;;:::o;22269:77::-;22306:7;22335:5;22324:16;;22314:32;;;:::o;22352:86::-;22387:7;22427:4;22420:5;22416:16;22405:27;;22395:43;;;:::o;22444:134::-;22502:9;22535:37;22566:5;22535:37;:::i;:::-;22522:50;;22512:66;;;:::o;22584:121::-;22642:9;22675:24;22693:5;22675:24;:::i;:::-;22662:37;;22652:53;;;:::o;22711:126::-;22761:9;22794:37;22825:5;22794:37;:::i;:::-;22781:50;;22771:66;;;:::o;22843:113::-;22893:9;22926:24;22944:5;22926:24;:::i;:::-;22913:37;;22903:53;;;:::o;22962:307::-;23030:1;23040:113;23054:6;23051:1;23048:13;23040:113;;;23139:1;23134:3;23130:11;23124:18;23120:1;23115:3;23111:11;23104:39;23076:2;23073:1;23069:10;23064:15;;23040:113;;;23171:6;23168:1;23165:13;23162:2;;;23251:1;23242:6;23237:3;23233:16;23226:27;23162:2;23011:258;;;;:::o;23275:281::-;23358:27;23380:4;23358:27;:::i;:::-;23350:6;23346:40;23488:6;23476:10;23473:22;23452:18;23440:10;23437:34;23434:62;23431:2;;;23499:18;;:::i;:::-;23431:2;23539:10;23535:2;23528:22;23318:238;;;:::o;23562:233::-;23601:3;23624:24;23642:5;23624:24;:::i;:::-;23615:33;;23670:66;23663:5;23660:77;23657:2;;;23740:18;;:::i;:::-;23657:2;23787:1;23780:5;23776:13;23769:20;;23605:190;;;:::o;23801:180::-;23849:77;23846:1;23839:88;23946:4;23943:1;23936:15;23970:4;23967:1;23960:15;23987:180;24035:77;24032:1;24025:88;24132:4;24129:1;24122:15;24156:4;24153:1;24146:15;24173:180;24221:77;24218:1;24211:88;24318:4;24315:1;24308:15;24342:4;24339:1;24332:15;24359:102;24400:6;24451:2;24447:7;24442:2;24435:5;24431:14;24427:28;24417:38;;24407:54;;;:::o;24467:222::-;24607:34;24603:1;24595:6;24591:14;24584:58;24676:5;24671:2;24663:6;24659:15;24652:30;24573:116;:::o;24695:221::-;24835:34;24831:1;24823:6;24819:14;24812:58;24904:4;24899:2;24891:6;24887:15;24880:29;24801:115;:::o;24922:177::-;25062:29;25058:1;25050:6;25046:14;25039:53;25028:71;:::o;25105:220::-;25245:34;25241:1;25233:6;25229:14;25222:58;25314:3;25309:2;25301:6;25297:15;25290:28;25211:114;:::o;25331:182::-;25471:34;25467:1;25459:6;25455:14;25448:58;25437:76;:::o;25519:228::-;25659:34;25655:1;25647:6;25643:14;25636:58;25728:11;25723:2;25715:6;25711:15;25704:36;25625:122;:::o;25753:180::-;25893:32;25889:1;25881:6;25877:14;25870:56;25859:74;:::o;25939:224::-;26079:34;26075:1;26067:6;26063:14;26056:58;26148:7;26143:2;26135:6;26131:15;26124:32;26045:118;:::o;26169:223::-;26309:34;26305:1;26297:6;26293:14;26286:58;26378:6;26373:2;26365:6;26361:15;26354:31;26275:117;:::o;26398:173::-;26538:25;26534:1;26526:6;26522:14;26515:49;26504:67;:::o;26577:122::-;26650:24;26668:5;26650:24;:::i;:::-;26643:5;26640:35;26630:2;;26689:1;26686;26679:12;26630:2;26620:79;:::o;26705:116::-;26775:21;26790:5;26775:21;:::i;:::-;26768:5;26765:32;26755:2;;26811:1;26808;26801:12;26755:2;26745:76;:::o;26827:122::-;26900:24;26918:5;26900:24;:::i;:::-;26893:5;26890:35;26880:2;;26939:1;26936;26929:12;26880:2;26870:79;:::o

Swarm Source

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