ETH Price: $2,490.56 (+3.08%)
Gas: 7.77 Gwei

Token

Inuflation (Infu)
 

Overview

Max Total Supply

1,000,000,000 Infu

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
maneko.eth
Balance
2,299,540.573954549 Infu

Value
$0.00
0xe619d091233580cc171e4afdad94d98c16fd5a0c
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:
Inuflation

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-29
*/

// SPDX-License-Identifier: MIT
/**

Your hedge against inflation! With rate hikes increasing higher than ever before, Inuflation is here to help our investors make that money back.

https://t.me/inuflationentry
https://twitter.com/InuflationERC

*/
pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract Inuflation is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000_000 * 10**9;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 public _tokensBuyFee = 6;
    uint256 public _tokensSellFee = 9;
    uint256 public launchedTime;

    mapping(address => uint256) private vested;
    uint256 public vestPeriod;

    uint256 private _swapTokensAt;
    uint256 private _maxTokensToSwapForFees;

    address payable private _feeAddrWallet;

    string private constant _name = "Inuflation";
    string private constant _symbol = "Infu";

    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private _maxTxAmount = _tTotal;

    event MaxWalletAmountUpdated(uint _maxWalletAmount);

    constructor () {
        IUniswapV2Router02 _uniswapV2Router =
            IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());


        _feeAddrWallet = payable(0xb2D717E9F6c618cC4CA876756b13786489d5abAd);

        _rOwned[address(this)] = _rTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;

        vestPeriod = 20 days;

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

    // public functions

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

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

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

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

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

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

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

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

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

    function manualswap() public {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() public {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function manualswapsend() external {
        require(_msgSender() == _feeAddrWallet);
        manualswap();
        manualsend();
    }

    function updateVestPeriod(uint256 _vestPeriod) external {
        require(_msgSender() == _feeAddrWallet);
        vestPeriod = _vestPeriod;
    }

    function manualtokensend() external onlyOwner {
        uint256 amount = balanceOf(address(this));
        (uint256 rAmount, , uint256 tTransferAmount, ) = _getValues(amount, 0);
        _rOwned[_msgSender()] += rAmount;
        _rOwned[address(this)] -= rAmount;
        emit Transfer(address(this), _msgSender(), tTransferAmount);
    }

    function airdrop(address addr, uint256 amount) external onlyOwner {
        require(amount <= balanceOf(address(this)), "exceed balance");
        (uint256 rAmount, , uint256 tTransferAmount, ) = _getValues(amount, 0);
        _rOwned[addr] += rAmount;
        _rOwned[address(this)] -= rAmount;
        vested[addr] += tTransferAmount;
        emit Transfer(address(this), addr, tTransferAmount);
    }

    // ownable functions

    function Inutiate() external onlyOwner() {
        require(!tradingOpen, "trading is already open");

        swapEnabled = true;
        cooldownEnabled = true;
        tradingOpen = true;
        _maxWalletAmount = _tTotal * 3 / 100;
        _maxTxAmount = _tTotal * 2 / 100;

        _swapTokensAt = _tTotal * 25 / 10000;
        _maxTokensToSwapForFees = _swapTokensAt * 20;

        launchedTime = block.timestamp;

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function updateBuyFee(uint256 _fee) external onlyOwner {
        require(_fee <= 6, 'fee can not set more than 6%');
        _tokensBuyFee = _fee;
    }

    function updateSellFee(uint256 _fee) external onlyOwner {
        require(_fee <= 9, 'fee can not set more than 9%');
        _tokensSellFee = _fee;
    }

    function removeStrictWalletLimit() external onlyOwner {
        _maxWalletAmount = _tTotal;
    }

    function removeStrictTxLimit() external onlyOwner {
        _maxTxAmount = _tTotal;
    }

    function setSwapTokensAt(uint256 amount) external onlyOwner() {
        _swapTokensAt = amount;
    }

    function setMaxTokensToSwapForFees(uint256 amount) external onlyOwner() {
        _maxTokensToSwapForFees = amount;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function excludeFromFee(address user, bool excluded) external onlyOwner() {
        _isExcludedFromFee[user] = excluded;
    }

    // private functions

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (vested[from] > 0 && block.timestamp < launchedTime + vestPeriod) {
            require(balanceOf(from) - amount >= vested[from]);
        }

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                cooldownEnabled) {
                require(balanceOf(to) + amount <= _maxWalletAmount);
                require(amount <= _maxTxAmount);

                // Cooldown
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (15 seconds);
            }

            if (to == uniswapV2Pair && cooldownEnabled) {
              require(amount <= _maxTxAmount);
            }

            uint256 swapAmount = balanceOf(address(this));

            if(swapAmount > _maxTokensToSwapForFees) {
                swapAmount = _maxTokensToSwapForFees;
            }

            if (swapAmount >= _swapTokensAt &&
                !inSwap &&
                from != uniswapV2Pair &&
                swapEnabled) {

                inSwap = true;

                swapTokensForEth(swapAmount);

                uint256 contractETHBalance = address(this).balance;

                if(contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }

                inSwap = false;
            }
        }

        _tokenTransfer(from,to,amount);
    }

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _getTokenFee(address sender, address recipient) private view returns (uint256) {
        if(!tradingOpen || inSwap) {
            return 0;
        }

        if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) {
            return 0;
        }

        if(sender == uniswapV2Pair) { // if buy
            return _tokensBuyFee;
        } else if (recipient == uniswapV2Pair) { // if sell
          return _tokensSellFee;
        }

        return 0;
    }

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

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

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

    receive() external payable {
    }

    function _getValues(uint256 tAmount, uint256 tokenFee) private view returns (uint256, uint256, uint256, uint256) {

        (uint256 tTransferAmount, uint256 tTeam) = _getTValues(tAmount, tokenFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount) = _getRValues(tAmount, tTeam, currentRate);
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","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":"Inutiate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_tokensBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokensSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualtokensend","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":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStrictWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTokensToSwapForFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_vestPeriod","type":"uint256"}],"name":"updateVestPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000742565b6000196200002b9190620006c9565b60075560066009556009600a556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff021916908315150217905550670de0b6b3a7640000601355670de0b6b3a7640000601455348015620000ae57600080fd5b506000620000c1620005e360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020057600080fd5b505afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b91906200062b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029e57600080fd5b505afa158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d991906200062b565b6040518363ffffffff1660e01b8152600401620002f89291906200067f565b602060405180830381600087803b1580156200031357600080fd5b505af115801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e91906200062b565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b2d717e9f6c618cc4ca876756b13786489d5abad601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200043f620005eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550621a5e00600d819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620005d49190620006ac565b60405180910390a350620007f7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200062581620007dd565b92915050565b600060208284031215620006445762000643620007d8565b5b6000620006548482850162000614565b91505092915050565b620006688162000704565b82525050565b620006798162000738565b82525050565b60006040820190506200069660008301856200065d565b620006a560208301846200065d565b9392505050565b6000602082019050620006c360008301846200066e565b92915050565b6000620006d68262000738565b9150620006e38362000738565b925082821015620006f957620006f86200077a565b5b828203905092915050565b6000620007118262000718565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200074f8262000738565b91506200075c8362000738565b9250826200076f576200076e620007a9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620007e88162000704565b8114620007f457600080fd5b50565b613be980620008076000396000f3fe6080604052600436106101d15760003560e01c80638ba4cc3c116100f7578063d388b47611610095578063f1b758b811610064578063f1b758b81461060d578063f46a903b14610638578063f5a948f614610663578063ff8726021461067a576101d8565b8063d388b47614610553578063dd3a153b1461057c578063dd62ed3e146105a7578063df8408fe146105e4576101d8565b806399ce371a116100d157806399ce371a146104d1578063a9059cbb146104e8578063ba05e9bc14610525578063c3c8cd801461053c576101d8565b80638ba4cc3c146104525780638da5cb5b1461047b57806395d89b41146104a6576101d8565b8063467abe0a1161016f5780636fc3eaec1161013e5780636fc3eaec146103be57806370a08231146103d5578063715018a614610412578063729d8a8714610429576101d8565b8063467abe0a1461031857806353674ba6146103415780635804f1e41461036a5780635932ead114610395576101d8565b806318160ddd116101ab57806318160ddd1461025c5780631d933a4a1461028757806323b872dd146102b0578063313ce567146102ed576101d8565b806306fdde03146101dd578063095ea7b3146102085780630b1ae2ba14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610691565b6040516101ff91906132b6565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612e9d565b6106ce565b60405161023c919061329b565b60405180910390f35b34801561025157600080fd5b5061025a6106ec565b005b34801561026857600080fd5b506102716109a8565b60405161027e9190613498565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612f37565b6109b8565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190612e0a565b610a9b565b6040516102e4919061329b565b60405180910390f35b3480156102f957600080fd5b50610302610b74565b60405161030f919061350d565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612f37565b610b7d565b005b34801561034d57600080fd5b5061036860048036038101906103639190612f37565b610c60565b005b34801561037657600080fd5b5061037f610cff565b60405161038c9190613498565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190612edd565b610d05565b005b3480156103ca57600080fd5b506103d3610db7565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612d70565b610e29565b6040516104099190613498565b60405180910390f35b34801561041e57600080fd5b50610427610e7a565b005b34801561043557600080fd5b50610450600480360381019061044b9190612f37565b610fcd565b005b34801561045e57600080fd5b5061047960048036038101906104749190612e9d565b61106c565b005b34801561048757600080fd5b506104906112cd565b60405161049d9190613257565b60405180910390f35b3480156104b257600080fd5b506104bb6112f6565b6040516104c891906132b6565b60405180910390f35b3480156104dd57600080fd5b506104e6611333565b005b3480156104f457600080fd5b5061050f600480360381019061050a9190612e9d565b6113d9565b60405161051c919061329b565b60405180910390f35b34801561053157600080fd5b5061053a6113f7565b005b34801561054857600080fd5b5061055161146a565b005b34801561055f57600080fd5b5061057a60048036038101906105759190612f37565b6114e4565b005b34801561058857600080fd5b5061059161154f565b60405161059e9190613498565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612dca565b611555565b6040516105db9190613498565b60405180910390f35b3480156105f057600080fd5b5061060b60048036038101906106069190612e5d565b6115dc565b005b34801561061957600080fd5b506106226116cc565b60405161062f9190613498565b60405180910390f35b34801561064457600080fd5b5061064d6116d2565b60405161065a9190613498565b60405180910390f35b34801561066f57600080fd5b506106786116d8565b005b34801561068657600080fd5b5061068f6118b2565b005b60606040518060400160405280600a81526020017f496e75666c6174696f6e00000000000000000000000000000000000000000000815250905090565b60006106e26106db611958565b8484611960565b6001905092915050565b6106f4611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610781576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610778906133b8565b60405180910390fd5b601260149054906101000a900460ff16156107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c890613458565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555060646003670de0b6b3a76400006108399190613604565b61084391906135d3565b60138190555060646002670de0b6b3a76400006108609190613604565b61086a91906135d3565b6014819055506127106019670de0b6b3a76400006108889190613604565b61089291906135d3565b600e819055506014600e546108a79190613604565b600f8190555042600b81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610953929190613272565b602060405180830381600087803b15801561096d57600080fd5b505af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190612f0a565b50565b6000670de0b6b3a7640000905090565b6109c0611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a44906133b8565b60405180910390fd5b6009811115610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890613358565b60405180910390fd5b80600a8190555050565b6000610aa8848484611b2b565b610b6984610ab4611958565b610b6485604051806060016040528060288152602001613b8c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1a611958565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e19092919063ffffffff16565b611960565b600190509392505050565b60006009905090565b610b85611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906133b8565b60405180910390fd5b6006811115610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906132f8565b60405180910390fd5b8060098190555050565b610c68611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec906133b8565b60405180910390fd5b80600e8190555050565b600b5481565b610d0d611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d91906133b8565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df8611958565b73ffffffffffffffffffffffffffffffffffffffff1614610e1857600080fd5b6000479050610e2681612245565b50565b6000610e73600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b1565b9050919050565b610e82611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f06906133b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fd5611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611059906133b8565b60405180910390fd5b80600f8190555050565b611074611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906133b8565b60405180910390fd5b61110a30610e29565b81111561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390613418565b60405180910390fd5b60008061115a83600061231f565b50925050915081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111af919061357d565b9250508190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611205919061365e565b9250508190555080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461125b919061357d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112bf9190613498565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f496e667500000000000000000000000000000000000000000000000000000000815250905090565b61133b611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906133b8565b60405180910390fd5b670de0b6b3a7640000601381905550565b60006113ed6113e6611958565b8484611b2b565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611438611958565b73ffffffffffffffffffffffffffffffffffffffff161461145857600080fd5b61146061146a565b611468610db7565b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ab611958565b73ffffffffffffffffffffffffffffffffffffffff16146114cb57600080fd5b60006114d630610e29565b90506114e18161236e565b50565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611525611958565b73ffffffffffffffffffffffffffffffffffffffff161461154557600080fd5b80600d8190555050565b600d5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115e4611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906133b8565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b60095481565b6116e0611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611764906133b8565b60405180910390fd5b600061177830610e29565b905060008061178883600061231f565b509250509150816002600061179b611958565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117e4919061357d565b9250508190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461183a919061365e565b92505081905550611849611958565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118a59190613498565b60405180910390a3505050565b6118ba611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e906133b8565b60405180910390fd5b670de0b6b3a7640000601481905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613438565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613338565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b1e9190613498565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b92906133f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c02906132d8565b60405180910390fd5b60008111611c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c45906133d8565b60405180910390fd5b601260149054906101000a900460ff1680611cb25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d065750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90613478565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611da25750600d54600b54611d9f919061357d565b42105b15611e0757600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481611df185610e29565b611dfb919061365e565b1015611e0657600080fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eab5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121d157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f5b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f735750601260179054906101000a900460ff165b156120455760135481611f8584610e29565b611f8f919061357d565b1115611f9a57600080fd5b601454811115611fa957600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ff457600080fd5b600f42612001919061357d565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120ae5750601260179054906101000a900460ff165b156120c3576014548111156120c257600080fd5b5b60006120ce30610e29565b9050600f548111156120e057600f5490505b600e5481101580156120ff5750601260159054906101000a900460ff16155b80156121595750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156121715750601260169054906101000a900460ff165b156121cf576001601260156101000a81548160ff02191690831515021790555061219a8161236e565b600047905060008111156121b2576121b181612245565b5b6000601260156101000a81548160ff021916908315150217905550505b505b6121dc8383836125c0565b505050565b6000838311158290612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222091906132b6565b60405180910390fd5b5060008385612238919061365e565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122ad573d6000803e3d6000fd5b5050565b60006007548211156122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef90613318565b60405180910390fd5b60006123026125d0565b905061231781846125fb90919063ffffffff16565b915050919050565b6000806000806000806123328888612645565b9150915060006123406125d0565b90506000806123508b8585612698565b91509150818186869850985098509850505050505092959194509250565b6000600267ffffffffffffffff81111561238b5761238a6137b9565b5b6040519080825280602002602001820160405280156123b95781602001602082028036833780820191505090505b50905030816000815181106123d1576123d061378a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561247357600080fd5b505afa158015612487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ab9190612d9d565b816001815181106124bf576124be61378a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061252630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611960565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161258a9594939291906134b3565b600060405180830381600087803b1580156125a457600080fd5b505af11580156125b8573d6000803e3d6000fd5b505050505050565b6125cb8383836126f1565b505050565b60008060006125dd6128b3565b915091506125f481836125fb90919063ffffffff16565b9250505090565b600061263d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612912565b905092915050565b60008060006126706064612662868861297590919063ffffffff16565b6125fb90919063ffffffff16565b9050600061268782876129f090919063ffffffff16565b905080829350935050509250929050565b60008060006126b0848761297590919063ffffffff16565b905060006126c7858761297590919063ffffffff16565b905060006126de82846129f090919063ffffffff16565b9050828194509450505050935093915050565b60008060008061270a856127058989612a3a565b61231f565b935093509350935061276484600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f983600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bec90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061284581612c4a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128a29190613498565b60405180910390a350505050505050565b600080600060075490506000670de0b6b3a764000090506128e7670de0b6b3a76400006007546125fb90919063ffffffff16565b82101561290557600754670de0b6b3a764000093509350505061290e565b81819350935050505b9091565b60008083118290612959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295091906132b6565b60405180910390fd5b506000838561296891906135d3565b9050809150509392505050565b60008083141561298857600090506129ea565b600082846129969190613604565b90508284826129a591906135d3565b146129e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129dc90613398565b60405180910390fd5b809150505b92915050565b6000612a3283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121e1565b905092915050565b6000601260149054906101000a900460ff161580612a645750601260159054906101000a900460ff165b15612a725760009050612be6565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b135750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b215760009050612be6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b81576009549050612be6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612be157600a549050612be6565b600090505b92915050565b6000808284612bfb919061357d565b905083811015612c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3790613378565b60405180910390fd5b8091505092915050565b6000612c546125d0565b90506000612c6b828461297590919063ffffffff16565b9050612cbf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600081359050612d1681613b46565b92915050565b600081519050612d2b81613b46565b92915050565b600081359050612d4081613b5d565b92915050565b600081519050612d5581613b5d565b92915050565b600081359050612d6a81613b74565b92915050565b600060208284031215612d8657612d856137e8565b5b6000612d9484828501612d07565b91505092915050565b600060208284031215612db357612db26137e8565b5b6000612dc184828501612d1c565b91505092915050565b60008060408385031215612de157612de06137e8565b5b6000612def85828601612d07565b9250506020612e0085828601612d07565b9150509250929050565b600080600060608486031215612e2357612e226137e8565b5b6000612e3186828701612d07565b9350506020612e4286828701612d07565b9250506040612e5386828701612d5b565b9150509250925092565b60008060408385031215612e7457612e736137e8565b5b6000612e8285828601612d07565b9250506020612e9385828601612d31565b9150509250929050565b60008060408385031215612eb457612eb36137e8565b5b6000612ec285828601612d07565b9250506020612ed385828601612d5b565b9150509250929050565b600060208284031215612ef357612ef26137e8565b5b6000612f0184828501612d31565b91505092915050565b600060208284031215612f2057612f1f6137e8565b5b6000612f2e84828501612d46565b91505092915050565b600060208284031215612f4d57612f4c6137e8565b5b6000612f5b84828501612d5b565b91505092915050565b6000612f708383612f7c565b60208301905092915050565b612f8581613692565b82525050565b612f9481613692565b82525050565b6000612fa582613538565b612faf818561355b565b9350612fba83613528565b8060005b83811015612feb578151612fd28882612f64565b9750612fdd8361354e565b925050600181019050612fbe565b5085935050505092915050565b613001816136a4565b82525050565b613010816136e7565b82525050565b600061302182613543565b61302b818561356c565b935061303b8185602086016136f9565b613044816137ed565b840191505092915050565b600061305c60238361356c565b9150613067826137fe565b604082019050919050565b600061307f601c8361356c565b915061308a8261384d565b602082019050919050565b60006130a2602a8361356c565b91506130ad82613876565b604082019050919050565b60006130c560228361356c565b91506130d0826138c5565b604082019050919050565b60006130e8601c8361356c565b91506130f382613914565b602082019050919050565b600061310b601b8361356c565b91506131168261393d565b602082019050919050565b600061312e60218361356c565b915061313982613966565b604082019050919050565b600061315160208361356c565b915061315c826139b5565b602082019050919050565b600061317460298361356c565b915061317f826139de565b604082019050919050565b600061319760258361356c565b91506131a282613a2d565b604082019050919050565b60006131ba600e8361356c565b91506131c582613a7c565b602082019050919050565b60006131dd60248361356c565b91506131e882613aa5565b604082019050919050565b600061320060178361356c565b915061320b82613af4565b602082019050919050565b600061322360178361356c565b915061322e82613b1d565b602082019050919050565b613242816136d0565b82525050565b613251816136da565b82525050565b600060208201905061326c6000830184612f8b565b92915050565b60006040820190506132876000830185612f8b565b6132946020830184613239565b9392505050565b60006020820190506132b06000830184612ff8565b92915050565b600060208201905081810360008301526132d08184613016565b905092915050565b600060208201905081810360008301526132f18161304f565b9050919050565b6000602082019050818103600083015261331181613072565b9050919050565b6000602082019050818103600083015261333181613095565b9050919050565b60006020820190508181036000830152613351816130b8565b9050919050565b60006020820190508181036000830152613371816130db565b9050919050565b60006020820190508181036000830152613391816130fe565b9050919050565b600060208201905081810360008301526133b181613121565b9050919050565b600060208201905081810360008301526133d181613144565b9050919050565b600060208201905081810360008301526133f181613167565b9050919050565b600060208201905081810360008301526134118161318a565b9050919050565b60006020820190508181036000830152613431816131ad565b9050919050565b60006020820190508181036000830152613451816131d0565b9050919050565b60006020820190508181036000830152613471816131f3565b9050919050565b6000602082019050818103600083015261349181613216565b9050919050565b60006020820190506134ad6000830184613239565b92915050565b600060a0820190506134c86000830188613239565b6134d56020830187613007565b81810360408301526134e78186612f9a565b90506134f66060830185612f8b565b6135036080830184613239565b9695505050505050565b60006020820190506135226000830184613248565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613588826136d0565b9150613593836136d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135c8576135c761372c565b5b828201905092915050565b60006135de826136d0565b91506135e9836136d0565b9250826135f9576135f861375b565b5b828204905092915050565b600061360f826136d0565b915061361a836136d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136535761365261372c565b5b828202905092915050565b6000613669826136d0565b9150613674836136d0565b9250828210156136875761368661372c565b5b828203905092915050565b600061369d826136b0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136f2826136d0565b9050919050565b60005b838110156137175780820151818401526020810190506136fc565b83811115613726576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6665652063616e206e6f7420736574206d6f7265207468616e20362500000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f6665652063616e206e6f7420736574206d6f7265207468616e20392500000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6578636565642062616c616e6365000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b613b4f81613692565b8114613b5a57600080fd5b50565b613b66816136a4565b8114613b7157600080fd5b50565b613b7d816136d0565b8114613b8857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122045aa81f6a164c914f487657b4eca6ebbc2b94eb9578a09a9056f2f7ffb39d97d64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80638ba4cc3c116100f7578063d388b47611610095578063f1b758b811610064578063f1b758b81461060d578063f46a903b14610638578063f5a948f614610663578063ff8726021461067a576101d8565b8063d388b47614610553578063dd3a153b1461057c578063dd62ed3e146105a7578063df8408fe146105e4576101d8565b806399ce371a116100d157806399ce371a146104d1578063a9059cbb146104e8578063ba05e9bc14610525578063c3c8cd801461053c576101d8565b80638ba4cc3c146104525780638da5cb5b1461047b57806395d89b41146104a6576101d8565b8063467abe0a1161016f5780636fc3eaec1161013e5780636fc3eaec146103be57806370a08231146103d5578063715018a614610412578063729d8a8714610429576101d8565b8063467abe0a1461031857806353674ba6146103415780635804f1e41461036a5780635932ead114610395576101d8565b806318160ddd116101ab57806318160ddd1461025c5780631d933a4a1461028757806323b872dd146102b0578063313ce567146102ed576101d8565b806306fdde03146101dd578063095ea7b3146102085780630b1ae2ba14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610691565b6040516101ff91906132b6565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612e9d565b6106ce565b60405161023c919061329b565b60405180910390f35b34801561025157600080fd5b5061025a6106ec565b005b34801561026857600080fd5b506102716109a8565b60405161027e9190613498565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612f37565b6109b8565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190612e0a565b610a9b565b6040516102e4919061329b565b60405180910390f35b3480156102f957600080fd5b50610302610b74565b60405161030f919061350d565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612f37565b610b7d565b005b34801561034d57600080fd5b5061036860048036038101906103639190612f37565b610c60565b005b34801561037657600080fd5b5061037f610cff565b60405161038c9190613498565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190612edd565b610d05565b005b3480156103ca57600080fd5b506103d3610db7565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612d70565b610e29565b6040516104099190613498565b60405180910390f35b34801561041e57600080fd5b50610427610e7a565b005b34801561043557600080fd5b50610450600480360381019061044b9190612f37565b610fcd565b005b34801561045e57600080fd5b5061047960048036038101906104749190612e9d565b61106c565b005b34801561048757600080fd5b506104906112cd565b60405161049d9190613257565b60405180910390f35b3480156104b257600080fd5b506104bb6112f6565b6040516104c891906132b6565b60405180910390f35b3480156104dd57600080fd5b506104e6611333565b005b3480156104f457600080fd5b5061050f600480360381019061050a9190612e9d565b6113d9565b60405161051c919061329b565b60405180910390f35b34801561053157600080fd5b5061053a6113f7565b005b34801561054857600080fd5b5061055161146a565b005b34801561055f57600080fd5b5061057a60048036038101906105759190612f37565b6114e4565b005b34801561058857600080fd5b5061059161154f565b60405161059e9190613498565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612dca565b611555565b6040516105db9190613498565b60405180910390f35b3480156105f057600080fd5b5061060b60048036038101906106069190612e5d565b6115dc565b005b34801561061957600080fd5b506106226116cc565b60405161062f9190613498565b60405180910390f35b34801561064457600080fd5b5061064d6116d2565b60405161065a9190613498565b60405180910390f35b34801561066f57600080fd5b506106786116d8565b005b34801561068657600080fd5b5061068f6118b2565b005b60606040518060400160405280600a81526020017f496e75666c6174696f6e00000000000000000000000000000000000000000000815250905090565b60006106e26106db611958565b8484611960565b6001905092915050565b6106f4611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610781576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610778906133b8565b60405180910390fd5b601260149054906101000a900460ff16156107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c890613458565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555060646003670de0b6b3a76400006108399190613604565b61084391906135d3565b60138190555060646002670de0b6b3a76400006108609190613604565b61086a91906135d3565b6014819055506127106019670de0b6b3a76400006108889190613604565b61089291906135d3565b600e819055506014600e546108a79190613604565b600f8190555042600b81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610953929190613272565b602060405180830381600087803b15801561096d57600080fd5b505af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190612f0a565b50565b6000670de0b6b3a7640000905090565b6109c0611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a44906133b8565b60405180910390fd5b6009811115610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890613358565b60405180910390fd5b80600a8190555050565b6000610aa8848484611b2b565b610b6984610ab4611958565b610b6485604051806060016040528060288152602001613b8c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1a611958565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e19092919063ffffffff16565b611960565b600190509392505050565b60006009905090565b610b85611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906133b8565b60405180910390fd5b6006811115610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906132f8565b60405180910390fd5b8060098190555050565b610c68611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec906133b8565b60405180910390fd5b80600e8190555050565b600b5481565b610d0d611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d91906133b8565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df8611958565b73ffffffffffffffffffffffffffffffffffffffff1614610e1857600080fd5b6000479050610e2681612245565b50565b6000610e73600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b1565b9050919050565b610e82611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f06906133b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fd5611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611059906133b8565b60405180910390fd5b80600f8190555050565b611074611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906133b8565b60405180910390fd5b61110a30610e29565b81111561114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390613418565b60405180910390fd5b60008061115a83600061231f565b50925050915081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111af919061357d565b9250508190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611205919061365e565b9250508190555080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461125b919061357d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112bf9190613498565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f496e667500000000000000000000000000000000000000000000000000000000815250905090565b61133b611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906133b8565b60405180910390fd5b670de0b6b3a7640000601381905550565b60006113ed6113e6611958565b8484611b2b565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611438611958565b73ffffffffffffffffffffffffffffffffffffffff161461145857600080fd5b61146061146a565b611468610db7565b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ab611958565b73ffffffffffffffffffffffffffffffffffffffff16146114cb57600080fd5b60006114d630610e29565b90506114e18161236e565b50565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611525611958565b73ffffffffffffffffffffffffffffffffffffffff161461154557600080fd5b80600d8190555050565b600d5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115e4611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906133b8565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b60095481565b6116e0611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611764906133b8565b60405180910390fd5b600061177830610e29565b905060008061178883600061231f565b509250509150816002600061179b611958565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117e4919061357d565b9250508190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461183a919061365e565b92505081905550611849611958565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118a59190613498565b60405180910390a3505050565b6118ba611958565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e906133b8565b60405180910390fd5b670de0b6b3a7640000601481905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613438565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613338565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b1e9190613498565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b92906133f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c02906132d8565b60405180910390fd5b60008111611c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c45906133d8565b60405180910390fd5b601260149054906101000a900460ff1680611cb25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d065750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90613478565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611da25750600d54600b54611d9f919061357d565b42105b15611e0757600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481611df185610e29565b611dfb919061365e565b1015611e0657600080fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eab5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121d157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f5b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f735750601260179054906101000a900460ff165b156120455760135481611f8584610e29565b611f8f919061357d565b1115611f9a57600080fd5b601454811115611fa957600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ff457600080fd5b600f42612001919061357d565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120ae5750601260179054906101000a900460ff165b156120c3576014548111156120c257600080fd5b5b60006120ce30610e29565b9050600f548111156120e057600f5490505b600e5481101580156120ff5750601260159054906101000a900460ff16155b80156121595750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156121715750601260169054906101000a900460ff165b156121cf576001601260156101000a81548160ff02191690831515021790555061219a8161236e565b600047905060008111156121b2576121b181612245565b5b6000601260156101000a81548160ff021916908315150217905550505b505b6121dc8383836125c0565b505050565b6000838311158290612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222091906132b6565b60405180910390fd5b5060008385612238919061365e565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122ad573d6000803e3d6000fd5b5050565b60006007548211156122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef90613318565b60405180910390fd5b60006123026125d0565b905061231781846125fb90919063ffffffff16565b915050919050565b6000806000806000806123328888612645565b9150915060006123406125d0565b90506000806123508b8585612698565b91509150818186869850985098509850505050505092959194509250565b6000600267ffffffffffffffff81111561238b5761238a6137b9565b5b6040519080825280602002602001820160405280156123b95781602001602082028036833780820191505090505b50905030816000815181106123d1576123d061378a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561247357600080fd5b505afa158015612487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ab9190612d9d565b816001815181106124bf576124be61378a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061252630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611960565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161258a9594939291906134b3565b600060405180830381600087803b1580156125a457600080fd5b505af11580156125b8573d6000803e3d6000fd5b505050505050565b6125cb8383836126f1565b505050565b60008060006125dd6128b3565b915091506125f481836125fb90919063ffffffff16565b9250505090565b600061263d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612912565b905092915050565b60008060006126706064612662868861297590919063ffffffff16565b6125fb90919063ffffffff16565b9050600061268782876129f090919063ffffffff16565b905080829350935050509250929050565b60008060006126b0848761297590919063ffffffff16565b905060006126c7858761297590919063ffffffff16565b905060006126de82846129f090919063ffffffff16565b9050828194509450505050935093915050565b60008060008061270a856127058989612a3a565b61231f565b935093509350935061276484600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f090919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f983600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bec90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061284581612c4a565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128a29190613498565b60405180910390a350505050505050565b600080600060075490506000670de0b6b3a764000090506128e7670de0b6b3a76400006007546125fb90919063ffffffff16565b82101561290557600754670de0b6b3a764000093509350505061290e565b81819350935050505b9091565b60008083118290612959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295091906132b6565b60405180910390fd5b506000838561296891906135d3565b9050809150509392505050565b60008083141561298857600090506129ea565b600082846129969190613604565b90508284826129a591906135d3565b146129e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129dc90613398565b60405180910390fd5b809150505b92915050565b6000612a3283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121e1565b905092915050565b6000601260149054906101000a900460ff161580612a645750601260159054906101000a900460ff165b15612a725760009050612be6565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b135750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b215760009050612be6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b81576009549050612be6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612be157600a549050612be6565b600090505b92915050565b6000808284612bfb919061357d565b905083811015612c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3790613378565b60405180910390fd5b8091505092915050565b6000612c546125d0565b90506000612c6b828461297590919063ffffffff16565b9050612cbf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600081359050612d1681613b46565b92915050565b600081519050612d2b81613b46565b92915050565b600081359050612d4081613b5d565b92915050565b600081519050612d5581613b5d565b92915050565b600081359050612d6a81613b74565b92915050565b600060208284031215612d8657612d856137e8565b5b6000612d9484828501612d07565b91505092915050565b600060208284031215612db357612db26137e8565b5b6000612dc184828501612d1c565b91505092915050565b60008060408385031215612de157612de06137e8565b5b6000612def85828601612d07565b9250506020612e0085828601612d07565b9150509250929050565b600080600060608486031215612e2357612e226137e8565b5b6000612e3186828701612d07565b9350506020612e4286828701612d07565b9250506040612e5386828701612d5b565b9150509250925092565b60008060408385031215612e7457612e736137e8565b5b6000612e8285828601612d07565b9250506020612e9385828601612d31565b9150509250929050565b60008060408385031215612eb457612eb36137e8565b5b6000612ec285828601612d07565b9250506020612ed385828601612d5b565b9150509250929050565b600060208284031215612ef357612ef26137e8565b5b6000612f0184828501612d31565b91505092915050565b600060208284031215612f2057612f1f6137e8565b5b6000612f2e84828501612d46565b91505092915050565b600060208284031215612f4d57612f4c6137e8565b5b6000612f5b84828501612d5b565b91505092915050565b6000612f708383612f7c565b60208301905092915050565b612f8581613692565b82525050565b612f9481613692565b82525050565b6000612fa582613538565b612faf818561355b565b9350612fba83613528565b8060005b83811015612feb578151612fd28882612f64565b9750612fdd8361354e565b925050600181019050612fbe565b5085935050505092915050565b613001816136a4565b82525050565b613010816136e7565b82525050565b600061302182613543565b61302b818561356c565b935061303b8185602086016136f9565b613044816137ed565b840191505092915050565b600061305c60238361356c565b9150613067826137fe565b604082019050919050565b600061307f601c8361356c565b915061308a8261384d565b602082019050919050565b60006130a2602a8361356c565b91506130ad82613876565b604082019050919050565b60006130c560228361356c565b91506130d0826138c5565b604082019050919050565b60006130e8601c8361356c565b91506130f382613914565b602082019050919050565b600061310b601b8361356c565b91506131168261393d565b602082019050919050565b600061312e60218361356c565b915061313982613966565b604082019050919050565b600061315160208361356c565b915061315c826139b5565b602082019050919050565b600061317460298361356c565b915061317f826139de565b604082019050919050565b600061319760258361356c565b91506131a282613a2d565b604082019050919050565b60006131ba600e8361356c565b91506131c582613a7c565b602082019050919050565b60006131dd60248361356c565b91506131e882613aa5565b604082019050919050565b600061320060178361356c565b915061320b82613af4565b602082019050919050565b600061322360178361356c565b915061322e82613b1d565b602082019050919050565b613242816136d0565b82525050565b613251816136da565b82525050565b600060208201905061326c6000830184612f8b565b92915050565b60006040820190506132876000830185612f8b565b6132946020830184613239565b9392505050565b60006020820190506132b06000830184612ff8565b92915050565b600060208201905081810360008301526132d08184613016565b905092915050565b600060208201905081810360008301526132f18161304f565b9050919050565b6000602082019050818103600083015261331181613072565b9050919050565b6000602082019050818103600083015261333181613095565b9050919050565b60006020820190508181036000830152613351816130b8565b9050919050565b60006020820190508181036000830152613371816130db565b9050919050565b60006020820190508181036000830152613391816130fe565b9050919050565b600060208201905081810360008301526133b181613121565b9050919050565b600060208201905081810360008301526133d181613144565b9050919050565b600060208201905081810360008301526133f181613167565b9050919050565b600060208201905081810360008301526134118161318a565b9050919050565b60006020820190508181036000830152613431816131ad565b9050919050565b60006020820190508181036000830152613451816131d0565b9050919050565b60006020820190508181036000830152613471816131f3565b9050919050565b6000602082019050818103600083015261349181613216565b9050919050565b60006020820190506134ad6000830184613239565b92915050565b600060a0820190506134c86000830188613239565b6134d56020830187613007565b81810360408301526134e78186612f9a565b90506134f66060830185612f8b565b6135036080830184613239565b9695505050505050565b60006020820190506135226000830184613248565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613588826136d0565b9150613593836136d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135c8576135c761372c565b5b828201905092915050565b60006135de826136d0565b91506135e9836136d0565b9250826135f9576135f861375b565b5b828204905092915050565b600061360f826136d0565b915061361a836136d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136535761365261372c565b5b828202905092915050565b6000613669826136d0565b9150613674836136d0565b9250828210156136875761368661372c565b5b828203905092915050565b600061369d826136b0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136f2826136d0565b9050919050565b60005b838110156137175780820151818401526020810190506136fc565b83811115613726576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6665652063616e206e6f7420736574206d6f7265207468616e20362500000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f6665652063616e206e6f7420736574206d6f7265207468616e20392500000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f6578636565642062616c616e6365000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b613b4f81613692565b8114613b5a57600080fd5b50565b613b66816136a4565b8114613b7157600080fd5b50565b613b7d816136d0565b8114613b8857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122045aa81f6a164c914f487657b4eca6ebbc2b94eb9578a09a9056f2f7ffb39d97d64736f6c63430008070033

Deployed Bytecode Sourcemap

3734:12741:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5943:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6795:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8786:522;;;;;;;;;;;;;:::i;:::-;;6220:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9479:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6964:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6129:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9316:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9850:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4394:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10092:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7485:191;;;;;;;;;;;;;:::i;:::-;;6323:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2815:148;;;;;;;;;;;;;:::i;:::-;;9961:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8340:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2601:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6034:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9644:99;;;;;;;;;;;;;:::i;:::-;;6469:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7684:139;;;;;;;;;;;;;:::i;:::-;;7285:192;;;;;;;;;;;;;:::i;:::-;;7831:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4479:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6644:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10203:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4354:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4315:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7988:344;;;;;;;;;;;;;:::i;:::-;;9751:91;;;;;;;;;;;;;:::i;:::-;;5943:83;5980:13;6013:5;;;;;;;;;;;;;;;;;6006:12;;5943:83;:::o;6795:161::-;6870:4;6887:39;6896:12;:10;:12::i;:::-;6910:7;6919:6;6887:8;:39::i;:::-;6944:4;6937:11;;6795:161;;;;:::o;8786:522::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8847:11:::1;;;;;;;;;;;8846:12;8838:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8913:4;8899:11;;:18;;;;;;;;;;;;;;;;;;8946:4;8928:15;;:22;;;;;;;;;;;;;;;;;;8975:4;8961:11;;:18;;;;;;;;;;;;;;;;;;9023:3;9019:1;4194:21;9009:11;;;;:::i;:::-;:17;;;;:::i;:::-;8990:16;:36;;;;9066:3;9062:1;4194:21;9052:11;;;;:::i;:::-;:17;;;;:::i;:::-;9037:12;:32;;;;9113:5;9108:2;4194:21;9098:12;;;;:::i;:::-;:20;;;;:::i;:::-;9082:13;:36;;;;9171:2;9155:13;;:18;;;;:::i;:::-;9129:23;:44;;;;9201:15;9186:12;:30;;;;9236:13;;;;;;;;;;;9229:29;;;9267:15;;;;;;;;;;;9285:14;9229:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8786:522::o:0;6220:95::-;6273:7;4194:21;6293:14;;6220:95;:::o;9479:157::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9562:1:::1;9554:4;:9;;9546:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9624:4;9607:14;:21;;;;9479:157:::0;:::o;6964:313::-;7062:4;7079:36;7089:6;7097:9;7108:6;7079:9;:36::i;:::-;7126:121;7135:6;7143:12;:10;:12::i;:::-;7157:89;7195:6;7157:89;;;;;;;;;;;;;;;;;:11;:19;7169:6;7157:19;;;;;;;;;;;;;;;:33;7177:12;:10;:12::i;:::-;7157:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7126:8;:121::i;:::-;7265:4;7258:11;;6964:313;;;;;:::o;6129:83::-;6170:5;4779:1;6188:16;;6129:83;:::o;9316:155::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9398:1:::1;9390:4;:9;;9382:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9459:4;9443:13;:20;;;;9316:155:::0;:::o;9850:103::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9939:6:::1;9923:13;:22;;;;9850:103:::0;:::o;4394:27::-;;;;:::o;10092:103::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10182:5:::1;10164:15;;:23;;;;;;;;;;;;;;;;;;10092:103:::0;:::o;7485:191::-;7549:14;;;;;;;;;;;7533:30;;:12;:10;:12::i;:::-;:30;;;7525:39;;;;;;7575:26;7604:21;7575:50;;7636:32;7649:18;7636:12;:32::i;:::-;7514:162;7485:191::o;6323:138::-;6389:7;6416:37;6436:7;:16;6444:7;6436:16;;;;;;;;;;;;;;;;6416:19;:37::i;:::-;6409:44;;6323:138;;;:::o;2815:148::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2922:1:::1;2885:40;;2906:6;::::0;::::1;;;;;;;;2885:40;;;;;;;;;;;;2953:1;2936:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2815:148::o:0;9961:123::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10070:6:::1;10044:23;:32;;;;9961:123:::0;:::o;8340:410::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8435:24:::1;8453:4;8435:9;:24::i;:::-;8425:6;:34;;8417:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8490:15;8509:23:::0;8538:21:::1;8549:6;8557:1;8538:10;:21::i;:::-;8489:70;;;;;;8587:7;8570;:13;8578:4;8570:13;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;8631:7;8605;:22;8621:4;8605:22;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;8665:15;8649:6;:12;8656:4;8649:12;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;8720:4;8696:46;;8713:4;8696:46;;;8726:15;8696:46;;;;;;:::i;:::-;;;;;;;;8406:344;;8340:410:::0;;:::o;2601:79::-;2639:7;2666:6;;;;;;;;;;;2659:13;;2601:79;:::o;6034:87::-;6073:13;6106:7;;;;;;;;;;;;;;;;;6099:14;;6034:87;:::o;9644:99::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4194:21:::1;9709:16;:26;;;;9644:99::o:0;6469:167::-;6547:4;6564:42;6574:12;:10;:12::i;:::-;6588:9;6599:6;6564:9;:42::i;:::-;6624:4;6617:11;;6469:167;;;;:::o;7684:139::-;7754:14;;;;;;;;;;;7738:30;;:12;:10;:12::i;:::-;:30;;;7730:39;;;;;;7780:12;:10;:12::i;:::-;7803;:10;:12::i;:::-;7684:139::o;7285:192::-;7349:14;;;;;;;;;;;7333:30;;:12;:10;:12::i;:::-;:30;;;7325:39;;;;;;7375:23;7401:24;7419:4;7401:9;:24::i;:::-;7375:50;;7436:33;7453:15;7436:16;:33::i;:::-;7314:163;7285:192::o;7831:149::-;7922:14;;;;;;;;;;;7906:30;;:12;:10;:12::i;:::-;:30;;;7898:39;;;;;;7961:11;7948:10;:24;;;;7831:149;:::o;4479:25::-;;;;:::o;6644:143::-;6725:7;6752:11;:18;6764:5;6752:18;;;;;;;;;;;;;;;:27;6771:7;6752:27;;;;;;;;;;;;;;;;6745:34;;6644:143;;;;:::o;10203:128::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10315:8:::1;10288:18;:24;10307:4;10288:24;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10203:128:::0;;:::o;4354:33::-;;;;:::o;4315:32::-;;;;:::o;7988:344::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8045:14:::1;8062:24;8080:4;8062:9;:24::i;:::-;8045:41;;8098:15;8117:23:::0;8146:21:::1;8157:6;8165:1;8146:10;:21::i;:::-;8097:70;;;;;;8203:7;8178;:21;8186:12;:10;:12::i;:::-;8178:21;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;8247:7;8221;:22;8237:4;8221:22;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;8294:12;:10;:12::i;:::-;8270:54;;8287:4;8270:54;;;8308:15;8270:54;;;;;;:::i;:::-;;;;;;;;8034:298;;;7988:344::o:0;9751:91::-;2738:12;:10;:12::i;:::-;2728:22;;:6;;;;;;;;;;:22;;;2720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4194:21:::1;9812:12;:22;;;;9751:91::o:0;319:98::-;372:7;399:10;392:17;;319:98;:::o;10629:335::-;10739:1;10722:19;;:5;:19;;;;10714:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10820:1;10801:21;;:7;:21;;;;10793:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10902:6;10872:11;:18;10884:5;10872:18;;;;;;;;;;;;;;;:27;10891:7;10872:27;;;;;;;;;;;;;;;:36;;;;10940:7;10924:32;;10933:5;10924:32;;;10949:6;10924:32;;;;;;:::i;:::-;;;;;;;;10629:335;;;:::o;10972:1927::-;11076:1;11060:18;;:4;:18;;;;11052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11153:1;11139:16;;:2;:16;;;;11131:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11223:1;11214:6;:10;11206:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11289:11;;;;;;;;;;;:39;;;;11304:18;:24;11323:4;11304:24;;;;;;;;;;;;;;;;;;;;;;;;;11289:39;:65;;;;11332:18;:22;11351:2;11332:22;;;;;;;;;;;;;;;;;;;;;;;;;11289:65;11281:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;11414:1;11399:6;:12;11406:4;11399:12;;;;;;;;;;;;;;;;:16;:63;;;;;11452:10;;11437:12;;:25;;;;:::i;:::-;11419:15;:43;11399:63;11395:145;;;11515:6;:12;11522:4;11515:12;;;;;;;;;;;;;;;;11505:6;11487:15;11497:4;11487:9;:15::i;:::-;:24;;;;:::i;:::-;:40;;11479:49;;;;;;11395:145;11557:18;:24;11576:4;11557:24;;;;;;;;;;;;;;;;;;;;;;;;;11556:25;:52;;;;;11586:18;:22;11605:2;11586:22;;;;;;;;;;;;;;;;;;;;;;;;;11585:23;11556:52;11552:1297;;;11655:13;;;;;;;;;;;11647:21;;:4;:21;;;:72;;;;;11703:15;;;;;;;;;;;11689:30;;:2;:30;;;;11647:72;:108;;;;;11740:15;;;;;;;;;;;11647:108;11625:421;;;11810:16;;11800:6;11784:13;11794:2;11784:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;11776:51;;;;;;11864:12;;11854:6;:22;;11846:31;;;;;;11950:15;11935:8;:12;11944:2;11935:12;;;;;;;;;;;;;;;;:30;11927:39;;;;;;12019:10;12000:15;:30;;;;:::i;:::-;11985:8;:12;11994:2;11985:12;;;;;;;;;;;;;;;:45;;;;11625:421;12072:13;;;;;;;;;;;12066:19;;:2;:19;;;:38;;;;;12089:15;;;;;;;;;;;12066:38;12062:108;;;12141:12;;12131:6;:22;;12123:31;;;;;;12062:108;12186:18;12207:24;12225:4;12207:9;:24::i;:::-;12186:45;;12264:23;;12251:10;:36;12248:112;;;12321:23;;12308:36;;12248:112;12394:13;;12380:10;:27;;:55;;;;;12429:6;;;;;;;;;;;12428:7;12380:55;:97;;;;;12464:13;;;;;;;;;;;12456:21;;:4;:21;;;;12380:97;:129;;;;;12498:11;;;;;;;;;;;12380:129;12376:462;;;12541:4;12532:6;;:13;;;;;;;;;;;;;;;;;;12566:28;12583:10;12566:16;:28::i;:::-;12615:26;12644:21;12615:50;;12710:1;12689:18;:22;12686:102;;;12736:32;12749:18;12736:12;:32::i;:::-;12686:102;12817:5;12808:6;;:14;;;;;;;;;;;;;;;;;;12511:327;12376:462;11610:1239;11552:1297;12861:30;12876:4;12881:2;12884:6;12861:14;:30::i;:::-;10972:1927;;;:::o;1456:190::-;1542:7;1575:1;1570;:6;;1578:12;1562:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1602:9;1618:1;1614;:5;;;;:::i;:::-;1602:17;;1637:1;1630:8;;;1456:190;;;;;:::o;13388:96::-;13445:14;;;;;;;;;;;:23;;:31;13469:6;13445:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13388:96;:::o;10367:254::-;10434:7;10473;;10462;:18;;10454:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10538:19;10561:10;:8;:10::i;:::-;10538:33;;10589:24;10601:11;10589:7;:11;;:24;;;;:::i;:::-;10582:31;;;10367:254;;;:::o;15030:415::-;15107:7;15116;15125;15134;15157:23;15182:13;15199:30;15211:7;15220:8;15199:11;:30::i;:::-;15156:73;;;;15240:19;15263:10;:8;:10::i;:::-;15240:33;;15285:15;15302:23;15329:40;15341:7;15350:5;15357:11;15329;:40::i;:::-;15284:85;;;;15388:7;15397:15;15414;15431:5;15380:57;;;;;;;;;;;;;15030:415;;;;;;;:::o;12907:473::-;12973:21;13011:1;12997:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12973:40;;13042:4;13024;13029:1;13024:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13068:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13058:4;13063:1;13058:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13101:62;13118:4;13133:15;;;;;;;;;;;13151:11;13101:8;:62::i;:::-;13176:15;;;;;;;;;;;:66;;;13257:11;13283:1;13299:4;13326;13346:15;13176:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12962:418;12907:473;:::o;13492:146::-;13586:44;13604:6;13612:9;13623:6;13586:17;:44::i;:::-;13492:146;;;:::o;16045:163::-;16086:7;16107:15;16124;16143:19;:17;:19::i;:::-;16106:56;;;;16180:20;16192:7;16180;:11;;:20;;;;:::i;:::-;16173:27;;;;16045:163;:::o;1908:132::-;1966:7;1993:39;1997:1;2000;1993:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1986:46;;1908:132;;;;:::o;15453:256::-;15530:7;15539;15559:13;15575:29;15600:3;15575:20;15587:7;15575;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15559:45;;15615:23;15641:18;15653:5;15641:7;:11;;:18;;;;:::i;:::-;15615:44;;15678:15;15695:5;15670:31;;;;;;15453:256;;;;;:::o;15717:323::-;15813:7;15822;15842:15;15860:24;15872:11;15860:7;:11;;:24;;;;:::i;:::-;15842:42;;15895:13;15911:22;15921:11;15911:5;:9;;:22;;;;:::i;:::-;15895:38;;15944:23;15970:18;15982:5;15970:7;:11;;:18;;;;:::i;:::-;15944:44;;16007:7;16016:15;15999:33;;;;;;;15717:323;;;;;;:::o;14146:458::-;14245:15;14262:23;14287;14312:13;14329:52;14340:7;14349:31;14362:6;14370:9;14349:12;:31::i;:::-;14329:10;:52::i;:::-;14244:137;;;;;;;;14410:28;14430:7;14410;:15;14418:6;14410:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14392:7;:15;14400:6;14392:15;;;;;;;;;;;;;;;:46;;;;14470:39;14493:15;14470:7;:18;14478:9;14470:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14449:7;:18;14457:9;14449:18;;;;;;;;;;;;;;;:60;;;;14520:16;14530:5;14520:9;:16::i;:::-;14569:9;14552:44;;14561:6;14552:44;;;14580:15;14552:44;;;;;;:::i;:::-;;;;;;;;14233:371;;;;14146:458;;;:::o;16216:256::-;16266:7;16275;16295:15;16313:7;;16295:25;;16331:15;4194:21;16331:25;;16381:20;4194:21;16381:7;;:11;;:20;;;;:::i;:::-;16371:7;:30;16367:61;;;16411:7;;4194:21;16403:25;;;;;;;;16367:61;16447:7;16456;16439:25;;;;;;16216:256;;;:::o;2048:189::-;2134:7;2166:1;2162;:5;2169:12;2154:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2193:9;2209:1;2205;:5;;;;:::i;:::-;2193:17;;2228:1;2221:8;;;2048:189;;;;;:::o;1654:246::-;1712:7;1741:1;1736;:6;1732:47;;;1766:1;1759:8;;;;1732:47;1789:9;1805:1;1801;:5;;;;:::i;:::-;1789:17;;1834:1;1829;1825;:5;;;;:::i;:::-;:10;1817:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1891:1;1884:8;;;1654:246;;;;;:::o;1312:136::-;1370:7;1397:43;1401:1;1404;1397:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1390:50;;1312:136;;;;:::o;13646:492::-;13725:7;13749:11;;;;;;;;;;;13748:12;:22;;;;13764:6;;;;;;;;;;;13748:22;13745:62;;;13794:1;13787:8;;;;13745:62;13822:18;:26;13841:6;13822:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;13852:18;:29;13871:9;13852:29;;;;;;;;;;;;;;;;;;;;;;;;;13822:59;13819:99;;;13905:1;13898:8;;;;13819:99;13943:13;;;;;;;;;;;13933:23;;:6;:23;;;13930:180;;;13990:13;;13983:20;;;;13930:180;14038:13;;;;;;;;;;;14025:26;;:9;:26;;;14021:89;;;14084:14;;14077:21;;;;14021:89;14129:1;14122:8;;13646:492;;;;;:::o;1125:179::-;1183:7;1203:9;1219:1;1215;:5;;;;:::i;:::-;1203:17;;1244:1;1239;:6;;1231:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1295:1;1288:8;;;1125:179;;;;:::o;14612:212::-;14665:19;14688:10;:8;:10::i;:::-;14665:33;;14709:13;14725:22;14735:11;14725:5;:9;;:22;;;;:::i;:::-;14709:38;;14783:33;14810:5;14783:7;:22;14799:4;14783:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14758:7;:22;14774:4;14758:22;;;;;;;;;;;;;;;:58;;;;14654:170;;14612:212;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:329::-;787:6;836:2;824:9;815:7;811:23;807:32;804:119;;;842:79;;:::i;:::-;804:119;962:1;987:53;1032:7;1023:6;1012:9;1008:22;987:53;:::i;:::-;977:63;;933:117;728:329;;;;:::o;1063:351::-;1133:6;1182:2;1170:9;1161:7;1157:23;1153:32;1150:119;;;1188:79;;:::i;:::-;1150:119;1308:1;1333:64;1389:7;1380:6;1369:9;1365:22;1333:64;:::i;:::-;1323:74;;1279:128;1063:351;;;;:::o;1420:474::-;1488:6;1496;1545:2;1533:9;1524:7;1520:23;1516:32;1513:119;;;1551:79;;:::i;:::-;1513:119;1671:1;1696:53;1741:7;1732:6;1721:9;1717:22;1696:53;:::i;:::-;1686:63;;1642:117;1798:2;1824:53;1869:7;1860:6;1849:9;1845:22;1824:53;:::i;:::-;1814:63;;1769:118;1420:474;;;;;:::o;1900:619::-;1977:6;1985;1993;2042:2;2030:9;2021:7;2017:23;2013:32;2010:119;;;2048:79;;:::i;:::-;2010:119;2168:1;2193:53;2238:7;2229:6;2218:9;2214:22;2193:53;:::i;:::-;2183:63;;2139:117;2295:2;2321:53;2366:7;2357:6;2346:9;2342:22;2321:53;:::i;:::-;2311:63;;2266:118;2423:2;2449:53;2494:7;2485:6;2474:9;2470:22;2449:53;:::i;:::-;2439:63;;2394:118;1900:619;;;;;:::o;2525:468::-;2590:6;2598;2647:2;2635:9;2626:7;2622:23;2618:32;2615:119;;;2653:79;;:::i;:::-;2615:119;2773:1;2798:53;2843:7;2834:6;2823:9;2819:22;2798:53;:::i;:::-;2788:63;;2744:117;2900:2;2926:50;2968:7;2959:6;2948:9;2944:22;2926:50;:::i;:::-;2916:60;;2871:115;2525:468;;;;;:::o;2999:474::-;3067:6;3075;3124:2;3112:9;3103:7;3099:23;3095:32;3092:119;;;3130:79;;:::i;:::-;3092:119;3250:1;3275:53;3320:7;3311:6;3300:9;3296:22;3275:53;:::i;:::-;3265:63;;3221:117;3377:2;3403:53;3448:7;3439:6;3428:9;3424:22;3403:53;:::i;:::-;3393:63;;3348:118;2999:474;;;;;:::o;3479:323::-;3535:6;3584:2;3572:9;3563:7;3559:23;3555:32;3552:119;;;3590:79;;:::i;:::-;3552:119;3710:1;3735:50;3777:7;3768:6;3757:9;3753:22;3735:50;:::i;:::-;3725:60;;3681:114;3479:323;;;;:::o;3808:345::-;3875:6;3924:2;3912:9;3903:7;3899:23;3895:32;3892:119;;;3930:79;;:::i;:::-;3892:119;4050:1;4075:61;4128:7;4119:6;4108:9;4104:22;4075:61;:::i;:::-;4065:71;;4021:125;3808:345;;;;:::o;4159:329::-;4218:6;4267:2;4255:9;4246:7;4242:23;4238:32;4235:119;;;4273:79;;:::i;:::-;4235:119;4393:1;4418:53;4463:7;4454:6;4443:9;4439:22;4418:53;:::i;:::-;4408:63;;4364:117;4159:329;;;;:::o;4494:179::-;4563:10;4584:46;4626:3;4618:6;4584:46;:::i;:::-;4662:4;4657:3;4653:14;4639:28;;4494:179;;;;:::o;4679:108::-;4756:24;4774:5;4756:24;:::i;:::-;4751:3;4744:37;4679:108;;:::o;4793:118::-;4880:24;4898:5;4880:24;:::i;:::-;4875:3;4868:37;4793:118;;:::o;4947:732::-;5066:3;5095:54;5143:5;5095:54;:::i;:::-;5165:86;5244:6;5239:3;5165:86;:::i;:::-;5158:93;;5275:56;5325:5;5275:56;:::i;:::-;5354:7;5385:1;5370:284;5395:6;5392:1;5389:13;5370:284;;;5471:6;5465:13;5498:63;5557:3;5542:13;5498:63;:::i;:::-;5491:70;;5584:60;5637:6;5584:60;:::i;:::-;5574:70;;5430:224;5417:1;5414;5410:9;5405:14;;5370:284;;;5374:14;5670:3;5663:10;;5071:608;;;4947:732;;;;:::o;5685:109::-;5766:21;5781:5;5766:21;:::i;:::-;5761:3;5754:34;5685:109;;:::o;5800:147::-;5895:45;5934:5;5895:45;:::i;:::-;5890:3;5883:58;5800:147;;:::o;5953:364::-;6041:3;6069:39;6102:5;6069:39;:::i;:::-;6124:71;6188:6;6183:3;6124:71;:::i;:::-;6117:78;;6204:52;6249:6;6244:3;6237:4;6230:5;6226:16;6204:52;:::i;:::-;6281:29;6303:6;6281:29;:::i;:::-;6276:3;6272:39;6265:46;;6045:272;5953:364;;;;:::o;6323:366::-;6465:3;6486:67;6550:2;6545:3;6486:67;:::i;:::-;6479:74;;6562:93;6651:3;6562:93;:::i;:::-;6680:2;6675:3;6671:12;6664:19;;6323:366;;;:::o;6695:::-;6837:3;6858:67;6922:2;6917:3;6858:67;:::i;:::-;6851:74;;6934:93;7023:3;6934:93;:::i;:::-;7052:2;7047:3;7043:12;7036:19;;6695:366;;;:::o;7067:::-;7209:3;7230:67;7294:2;7289:3;7230:67;:::i;:::-;7223:74;;7306:93;7395:3;7306:93;:::i;:::-;7424:2;7419:3;7415:12;7408:19;;7067:366;;;:::o;7439:::-;7581:3;7602:67;7666:2;7661:3;7602:67;:::i;:::-;7595:74;;7678:93;7767:3;7678:93;:::i;:::-;7796:2;7791:3;7787:12;7780:19;;7439:366;;;:::o;7811:::-;7953:3;7974:67;8038:2;8033:3;7974:67;:::i;:::-;7967:74;;8050:93;8139:3;8050:93;:::i;:::-;8168:2;8163:3;8159:12;8152:19;;7811:366;;;:::o;8183:::-;8325:3;8346:67;8410:2;8405:3;8346:67;:::i;:::-;8339:74;;8422:93;8511:3;8422:93;:::i;:::-;8540:2;8535:3;8531:12;8524:19;;8183:366;;;:::o;8555:::-;8697:3;8718:67;8782:2;8777:3;8718:67;:::i;:::-;8711:74;;8794:93;8883:3;8794:93;:::i;:::-;8912:2;8907:3;8903:12;8896:19;;8555:366;;;:::o;8927:::-;9069:3;9090:67;9154:2;9149:3;9090:67;:::i;:::-;9083:74;;9166:93;9255:3;9166:93;:::i;:::-;9284:2;9279:3;9275:12;9268:19;;8927:366;;;:::o;9299:::-;9441:3;9462:67;9526:2;9521:3;9462:67;:::i;:::-;9455:74;;9538:93;9627:3;9538:93;:::i;:::-;9656:2;9651:3;9647:12;9640:19;;9299:366;;;:::o;9671:::-;9813:3;9834:67;9898:2;9893:3;9834:67;:::i;:::-;9827:74;;9910:93;9999:3;9910:93;:::i;:::-;10028:2;10023:3;10019:12;10012:19;;9671:366;;;:::o;10043:::-;10185:3;10206:67;10270:2;10265:3;10206:67;:::i;:::-;10199:74;;10282:93;10371:3;10282:93;:::i;:::-;10400:2;10395:3;10391:12;10384:19;;10043:366;;;:::o;10415:::-;10557:3;10578:67;10642:2;10637:3;10578:67;:::i;:::-;10571:74;;10654:93;10743:3;10654:93;:::i;:::-;10772:2;10767:3;10763:12;10756:19;;10415:366;;;:::o;10787:::-;10929:3;10950:67;11014:2;11009:3;10950:67;:::i;:::-;10943:74;;11026:93;11115:3;11026:93;:::i;:::-;11144:2;11139:3;11135:12;11128:19;;10787:366;;;:::o;11159:::-;11301:3;11322:67;11386:2;11381:3;11322:67;:::i;:::-;11315:74;;11398:93;11487:3;11398:93;:::i;:::-;11516:2;11511:3;11507:12;11500:19;;11159:366;;;:::o;11531:118::-;11618:24;11636:5;11618:24;:::i;:::-;11613:3;11606:37;11531:118;;:::o;11655:112::-;11738:22;11754:5;11738:22;:::i;:::-;11733:3;11726:35;11655:112;;:::o;11773:222::-;11866:4;11904:2;11893:9;11889:18;11881:26;;11917:71;11985:1;11974:9;11970:17;11961:6;11917:71;:::i;:::-;11773:222;;;;:::o;12001:332::-;12122:4;12160:2;12149:9;12145:18;12137:26;;12173:71;12241:1;12230:9;12226:17;12217:6;12173:71;:::i;:::-;12254:72;12322:2;12311:9;12307:18;12298:6;12254:72;:::i;:::-;12001:332;;;;;:::o;12339:210::-;12426:4;12464:2;12453:9;12449:18;12441:26;;12477:65;12539:1;12528:9;12524:17;12515:6;12477:65;:::i;:::-;12339:210;;;;:::o;12555:313::-;12668:4;12706:2;12695:9;12691:18;12683:26;;12755:9;12749:4;12745:20;12741:1;12730:9;12726:17;12719:47;12783:78;12856:4;12847:6;12783:78;:::i;:::-;12775:86;;12555:313;;;;:::o;12874:419::-;13040:4;13078:2;13067:9;13063:18;13055:26;;13127:9;13121:4;13117:20;13113:1;13102:9;13098:17;13091:47;13155:131;13281:4;13155:131;:::i;:::-;13147:139;;12874:419;;;:::o;13299:::-;13465:4;13503:2;13492:9;13488:18;13480:26;;13552:9;13546:4;13542:20;13538:1;13527:9;13523:17;13516:47;13580:131;13706:4;13580:131;:::i;:::-;13572:139;;13299:419;;;:::o;13724:::-;13890:4;13928:2;13917:9;13913:18;13905:26;;13977:9;13971:4;13967:20;13963:1;13952:9;13948:17;13941:47;14005:131;14131:4;14005:131;:::i;:::-;13997:139;;13724:419;;;:::o;14149:::-;14315:4;14353:2;14342:9;14338:18;14330:26;;14402:9;14396:4;14392:20;14388:1;14377:9;14373:17;14366:47;14430:131;14556:4;14430:131;:::i;:::-;14422:139;;14149:419;;;:::o;14574:::-;14740:4;14778:2;14767:9;14763:18;14755:26;;14827:9;14821:4;14817:20;14813:1;14802:9;14798:17;14791:47;14855:131;14981:4;14855:131;:::i;:::-;14847:139;;14574:419;;;:::o;14999:::-;15165:4;15203:2;15192:9;15188:18;15180:26;;15252:9;15246:4;15242:20;15238:1;15227:9;15223:17;15216:47;15280:131;15406:4;15280:131;:::i;:::-;15272:139;;14999:419;;;:::o;15424:::-;15590:4;15628:2;15617:9;15613:18;15605:26;;15677:9;15671:4;15667:20;15663:1;15652:9;15648:17;15641:47;15705:131;15831:4;15705:131;:::i;:::-;15697:139;;15424:419;;;:::o;15849:::-;16015:4;16053:2;16042:9;16038:18;16030:26;;16102:9;16096:4;16092:20;16088:1;16077:9;16073:17;16066:47;16130:131;16256:4;16130:131;:::i;:::-;16122:139;;15849:419;;;:::o;16274:::-;16440:4;16478:2;16467:9;16463:18;16455:26;;16527:9;16521:4;16517:20;16513:1;16502:9;16498:17;16491:47;16555:131;16681:4;16555:131;:::i;:::-;16547:139;;16274:419;;;:::o;16699:::-;16865:4;16903:2;16892:9;16888:18;16880:26;;16952:9;16946:4;16942:20;16938:1;16927:9;16923:17;16916:47;16980:131;17106:4;16980:131;:::i;:::-;16972:139;;16699:419;;;:::o;17124:::-;17290:4;17328:2;17317:9;17313:18;17305:26;;17377:9;17371:4;17367:20;17363:1;17352:9;17348:17;17341:47;17405:131;17531:4;17405:131;:::i;:::-;17397:139;;17124:419;;;:::o;17549:::-;17715:4;17753:2;17742:9;17738:18;17730:26;;17802:9;17796:4;17792:20;17788:1;17777:9;17773:17;17766:47;17830:131;17956:4;17830:131;:::i;:::-;17822:139;;17549:419;;;:::o;17974:::-;18140:4;18178:2;18167:9;18163:18;18155:26;;18227:9;18221:4;18217:20;18213:1;18202:9;18198:17;18191:47;18255:131;18381:4;18255:131;:::i;:::-;18247:139;;17974:419;;;:::o;18399:::-;18565:4;18603:2;18592:9;18588:18;18580:26;;18652:9;18646:4;18642:20;18638:1;18627:9;18623:17;18616:47;18680:131;18806:4;18680:131;:::i;:::-;18672:139;;18399:419;;;:::o;18824:222::-;18917:4;18955:2;18944:9;18940:18;18932:26;;18968:71;19036:1;19025:9;19021:17;19012:6;18968:71;:::i;:::-;18824:222;;;;:::o;19052:831::-;19315:4;19353:3;19342:9;19338:19;19330:27;;19367:71;19435:1;19424:9;19420:17;19411:6;19367:71;:::i;:::-;19448:80;19524:2;19513:9;19509:18;19500:6;19448:80;:::i;:::-;19575:9;19569:4;19565:20;19560:2;19549:9;19545:18;19538:48;19603:108;19706:4;19697:6;19603:108;:::i;:::-;19595:116;;19721:72;19789:2;19778:9;19774:18;19765:6;19721:72;:::i;:::-;19803:73;19871:3;19860:9;19856:19;19847:6;19803:73;:::i;:::-;19052:831;;;;;;;;:::o;19889:214::-;19978:4;20016:2;20005:9;20001:18;19993:26;;20029:67;20093:1;20082:9;20078:17;20069:6;20029:67;:::i;:::-;19889:214;;;;:::o;20190:132::-;20257:4;20280:3;20272:11;;20310:4;20305:3;20301:14;20293:22;;20190:132;;;:::o;20328:114::-;20395:6;20429:5;20423:12;20413:22;;20328:114;;;:::o;20448:99::-;20500:6;20534:5;20528:12;20518:22;;20448:99;;;:::o;20553:113::-;20623:4;20655;20650:3;20646:14;20638:22;;20553:113;;;:::o;20672:184::-;20771:11;20805:6;20800:3;20793:19;20845:4;20840:3;20836:14;20821:29;;20672:184;;;;:::o;20862:169::-;20946:11;20980:6;20975:3;20968:19;21020:4;21015:3;21011:14;20996:29;;20862:169;;;;:::o;21037:305::-;21077:3;21096:20;21114:1;21096:20;:::i;:::-;21091:25;;21130:20;21148:1;21130:20;:::i;:::-;21125:25;;21284:1;21216:66;21212:74;21209:1;21206:81;21203:107;;;21290:18;;:::i;:::-;21203:107;21334:1;21331;21327:9;21320:16;;21037:305;;;;:::o;21348:185::-;21388:1;21405:20;21423:1;21405:20;:::i;:::-;21400:25;;21439:20;21457:1;21439:20;:::i;:::-;21434:25;;21478:1;21468:35;;21483:18;;:::i;:::-;21468:35;21525:1;21522;21518:9;21513:14;;21348:185;;;;:::o;21539:348::-;21579:7;21602:20;21620:1;21602:20;:::i;:::-;21597:25;;21636:20;21654:1;21636:20;:::i;:::-;21631:25;;21824:1;21756:66;21752:74;21749:1;21746:81;21741:1;21734:9;21727:17;21723:105;21720:131;;;21831:18;;:::i;:::-;21720:131;21879:1;21876;21872:9;21861:20;;21539:348;;;;:::o;21893:191::-;21933:4;21953:20;21971:1;21953:20;:::i;:::-;21948:25;;21987:20;22005:1;21987:20;:::i;:::-;21982:25;;22026:1;22023;22020:8;22017:34;;;22031:18;;:::i;:::-;22017:34;22076:1;22073;22069:9;22061:17;;21893:191;;;;:::o;22090:96::-;22127:7;22156:24;22174:5;22156:24;:::i;:::-;22145:35;;22090:96;;;:::o;22192:90::-;22226:7;22269:5;22262:13;22255:21;22244:32;;22192:90;;;:::o;22288:126::-;22325:7;22365:42;22358:5;22354:54;22343:65;;22288:126;;;:::o;22420:77::-;22457:7;22486:5;22475:16;;22420:77;;;:::o;22503:86::-;22538:7;22578:4;22571:5;22567:16;22556:27;;22503:86;;;:::o;22595:121::-;22653:9;22686:24;22704:5;22686:24;:::i;:::-;22673:37;;22595:121;;;:::o;22722:307::-;22790:1;22800:113;22814:6;22811:1;22808:13;22800:113;;;22899:1;22894:3;22890:11;22884:18;22880:1;22875:3;22871:11;22864:39;22836:2;22833:1;22829:10;22824:15;;22800:113;;;22931:6;22928:1;22925:13;22922:101;;;23011:1;23002:6;22997:3;22993:16;22986:27;22922:101;22771:258;22722:307;;;:::o;23035:180::-;23083:77;23080:1;23073:88;23180:4;23177:1;23170:15;23204:4;23201:1;23194:15;23221:180;23269:77;23266:1;23259:88;23366:4;23363:1;23356:15;23390:4;23387:1;23380:15;23407:180;23455:77;23452:1;23445:88;23552:4;23549:1;23542:15;23576:4;23573:1;23566:15;23593:180;23641:77;23638:1;23631:88;23738:4;23735:1;23728:15;23762:4;23759:1;23752:15;23902:117;24011:1;24008;24001:12;24025:102;24066:6;24117:2;24113:7;24108:2;24101:5;24097:14;24093:28;24083:38;;24025:102;;;:::o;24133:222::-;24273:34;24269:1;24261:6;24257:14;24250:58;24342:5;24337:2;24329:6;24325:15;24318:30;24133:222;:::o;24361:178::-;24501:30;24497:1;24489:6;24485:14;24478:54;24361:178;:::o;24545:229::-;24685:34;24681:1;24673:6;24669:14;24662:58;24754:12;24749:2;24741:6;24737:15;24730:37;24545:229;:::o;24780:221::-;24920:34;24916:1;24908:6;24904:14;24897:58;24989:4;24984:2;24976:6;24972:15;24965:29;24780:221;:::o;25007:178::-;25147:30;25143:1;25135:6;25131:14;25124:54;25007:178;:::o;25191:177::-;25331:29;25327:1;25319:6;25315:14;25308:53;25191:177;:::o;25374:220::-;25514:34;25510:1;25502:6;25498:14;25491:58;25583:3;25578:2;25570:6;25566:15;25559:28;25374:220;:::o;25600:182::-;25740:34;25736:1;25728:6;25724:14;25717:58;25600:182;:::o;25788:228::-;25928:34;25924:1;25916:6;25912:14;25905:58;25997:11;25992:2;25984:6;25980:15;25973:36;25788:228;:::o;26022:224::-;26162:34;26158:1;26150:6;26146:14;26139:58;26231:7;26226:2;26218:6;26214:15;26207:32;26022:224;:::o;26252:164::-;26392:16;26388:1;26380:6;26376:14;26369:40;26252:164;:::o;26422:223::-;26562:34;26558:1;26550:6;26546:14;26539:58;26631:6;26626:2;26618:6;26614:15;26607:31;26422:223;:::o;26651:173::-;26791:25;26787:1;26779:6;26775:14;26768:49;26651:173;:::o;26830:::-;26970:25;26966:1;26958:6;26954:14;26947:49;26830:173;:::o;27009:122::-;27082:24;27100:5;27082:24;:::i;:::-;27075:5;27072:35;27062:63;;27121:1;27118;27111:12;27062:63;27009:122;:::o;27137:116::-;27207:21;27222:5;27207:21;:::i;:::-;27200:5;27197:32;27187:60;;27243:1;27240;27233:12;27187:60;27137:116;:::o;27259:122::-;27332:24;27350:5;27332:24;:::i;:::-;27325:5;27322:35;27312:63;;27371:1;27368;27361:12;27312:63;27259:122;:::o

Swarm Source

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