ETH Price: $3,470.80 (-1.30%)
Gas: 3 Gwei

Token

AntiBot (ATB)
 

Overview

Max Total Supply

10,000,000,000 ATB

Holders

217

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19,000,000 ATB

Value
$0.00
0xbedbD2b766aBcC5E10680aefcAD7a73EA62E2e22
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:
ATB

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

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

abstract contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    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) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        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);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(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);

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(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 {}
}

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

interface IUniswapV2Pair {
    function factory() external view returns (address);
}

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract ATB is ERC20 {
    using SafeMath for uint256;

    mapping(address => bool) private _isExcludedFromFee;
    
    address public marketingWallet;

    uint256 public buyFee = 3;
    uint256 public sellFee = 3;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool inSwapAndLiquify;
    bool public swapAndSendFeesEnabled = true;
    bool public tradingEnabled = false;
    uint256 public numTokensSellToSendFees;

    event swapAndSendFeesEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20("AntiBot", "ATB") {
        numTokensSellToSendFees = 10000000 * 10 ** decimals();
        marketingWallet = 0x2DfDeb16330AD181812852392BB7C9f38A1CF8cC;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;

        _mint(owner(), 10000000000 * 10 ** decimals());
    }

    function includeAndExcludeFromFee(
        address account,
        bool value
    ) public onlyOwner {
        _isExcludedFromFee[account] = value;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function setBuyAndSellFee(
        uint256 bFee,
        uint256 sFee
    ) external onlyOwner {
        buyFee = bFee;
        sellFee = sFee;
    }

    function setmarketingWallet(address _addr) external onlyOwner {
        marketingWallet = _addr;
    }

    function setNumTokensSellToSendFees(uint256 amount) external onlyOwner {
        numTokensSellToSendFees = amount * 10 ** decimals();
    }

    function setswapAndSendFeesEnabled(bool _enabled) external onlyOwner {
        swapAndSendFeesEnabled = _enabled;
        emit swapAndSendFeesEnabledUpdated(_enabled);
    }

    receive() external payable {}

    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");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && !tradingEnabled) {
            require(tradingEnabled, "Trading is not enabled yet");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >=
            numTokensSellToSendFees;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndSendFeesEnabled
        ) {
            contractTokenBalance = numTokensSellToSendFees;
            swapBack(contractTokenBalance);
        }

        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {
            if (from == uniswapV2Pair) {
                uint256 marketingTokens = amount.mul(buyFee).div(100);
                amount = amount.sub(marketingTokens);
                super._transfer(from, address(this), marketingTokens);
                super._transfer(from, to, amount);
            } else if (to == uniswapV2Pair) {
                uint256 marketingTokens = amount.mul(sellFee).div(
                    100
                );
                amount = amount.sub(marketingTokens);
                super._transfer(from, address(this), marketingTokens);
                super._transfer(from, to, amount);
            } else {
                super._transfer(from, to, amount);
            }
        }
    }

    function swapBack(uint256 contractBalance) private lockTheSwap {
        uint256 marketingTokens = contractBalance.mul(sellFee).div(
            100
        );
        uint256 totalTokensToSwap = marketingTokens;
        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }
        bool success;
        swapTokensForEth(contractBalance);
        uint256 ethBalance = address(this).balance;
        uint256 ethForMarketing = (ethBalance * marketingTokens) /
            (totalTokensToSwap);
        (success, ) = address(marketingWallet).call{
            value: ethForMarketing
        }("");
    }

    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, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
}

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":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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"bool","name":"enabled","type":"bool"}],"name":"swapAndSendFeesEnabledUpdated","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromFee","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToSendFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"bFee","type":"uint256"},{"internalType":"uint256","name":"sFee","type":"uint256"}],"name":"setBuyAndSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToSendFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setmarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setswapAndSendFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndSendFeesEnabled","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260036009556003600a556001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055503480156200005157600080fd5b506040518060400160405280600781526020017f416e7469426f74000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4154420000000000000000000000000000000000000000000000000000000000815250620000ce620005c660201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3816005908162000199919062000a3d565b508060069081620001ab919062000a3d565b505050620001be620005ce60201b60201c565b600a620001cc919062000cb4565b62989680620001dc919062000d05565b600d81905550732dfdeb16330ad181812852392bb7c9f38a1cf8cc600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c2919062000dba565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000dba565b6040518363ffffffff1660e01b81526004016200036f92919062000dfd565b6020604051808303816000875af11580156200038f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b5919062000dba565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760006200044c620005c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005bf62000583620005d760201b60201c565b62000593620005ce60201b60201c565b600a620005a1919062000cb4565b6402540be400620005b3919062000d05565b6200060060201b60201c565b5062000f16565b600033905090565b60006012905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006699062000e8b565b60405180910390fd5b6200068660008383620007a660201b60201c565b6200069d81600454620007ab60201b90919060201c565b600481905550620006f781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620007ab60201b90919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200079a919062000ebe565b60405180910390a35050565b505050565b60008183620007bb919062000edb565b905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200084557607f821691505b6020821081036200085b576200085a620007fd565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000886565b620008d1868362000886565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200091e620009186200091284620008e9565b620008f3565b620008e9565b9050919050565b6000819050919050565b6200093a83620008fd565b62000952620009498262000925565b84845462000893565b825550505050565b600090565b620009696200095a565b620009768184846200092f565b505050565b5b818110156200099e57620009926000826200095f565b6001810190506200097c565b5050565b601f821115620009ed57620009b78162000861565b620009c28462000876565b81016020851015620009d2578190505b620009ea620009e18562000876565b8301826200097b565b50505b505050565b600082821c905092915050565b600062000a1260001984600802620009f2565b1980831691505092915050565b600062000a2d8383620009ff565b9150826002028217905092915050565b62000a4882620007c3565b67ffffffffffffffff81111562000a645762000a63620007ce565b5b62000a7082546200082c565b62000a7d828285620009a2565b600060209050601f83116001811462000ab5576000841562000aa0578287015190505b62000aac858262000a1f565b86555062000b1c565b601f19841662000ac58662000861565b60005b8281101562000aef5784890151825560018201915060208501945060208101905062000ac8565b8683101562000b0f578489015162000b0b601f891682620009ff565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bb25780860481111562000b8a5762000b8962000b24565b5b600185161562000b9a5780820291505b808102905062000baa8562000b53565b945062000b6a565b94509492505050565b60008262000bcd576001905062000ca0565b8162000bdd576000905062000ca0565b816001811462000bf6576002811462000c015762000c37565b600191505062000ca0565b60ff84111562000c165762000c1562000b24565b5b8360020a91508482111562000c305762000c2f62000b24565b5b5062000ca0565b5060208310610133831016604e8410600b841016171562000c715782820a90508381111562000c6b5762000c6a62000b24565b5b62000ca0565b62000c80848484600162000b60565b9250905081840481111562000c9a5762000c9962000b24565b5b81810290505b9392505050565b600060ff82169050919050565b600062000cc182620008e9565b915062000cce8362000ca7565b925062000cfd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bbb565b905092915050565b600062000d1282620008e9565b915062000d1f83620008e9565b925082820262000d2f81620008e9565b9150828204841483151762000d495762000d4862000b24565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d828262000d55565b9050919050565b62000d948162000d75565b811462000da057600080fd5b50565b60008151905062000db48162000d89565b92915050565b60006020828403121562000dd35762000dd262000d50565b5b600062000de38482850162000da3565b91505092915050565b62000df78162000d75565b82525050565b600060408201905062000e14600083018562000dec565b62000e23602083018462000dec565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e73601f8362000e2a565b915062000e808262000e3b565b602082019050919050565b6000602082019050818103600083015262000ea68162000e64565b9050919050565b62000eb881620008e9565b82525050565b600060208201905062000ed5600083018462000ead565b92915050565b600062000ee882620008e9565b915062000ef583620008e9565b925082820190508082111562000f105762000f0f62000b24565b5b92915050565b6130078062000f266000396000f3fe6080604052600436106101c65760003560e01c80635342acb4116100f75780638da5cb5b11610095578063a9059cbb11610064578063a9059cbb14610641578063da7e2c7f1461067e578063dd62ed3e146106a7578063f2fde38b146106e4576101cd565b80638da5cb5b1461058557806395d89b41146105b0578063a346304f146105db578063a457c2d714610604576101cd565b8063715018a6116100d1578063715018a61461050357806375f0a8741461051a57806384e2b88d146105455780638a8c523c1461056e576101cd565b80635342acb41461045e57806353cae9cf1461049b57806370a08231146104c6576101cd565b806323b872dd11610164578063395093511161013e57806339509351146103a057806347062402146103dd57806349bd5a5e146104085780634ada218b14610433576101cd565b806323b872dd1461030d5780632b14ca561461034a578063313ce56714610375576101cd565b8063148d2161116101a0578063148d2161146102635780631694505e1461028e57806318160ddd146102b957806322461173146102e4576101cd565b806302a8b041146101d257806306fdde03146101fb578063095ea7b314610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061217b565b61070d565b005b34801561020757600080fd5b506102106107dd565b60405161021d9190612238565b60405180910390f35b34801561023257600080fd5b5061024d600480360381019061024891906122ee565b61086f565b60405161025a919061233d565b60405180910390f35b34801561026f57600080fd5b5061027861088d565b604051610285919061233d565b60405180910390f35b34801561029a57600080fd5b506102a36108a0565b6040516102b091906123b7565b60405180910390f35b3480156102c557600080fd5b506102ce6108c6565b6040516102db91906123e1565b60405180910390f35b3480156102f057600080fd5b5061030b600480360381019061030691906123fc565b6108d0565b005b34801561031957600080fd5b50610334600480360381019061032f9190612429565b610990565b604051610341919061233d565b60405180910390f35b34801561035657600080fd5b5061035f610a69565b60405161036c91906123e1565b60405180910390f35b34801561038157600080fd5b5061038a610a6f565b6040516103979190612498565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906122ee565b610a78565b6040516103d4919061233d565b60405180910390f35b3480156103e957600080fd5b506103f2610b2b565b6040516103ff91906123e1565b60405180910390f35b34801561041457600080fd5b5061041d610b31565b60405161042a91906124c2565b60405180910390f35b34801561043f57600080fd5b50610448610b57565b604051610455919061233d565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906123fc565b610b6a565b604051610492919061233d565b60405180910390f35b3480156104a757600080fd5b506104b0610bc0565b6040516104bd91906123e1565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e891906123fc565b610bc6565b6040516104fa91906123e1565b60405180910390f35b34801561050f57600080fd5b50610518610c0f565b005b34801561052657600080fd5b5061052f610d49565b60405161053c91906124c2565b60405180910390f35b34801561055157600080fd5b5061056c600480360381019061056791906124dd565b610d6f565b005b34801561057a57600080fd5b50610583610e13565b005b34801561059157600080fd5b5061059a610eac565b6040516105a791906124c2565b60405180910390f35b3480156105bc57600080fd5b506105c5610ed5565b6040516105d29190612238565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd919061250a565b610f67565b005b34801561061057600080fd5b5061062b600480360381019061062691906122ee565b610ff5565b604051610638919061233d565b60405180910390f35b34801561064d57600080fd5b50610668600480360381019061066391906122ee565b6110c2565b604051610675919061233d565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a0919061254a565b6110e0565b005b3480156106b357600080fd5b506106ce60048036038101906106c9919061258a565b6111b7565b6040516106db91906123e1565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906123fc565b61123e565b005b6107156113e6565b73ffffffffffffffffffffffffffffffffffffffff16610733610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078090612616565b60405180910390fd5b80600c60156101000a81548160ff0219169083151502179055507f95104a55e36dd507aac6f3a5211027febb09c940366b18700bc6e6cedf67426b816040516107d2919061233d565b60405180910390a150565b6060600580546107ec90612665565b80601f016020809104026020016040519081016040528092919081815260200182805461081890612665565b80156108655780601f1061083a57610100808354040283529160200191610865565b820191906000526020600020905b81548152906001019060200180831161084857829003601f168201915b5050505050905090565b600061088361087c6113e6565b84846113ee565b6001905092915050565b600c60159054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b6108d86113e6565b73ffffffffffffffffffffffffffffffffffffffff166108f6610eac565b73ffffffffffffffffffffffffffffffffffffffff161461094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612616565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061099d8484846115b7565b610a5e846109a96113e6565b610a5985604051806060016040528060288152602001612f8560289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0f6113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6e9092919063ffffffff16565b6113ee565b600190509392505050565b600a5481565b60006012905090565b6000610b21610a856113e6565b84610b1c8560036000610a966113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac390919063ffffffff16565b6113ee565b6001905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60169054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c176113e6565b73ffffffffffffffffffffffffffffffffffffffff16610c35610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612616565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d776113e6565b73ffffffffffffffffffffffffffffffffffffffff16610d95610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290612616565b60405180910390fd5b610df3610a6f565b600a610dff91906127f8565b81610e0a9190612843565b600d8190555050565b610e1b6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610e39610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612616565b60405180910390fd5b6001600c60166101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ee490612665565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1090612665565b8015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050905090565b610f6f6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610f8d610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90612616565b60405180910390fd5b8160098190555080600a819055505050565b60006110b86110026113e6565b846110b385604051806060016040528060258152602001612fad602591396003600061102c6113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6e9092919063ffffffff16565b6113ee565b6001905092915050565b60006110d66110cf6113e6565b84846115b7565b6001905092915050565b6110e86113e6565b73ffffffffffffffffffffffffffffffffffffffff16611106610eac565b73ffffffffffffffffffffffffffffffffffffffff161461115c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115390612616565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112466113e6565b73ffffffffffffffffffffffffffffffffffffffff16611264610eac565b73ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b190612616565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611320906128f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612989565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390612a1b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115aa91906123e1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90612aad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612b3f565b60405180910390fd5b600081116116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90612bd1565b60405180910390fd5b6116e0610eac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117285750600c60169054906101000a900460ff16155b1561177d57600c60169054906101000a900460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177390612c3d565b60405180910390fd5b5b600061178830610bc6565b90506000600d5482101590508080156117ae5750600c60149054906101000a900460ff16155b80156118085750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118205750600c60159054906101000a900460ff165b1561183457600d54915061183382611ad9565b5b600060019050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118db5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118f4576118eb868686611c1d565b60009050611a66565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036119a6576000611973606461196560095488611eb490919063ffffffff16565b611eca90919063ffffffff16565b90506119888186611ee090919063ffffffff16565b9450611995873083611c1d565b6119a0878787611c1d565b50611a65565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a58576000611a256064611a17600a5488611eb490919063ffffffff16565b611eca90919063ffffffff16565b9050611a3a8186611ee090919063ffffffff16565b9450611a47873083611c1d565b611a52878787611c1d565b50611a64565b611a63868686611c1d565b5b5b5b505050505050565b6000838311158290611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9190612238565b60405180910390fd5b5082840390509392505050565b60008183611ad19190612c5d565b905092915050565b6001600c60146101000a81548160ff0219169083151502179055506000611b1e6064611b10600a5485611eb490919063ffffffff16565b611eca90919063ffffffff16565b905060008190506000831480611b345750600081145b15611b40575050611bff565b6000611b4b84611ef6565b60004790506000838583611b5f9190612843565b611b699190612cc0565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051611bb190612d22565b60006040518083038185875af1925050503d8060008114611bee576040519150601f19603f3d011682016040523d82523d6000602084013e611bf3565b606091505b50508093505050505050505b6000600c60146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8390612aad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf290612b3f565b60405180910390fd5b611d06838383612139565b611d7281604051806060016040528060268152602001612f5f60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6e9092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ea791906123e1565b60405180910390a3505050565b60008183611ec29190612843565b905092915050565b60008183611ed89190612cc0565b905092915050565b60008183611eee9190612d37565b905092915050565b6000600267ffffffffffffffff811115611f1357611f12612d6b565b5b604051908082528060200260200182016040528015611f415781602001602082028036833780820191505090505b5090503081600081518110611f5957611f58612d9a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120249190612dde565b8160018151811061203857612037612d9a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061209f30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ee565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612103959493929190612f04565b600060405180830381600087803b15801561211d57600080fd5b505af1158015612131573d6000803e3d6000fd5b505050505050565b505050565b600080fd5b60008115159050919050565b61215881612143565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000602082840312156121915761219061213e565b5b600061219f84828501612166565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121e25780820151818401526020810190506121c7565b60008484015250505050565b6000601f19601f8301169050919050565b600061220a826121a8565b61221481856121b3565b93506122248185602086016121c4565b61222d816121ee565b840191505092915050565b6000602082019050818103600083015261225281846121ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122858261225a565b9050919050565b6122958161227a565b81146122a057600080fd5b50565b6000813590506122b28161228c565b92915050565b6000819050919050565b6122cb816122b8565b81146122d657600080fd5b50565b6000813590506122e8816122c2565b92915050565b600080604083850312156123055761230461213e565b5b6000612313858286016122a3565b9250506020612324858286016122d9565b9150509250929050565b61233781612143565b82525050565b6000602082019050612352600083018461232e565b92915050565b6000819050919050565b600061237d6123786123738461225a565b612358565b61225a565b9050919050565b600061238f82612362565b9050919050565b60006123a182612384565b9050919050565b6123b181612396565b82525050565b60006020820190506123cc60008301846123a8565b92915050565b6123db816122b8565b82525050565b60006020820190506123f660008301846123d2565b92915050565b6000602082840312156124125761241161213e565b5b6000612420848285016122a3565b91505092915050565b6000806000606084860312156124425761244161213e565b5b6000612450868287016122a3565b9350506020612461868287016122a3565b9250506040612472868287016122d9565b9150509250925092565b600060ff82169050919050565b6124928161247c565b82525050565b60006020820190506124ad6000830184612489565b92915050565b6124bc8161227a565b82525050565b60006020820190506124d760008301846124b3565b92915050565b6000602082840312156124f3576124f261213e565b5b6000612501848285016122d9565b91505092915050565b600080604083850312156125215761252061213e565b5b600061252f858286016122d9565b9250506020612540858286016122d9565b9150509250929050565b600080604083850312156125615761256061213e565b5b600061256f858286016122a3565b925050602061258085828601612166565b9150509250929050565b600080604083850312156125a1576125a061213e565b5b60006125af858286016122a3565b92505060206125c0858286016122a3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126006020836121b3565b915061260b826125ca565b602082019050919050565b6000602082019050818103600083015261262f816125f3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061267d57607f821691505b6020821081036126905761268f612636565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561271c578086048111156126f8576126f7612696565b5b60018516156127075780820291505b8081029050612715856126c5565b94506126dc565b94509492505050565b60008261273557600190506127f1565b8161274357600090506127f1565b8160018114612759576002811461276357612792565b60019150506127f1565b60ff84111561277557612774612696565b5b8360020a91508482111561278c5761278b612696565b5b506127f1565b5060208310610133831016604e8410600b84101617156127c75782820a9050838111156127c2576127c1612696565b5b6127f1565b6127d484848460016126d2565b925090508184048111156127eb576127ea612696565b5b81810290505b9392505050565b6000612803826122b8565b915061280e8361247c565b925061283b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612725565b905092915050565b600061284e826122b8565b9150612859836122b8565b9250828202612867816122b8565b9150828204841483151761287e5761287d612696565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128e16026836121b3565b91506128ec82612885565b604082019050919050565b60006020820190508181036000830152612910816128d4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129736024836121b3565b915061297e82612917565b604082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a056022836121b3565b9150612a10826129a9565b604082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a976025836121b3565b9150612aa282612a3b565b604082019050919050565b60006020820190508181036000830152612ac681612a8a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b296023836121b3565b9150612b3482612acd565b604082019050919050565b60006020820190508181036000830152612b5881612b1c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612bbb6029836121b3565b9150612bc682612b5f565b604082019050919050565b60006020820190508181036000830152612bea81612bae565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000612c27601a836121b3565b9150612c3282612bf1565b602082019050919050565b60006020820190508181036000830152612c5681612c1a565b9050919050565b6000612c68826122b8565b9150612c73836122b8565b9250828201905080821115612c8b57612c8a612696565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ccb826122b8565b9150612cd6836122b8565b925082612ce657612ce5612c91565b5b828204905092915050565b600081905092915050565b50565b6000612d0c600083612cf1565b9150612d1782612cfc565b600082019050919050565b6000612d2d82612cff565b9150819050919050565b6000612d42826122b8565b9150612d4d836122b8565b9250828203905081811115612d6557612d64612696565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612dd88161228c565b92915050565b600060208284031215612df457612df361213e565b5b6000612e0284828501612dc9565b91505092915050565b6000819050919050565b6000612e30612e2b612e2684612e0b565b612358565b6122b8565b9050919050565b612e4081612e15565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e7b8161227a565b82525050565b6000612e8d8383612e72565b60208301905092915050565b6000602082019050919050565b6000612eb182612e46565b612ebb8185612e51565b9350612ec683612e62565b8060005b83811015612ef7578151612ede8882612e81565b9750612ee983612e99565b925050600181019050612eca565b5085935050505092915050565b600060a082019050612f1960008301886123d2565b612f266020830187612e37565b8181036040830152612f388186612ea6565b9050612f4760608301856124b3565b612f5460808301846123d2565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206689f316f5b1d33d173928558851e24280603cf79afce83c5c7765d621b464d664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80635342acb4116100f75780638da5cb5b11610095578063a9059cbb11610064578063a9059cbb14610641578063da7e2c7f1461067e578063dd62ed3e146106a7578063f2fde38b146106e4576101cd565b80638da5cb5b1461058557806395d89b41146105b0578063a346304f146105db578063a457c2d714610604576101cd565b8063715018a6116100d1578063715018a61461050357806375f0a8741461051a57806384e2b88d146105455780638a8c523c1461056e576101cd565b80635342acb41461045e57806353cae9cf1461049b57806370a08231146104c6576101cd565b806323b872dd11610164578063395093511161013e57806339509351146103a057806347062402146103dd57806349bd5a5e146104085780634ada218b14610433576101cd565b806323b872dd1461030d5780632b14ca561461034a578063313ce56714610375576101cd565b8063148d2161116101a0578063148d2161146102635780631694505e1461028e57806318160ddd146102b957806322461173146102e4576101cd565b806302a8b041146101d257806306fdde03146101fb578063095ea7b314610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061217b565b61070d565b005b34801561020757600080fd5b506102106107dd565b60405161021d9190612238565b60405180910390f35b34801561023257600080fd5b5061024d600480360381019061024891906122ee565b61086f565b60405161025a919061233d565b60405180910390f35b34801561026f57600080fd5b5061027861088d565b604051610285919061233d565b60405180910390f35b34801561029a57600080fd5b506102a36108a0565b6040516102b091906123b7565b60405180910390f35b3480156102c557600080fd5b506102ce6108c6565b6040516102db91906123e1565b60405180910390f35b3480156102f057600080fd5b5061030b600480360381019061030691906123fc565b6108d0565b005b34801561031957600080fd5b50610334600480360381019061032f9190612429565b610990565b604051610341919061233d565b60405180910390f35b34801561035657600080fd5b5061035f610a69565b60405161036c91906123e1565b60405180910390f35b34801561038157600080fd5b5061038a610a6f565b6040516103979190612498565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906122ee565b610a78565b6040516103d4919061233d565b60405180910390f35b3480156103e957600080fd5b506103f2610b2b565b6040516103ff91906123e1565b60405180910390f35b34801561041457600080fd5b5061041d610b31565b60405161042a91906124c2565b60405180910390f35b34801561043f57600080fd5b50610448610b57565b604051610455919061233d565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906123fc565b610b6a565b604051610492919061233d565b60405180910390f35b3480156104a757600080fd5b506104b0610bc0565b6040516104bd91906123e1565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e891906123fc565b610bc6565b6040516104fa91906123e1565b60405180910390f35b34801561050f57600080fd5b50610518610c0f565b005b34801561052657600080fd5b5061052f610d49565b60405161053c91906124c2565b60405180910390f35b34801561055157600080fd5b5061056c600480360381019061056791906124dd565b610d6f565b005b34801561057a57600080fd5b50610583610e13565b005b34801561059157600080fd5b5061059a610eac565b6040516105a791906124c2565b60405180910390f35b3480156105bc57600080fd5b506105c5610ed5565b6040516105d29190612238565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd919061250a565b610f67565b005b34801561061057600080fd5b5061062b600480360381019061062691906122ee565b610ff5565b604051610638919061233d565b60405180910390f35b34801561064d57600080fd5b50610668600480360381019061066391906122ee565b6110c2565b604051610675919061233d565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a0919061254a565b6110e0565b005b3480156106b357600080fd5b506106ce60048036038101906106c9919061258a565b6111b7565b6040516106db91906123e1565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906123fc565b61123e565b005b6107156113e6565b73ffffffffffffffffffffffffffffffffffffffff16610733610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078090612616565b60405180910390fd5b80600c60156101000a81548160ff0219169083151502179055507f95104a55e36dd507aac6f3a5211027febb09c940366b18700bc6e6cedf67426b816040516107d2919061233d565b60405180910390a150565b6060600580546107ec90612665565b80601f016020809104026020016040519081016040528092919081815260200182805461081890612665565b80156108655780601f1061083a57610100808354040283529160200191610865565b820191906000526020600020905b81548152906001019060200180831161084857829003601f168201915b5050505050905090565b600061088361087c6113e6565b84846113ee565b6001905092915050565b600c60159054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b6108d86113e6565b73ffffffffffffffffffffffffffffffffffffffff166108f6610eac565b73ffffffffffffffffffffffffffffffffffffffff161461094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612616565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061099d8484846115b7565b610a5e846109a96113e6565b610a5985604051806060016040528060288152602001612f8560289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0f6113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6e9092919063ffffffff16565b6113ee565b600190509392505050565b600a5481565b60006012905090565b6000610b21610a856113e6565b84610b1c8560036000610a966113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac390919063ffffffff16565b6113ee565b6001905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60169054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c176113e6565b73ffffffffffffffffffffffffffffffffffffffff16610c35610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612616565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d776113e6565b73ffffffffffffffffffffffffffffffffffffffff16610d95610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290612616565b60405180910390fd5b610df3610a6f565b600a610dff91906127f8565b81610e0a9190612843565b600d8190555050565b610e1b6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610e39610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612616565b60405180910390fd5b6001600c60166101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ee490612665565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1090612665565b8015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050905090565b610f6f6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610f8d610eac565b73ffffffffffffffffffffffffffffffffffffffff1614610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90612616565b60405180910390fd5b8160098190555080600a819055505050565b60006110b86110026113e6565b846110b385604051806060016040528060258152602001612fad602591396003600061102c6113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6e9092919063ffffffff16565b6113ee565b6001905092915050565b60006110d66110cf6113e6565b84846115b7565b6001905092915050565b6110e86113e6565b73ffffffffffffffffffffffffffffffffffffffff16611106610eac565b73ffffffffffffffffffffffffffffffffffffffff161461115c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115390612616565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112466113e6565b73ffffffffffffffffffffffffffffffffffffffff16611264610eac565b73ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b190612616565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611320906128f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612989565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390612a1b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115aa91906123e1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90612aad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612b3f565b60405180910390fd5b600081116116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90612bd1565b60405180910390fd5b6116e0610eac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117285750600c60169054906101000a900460ff16155b1561177d57600c60169054906101000a900460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177390612c3d565b60405180910390fd5b5b600061178830610bc6565b90506000600d5482101590508080156117ae5750600c60149054906101000a900460ff16155b80156118085750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118205750600c60159054906101000a900460ff165b1561183457600d54915061183382611ad9565b5b600060019050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118db5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118f4576118eb868686611c1d565b60009050611a66565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036119a6576000611973606461196560095488611eb490919063ffffffff16565b611eca90919063ffffffff16565b90506119888186611ee090919063ffffffff16565b9450611995873083611c1d565b6119a0878787611c1d565b50611a65565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611a58576000611a256064611a17600a5488611eb490919063ffffffff16565b611eca90919063ffffffff16565b9050611a3a8186611ee090919063ffffffff16565b9450611a47873083611c1d565b611a52878787611c1d565b50611a64565b611a63868686611c1d565b5b5b5b505050505050565b6000838311158290611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9190612238565b60405180910390fd5b5082840390509392505050565b60008183611ad19190612c5d565b905092915050565b6001600c60146101000a81548160ff0219169083151502179055506000611b1e6064611b10600a5485611eb490919063ffffffff16565b611eca90919063ffffffff16565b905060008190506000831480611b345750600081145b15611b40575050611bff565b6000611b4b84611ef6565b60004790506000838583611b5f9190612843565b611b699190612cc0565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051611bb190612d22565b60006040518083038185875af1925050503d8060008114611bee576040519150601f19603f3d011682016040523d82523d6000602084013e611bf3565b606091505b50508093505050505050505b6000600c60146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8390612aad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf290612b3f565b60405180910390fd5b611d06838383612139565b611d7281604051806060016040528060268152602001612f5f60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6e9092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e0781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ea791906123e1565b60405180910390a3505050565b60008183611ec29190612843565b905092915050565b60008183611ed89190612cc0565b905092915050565b60008183611eee9190612d37565b905092915050565b6000600267ffffffffffffffff811115611f1357611f12612d6b565b5b604051908082528060200260200182016040528015611f415781602001602082028036833780820191505090505b5090503081600081518110611f5957611f58612d9a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120249190612dde565b8160018151811061203857612037612d9a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061209f30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ee565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612103959493929190612f04565b600060405180830381600087803b15801561211d57600080fd5b505af1158015612131573d6000803e3d6000fd5b505050505050565b505050565b600080fd5b60008115159050919050565b61215881612143565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000602082840312156121915761219061213e565b5b600061219f84828501612166565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121e25780820151818401526020810190506121c7565b60008484015250505050565b6000601f19601f8301169050919050565b600061220a826121a8565b61221481856121b3565b93506122248185602086016121c4565b61222d816121ee565b840191505092915050565b6000602082019050818103600083015261225281846121ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122858261225a565b9050919050565b6122958161227a565b81146122a057600080fd5b50565b6000813590506122b28161228c565b92915050565b6000819050919050565b6122cb816122b8565b81146122d657600080fd5b50565b6000813590506122e8816122c2565b92915050565b600080604083850312156123055761230461213e565b5b6000612313858286016122a3565b9250506020612324858286016122d9565b9150509250929050565b61233781612143565b82525050565b6000602082019050612352600083018461232e565b92915050565b6000819050919050565b600061237d6123786123738461225a565b612358565b61225a565b9050919050565b600061238f82612362565b9050919050565b60006123a182612384565b9050919050565b6123b181612396565b82525050565b60006020820190506123cc60008301846123a8565b92915050565b6123db816122b8565b82525050565b60006020820190506123f660008301846123d2565b92915050565b6000602082840312156124125761241161213e565b5b6000612420848285016122a3565b91505092915050565b6000806000606084860312156124425761244161213e565b5b6000612450868287016122a3565b9350506020612461868287016122a3565b9250506040612472868287016122d9565b9150509250925092565b600060ff82169050919050565b6124928161247c565b82525050565b60006020820190506124ad6000830184612489565b92915050565b6124bc8161227a565b82525050565b60006020820190506124d760008301846124b3565b92915050565b6000602082840312156124f3576124f261213e565b5b6000612501848285016122d9565b91505092915050565b600080604083850312156125215761252061213e565b5b600061252f858286016122d9565b9250506020612540858286016122d9565b9150509250929050565b600080604083850312156125615761256061213e565b5b600061256f858286016122a3565b925050602061258085828601612166565b9150509250929050565b600080604083850312156125a1576125a061213e565b5b60006125af858286016122a3565b92505060206125c0858286016122a3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126006020836121b3565b915061260b826125ca565b602082019050919050565b6000602082019050818103600083015261262f816125f3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061267d57607f821691505b6020821081036126905761268f612636565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561271c578086048111156126f8576126f7612696565b5b60018516156127075780820291505b8081029050612715856126c5565b94506126dc565b94509492505050565b60008261273557600190506127f1565b8161274357600090506127f1565b8160018114612759576002811461276357612792565b60019150506127f1565b60ff84111561277557612774612696565b5b8360020a91508482111561278c5761278b612696565b5b506127f1565b5060208310610133831016604e8410600b84101617156127c75782820a9050838111156127c2576127c1612696565b5b6127f1565b6127d484848460016126d2565b925090508184048111156127eb576127ea612696565b5b81810290505b9392505050565b6000612803826122b8565b915061280e8361247c565b925061283b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612725565b905092915050565b600061284e826122b8565b9150612859836122b8565b9250828202612867816122b8565b9150828204841483151761287e5761287d612696565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128e16026836121b3565b91506128ec82612885565b604082019050919050565b60006020820190508181036000830152612910816128d4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129736024836121b3565b915061297e82612917565b604082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a056022836121b3565b9150612a10826129a9565b604082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a976025836121b3565b9150612aa282612a3b565b604082019050919050565b60006020820190508181036000830152612ac681612a8a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b296023836121b3565b9150612b3482612acd565b604082019050919050565b60006020820190508181036000830152612b5881612b1c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612bbb6029836121b3565b9150612bc682612b5f565b604082019050919050565b60006020820190508181036000830152612bea81612bae565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b6000612c27601a836121b3565b9150612c3282612bf1565b602082019050919050565b60006020820190508181036000830152612c5681612c1a565b9050919050565b6000612c68826122b8565b9150612c73836122b8565b9250828201905080821115612c8b57612c8a612696565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ccb826122b8565b9150612cd6836122b8565b925082612ce657612ce5612c91565b5b828204905092915050565b600081905092915050565b50565b6000612d0c600083612cf1565b9150612d1782612cfc565b600082019050919050565b6000612d2d82612cff565b9150819050919050565b6000612d42826122b8565b9150612d4d836122b8565b9250828203905081811115612d6557612d64612696565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612dd88161228c565b92915050565b600060208284031215612df457612df361213e565b5b6000612e0284828501612dc9565b91505092915050565b6000819050919050565b6000612e30612e2b612e2684612e0b565b612358565b6122b8565b9050919050565b612e4081612e15565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e7b8161227a565b82525050565b6000612e8d8383612e72565b60208301905092915050565b6000602082019050919050565b6000612eb182612e46565b612ebb8185612e51565b9350612ec683612e62565b8060005b83811015612ef7578151612ede8882612e81565b9750612ee983612e99565b925050600181019050612eca565b5085935050505092915050565b600060a082019050612f1960008301886123d2565b612f266020830187612e37565b8181036040830152612f388186612ea6565b9050612f4760608301856124b3565b612f5460808301846123d2565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206689f316f5b1d33d173928558851e24280603cf79afce83c5c7765d621b464d664736f6c63430008130033

Deployed Bytecode Sourcemap

8641:5580:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10973:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3647:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4627:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8986:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8875;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3968:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10712:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4829:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8840:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3867:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5291:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8808:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8923:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9034:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10325:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9075:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4084:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2528:148;;;;;;;;;;;;;:::i;:::-;;8769:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10824:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10457:84;;;;;;;;;;;;;:::i;:::-;;2305:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3755:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10549:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5592:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4235:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10158:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4443:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2684:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10973:176;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11078:8:::1;11053:22;;:33;;;;;;;;;;;;;;;;;;11102:39;11132:8;11102:39;;;;;;:::i;:::-;;;;;;;;10973:176:::0;:::o;3647:100::-;3701:13;3734:5;3727:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3647:100;:::o;4627:194::-;4735:4;4752:39;4761:12;:10;:12::i;:::-;4775:7;4784:6;4752:8;:39::i;:::-;4809:4;4802:11;;4627:194;;;;:::o;8986:41::-;;;;;;;;;;;;;:::o;8875:::-;;;;;;;;;;;;;:::o;3968:108::-;4029:7;4056:12;;4049:19;;3968:108;:::o;10712:104::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10803:5:::1;10785:15;;:23;;;;;;;;;;;;;;;;;;10712:104:::0;:::o;4829:454::-;4969:4;4986:36;4996:6;5004:9;5015:6;4986:9;:36::i;:::-;5033:220;5056:6;5077:12;:10;:12::i;:::-;5104:138;5160:6;5104:138;;;;;;;;;;;;;;;;;:11;:19;5116:6;5104:19;;;;;;;;;;;;;;;:33;5124:12;:10;:12::i;:::-;5104:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;5033:8;:220::i;:::-;5271:4;5264:11;;4829:454;;;;;:::o;8840:26::-;;;;:::o;3867:93::-;3925:5;3950:2;3943:9;;3867:93;:::o;5291:293::-;5404:4;5421:133;5444:12;:10;:12::i;:::-;5471:7;5493:50;5532:10;5493:11;:25;5505:12;:10;:12::i;:::-;5493:25;;;;;;;;;;;;;;;:34;5519:7;5493:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5421:8;:133::i;:::-;5572:4;5565:11;;5291:293;;;;:::o;8808:25::-;;;;:::o;8923:28::-;;;;;;;;;;;;;:::o;9034:34::-;;;;;;;;;;;;;:::o;10325:124::-;10390:4;10414:18;:27;10433:7;10414:27;;;;;;;;;;;;;;;;;;;;;;;;;10407:34;;10325:124;;;:::o;9075:38::-;;;;:::o;4084:143::-;4174:7;4201:9;:18;4211:7;4201:18;;;;;;;;;;;;;;;;4194:25;;4084:143;;;:::o;2528:148::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2635:1:::1;2598:40;;2619:6;::::0;::::1;;;;;;;;2598:40;;;;;;;;;;;;2666:1;2649:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2528:148::o:0;8769:30::-;;;;;;;;;;;;;:::o;10824:141::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10947:10:::1;:8;:10::i;:::-;10941:2;:16;;;;:::i;:::-;10932:6;:25;;;;:::i;:::-;10906:23;:51;;;;10824:141:::0;:::o;10457:84::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10529:4:::1;10512:14;;:21;;;;;;;;;;;;;;;;;;10457:84::o:0;2305:87::-;2351:7;2378:6;;;;;;;;;;;2371:13;;2305:87;:::o;3755:104::-;3811:13;3844:7;3837:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3755:104;:::o;10549:155::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10667:4:::1;10658:6;:13;;;;10692:4;10682:7;:14;;;;10549:155:::0;;:::o;5592:393::-;5710:4;5727:228;5750:12;:10;:12::i;:::-;5777:7;5799:145;5856:15;5799:145;;;;;;;;;;;;;;;;;:11;:25;5811:12;:10;:12::i;:::-;5799:25;;;;;;;;;;;;;;;:34;5825:7;5799:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;5727:8;:228::i;:::-;5973:4;5966:11;;5592:393;;;;:::o;4235:200::-;4346:4;4363:42;4373:12;:10;:12::i;:::-;4387:9;4398:6;4363:9;:42::i;:::-;4423:4;4416:11;;4235:200;;;;:::o;10158:159::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10304:5:::1;10274:18;:27;10293:7;10274:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10158:159:::0;;:::o;4443:176::-;4557:7;4584:11;:18;4596:5;4584:18;;;;;;;;;;;;;;;:27;4603:7;4584:27;;;;;;;;;;;;;;;;4577:34;;4443:176;;;;:::o;2684:281::-;2451:12;:10;:12::i;:::-;2440:23;;:7;:5;:7::i;:::-;:23;;;2432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1:::1;2787:22;;:8;:22;;::::0;2765:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2920:8;2891:38;;2912:6;::::0;::::1;;;;;;;;2891:38;;;;;;;;;;;;2949:8;2940:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2684:281:::0;:::o;1852:98::-;1905:7;1932:10;1925:17;;1852:98;:::o;7460:380::-;7613:1;7596:19;;:5;:19;;;7588:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7694:1;7675:21;;:7;:21;;;7667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7778:6;7748:11;:18;7760:5;7748:18;;;;;;;;;;;;;;;:27;7767:7;7748:27;;;;;;;;;;;;;;;:36;;;;7816:7;7800:32;;7809:5;7800:32;;;7825:6;7800:32;;;;;;:::i;:::-;;;;;;;;7460:380;;;:::o;11194:1863::-;11342:1;11326:18;;:4;:18;;;11318:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11419:1;11405:16;;:2;:16;;;11397:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11489:1;11480:6;:10;11472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11561:7;:5;:7::i;:::-;11553:15;;:4;:15;;;;:34;;;;;11573:14;;;;;;;;;;;11572:15;11553:34;11549:120;;;11612:14;;;;;;;;;;;11604:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11549:120;11681:28;11712:24;11730:4;11712:9;:24::i;:::-;11681:55;;11747:24;11811:23;;11774:20;:60;;11747:87;;11863:19;:53;;;;;11900:16;;;;;;;;;;;11899:17;11863:53;:91;;;;;11941:13;;;;;;;;;;;11933:21;;:4;:21;;;;11863:91;:130;;;;;11971:22;;;;;;;;;;;11863:130;11845:278;;;12043:23;;12020:46;;12081:30;12090:20;12081:8;:30::i;:::-;11845:278;12135:12;12150:4;12135:19;;12169:18;:24;12188:4;12169:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12197:18;:22;12216:2;12197:22;;;;;;;;;;;;;;;;;;;;;;;;;12169:50;12165:885;;;12236:33;12252:4;12258:2;12262:6;12236:15;:33::i;:::-;12294:5;12284:15;;12165:885;;;12344:13;;;;;;;;;;;12336:21;;:4;:21;;;12332:707;;12378:23;12404:27;12427:3;12404:18;12415:6;;12404;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;12378:53;;12459:27;12470:15;12459:6;:10;;:27;;;;:::i;:::-;12450:36;;12505:53;12521:4;12535;12542:15;12505;:53::i;:::-;12577:33;12593:4;12599:2;12603:6;12577:15;:33::i;:::-;12359:267;12332:707;;;12642:13;;;;;;;;;;;12636:19;;:2;:19;;;12632:407;;12676:23;12702:68;12748:3;12702:19;12713:7;;12702:6;:10;;:19;;;;:::i;:::-;:23;;:68;;;;:::i;:::-;12676:94;;12798:27;12809:15;12798:6;:10;;:27;;;;:::i;:::-;12789:36;;12844:53;12860:4;12874;12881:15;12844;:53::i;:::-;12916:33;12932:4;12938:2;12942:6;12916:15;:33::i;:::-;12657:308;12632:407;;;12990:33;13006:4;13012:2;13016:6;12990:15;:33::i;:::-;12632:407;12332:707;12165:885;11307:1750;;;11194:1863;;;:::o;1325:240::-;1445:7;1503:1;1498;:6;;1506:12;1490:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1545:1;1541;:5;1534:12;;1325:240;;;;;:::o;901:98::-;959:7;990:1;986;:5;;;;:::i;:::-;979:12;;901:98;;;;:::o;13065:646::-;9366:4;9347:16;;:23;;;;;;;;;;;;;;;;;;13139::::1;13165:61;13212:3;13165:28;13185:7;;13165:15;:19;;:28;;;;:::i;:::-;:32;;:61;;;;:::i;:::-;13139:87;;13237:25;13265:15;13237:43;;13314:1;13295:15;:20;:46;;;;13340:1;13319:17;:22;13295:46;13291:85;;;13358:7;;;;13291:85;13386:12;13409:33;13426:15;13409:16;:33::i;:::-;13453:18;13474:21;13453:42;;13506:23;13579:17;13546:15;13533:10;:28;;;;:::i;:::-;13532:65;;;;:::i;:::-;13506:91;;13630:15;;;;;;;;;;;13622:29;;13673:15;13622:81;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13608:95;;;;;13128:583;;;;;9381:1;9412:5:::0;9393:16;;:24;;;;;;;;;;;;;;;;;;13065:646;:::o;5993:610::-;6151:1;6133:20;;:6;:20;;;6125:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6235:1;6214:23;;:9;:23;;;6206:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6290:47;6311:6;6319:9;6330:6;6290:20;:47::i;:::-;6370:108;6406:6;6370:108;;;;;;;;;;;;;;;;;:9;:17;6380:6;6370:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;6350:9;:17;6360:6;6350:17;;;;;;;;;;;;;;;:128;;;;6512:32;6537:6;6512:9;:20;6522:9;6512:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6489:9;:20;6499:9;6489:20;;;;;;;;;;;;;;;:55;;;;6577:9;6560:35;;6569:6;6560:35;;;6588:6;6560:35;;;;;;:::i;:::-;;;;;;;;5993:610;;;:::o;1113:98::-;1171:7;1202:1;1198;:5;;;;:::i;:::-;1191:12;;1113:98;;;;:::o;1219:::-;1277:7;1308:1;1304;:5;;;;:::i;:::-;1297:12;;1219:98;;;;:::o;1007:::-;1065:7;1096:1;1092;:5;;;;:::i;:::-;1085:12;;1007:98;;;;:::o;13719:499::-;13785:21;13823:1;13809:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13785:40;;13854:4;13836;13841:1;13836:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13880:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13870:4;13875:1;13870:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13913:62;13930:4;13945:15;;;;;;;;;;;13963:11;13913:8;:62::i;:::-;13986:15;;;;;;;;;;;:66;;;14067:11;14093:1;14137:4;14164;14184:15;13986:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13774:444;13719:499;:::o;7848:125::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:323::-;747:6;796:2;784:9;775:7;771:23;767:32;764:119;;;802:79;;:::i;:::-;764:119;922:1;947:50;989:7;980:6;969:9;965:22;947:50;:::i;:::-;937:60;;893:114;691:323;;;;:::o;1020:99::-;1072:6;1106:5;1100:12;1090:22;;1020:99;;;:::o;1125:169::-;1209:11;1243:6;1238:3;1231:19;1283:4;1278:3;1274:14;1259:29;;1125:169;;;;:::o;1300:246::-;1381:1;1391:113;1405:6;1402:1;1399:13;1391:113;;;1490:1;1485:3;1481:11;1475:18;1471:1;1466:3;1462:11;1455:39;1427:2;1424:1;1420:10;1415:15;;1391:113;;;1538:1;1529:6;1524:3;1520:16;1513:27;1362:184;1300:246;;;:::o;1552:102::-;1593:6;1644:2;1640:7;1635:2;1628:5;1624:14;1620:28;1610:38;;1552:102;;;:::o;1660:377::-;1748:3;1776:39;1809:5;1776:39;:::i;:::-;1831:71;1895:6;1890:3;1831:71;:::i;:::-;1824:78;;1911:65;1969:6;1964:3;1957:4;1950:5;1946:16;1911:65;:::i;:::-;2001:29;2023:6;2001:29;:::i;:::-;1996:3;1992:39;1985:46;;1752:285;1660:377;;;;:::o;2043:313::-;2156:4;2194:2;2183:9;2179:18;2171:26;;2243:9;2237:4;2233:20;2229:1;2218:9;2214:17;2207:47;2271:78;2344:4;2335:6;2271:78;:::i;:::-;2263:86;;2043:313;;;;:::o;2362:126::-;2399:7;2439:42;2432:5;2428:54;2417:65;;2362:126;;;:::o;2494:96::-;2531:7;2560:24;2578:5;2560:24;:::i;:::-;2549:35;;2494:96;;;:::o;2596:122::-;2669:24;2687:5;2669:24;:::i;:::-;2662:5;2659:35;2649:63;;2708:1;2705;2698:12;2649:63;2596:122;:::o;2724:139::-;2770:5;2808:6;2795:20;2786:29;;2824:33;2851:5;2824:33;:::i;:::-;2724:139;;;;:::o;2869:77::-;2906:7;2935:5;2924:16;;2869:77;;;:::o;2952:122::-;3025:24;3043:5;3025:24;:::i;:::-;3018:5;3015:35;3005:63;;3064:1;3061;3054:12;3005:63;2952:122;:::o;3080:139::-;3126:5;3164:6;3151:20;3142:29;;3180:33;3207:5;3180:33;:::i;:::-;3080:139;;;;:::o;3225:474::-;3293:6;3301;3350:2;3338:9;3329:7;3325:23;3321:32;3318:119;;;3356:79;;:::i;:::-;3318:119;3476:1;3501:53;3546:7;3537:6;3526:9;3522:22;3501:53;:::i;:::-;3491:63;;3447:117;3603:2;3629:53;3674:7;3665:6;3654:9;3650:22;3629:53;:::i;:::-;3619:63;;3574:118;3225:474;;;;;:::o;3705:109::-;3786:21;3801:5;3786:21;:::i;:::-;3781:3;3774:34;3705:109;;:::o;3820:210::-;3907:4;3945:2;3934:9;3930:18;3922:26;;3958:65;4020:1;4009:9;4005:17;3996:6;3958:65;:::i;:::-;3820:210;;;;:::o;4036:60::-;4064:3;4085:5;4078:12;;4036:60;;;:::o;4102:142::-;4152:9;4185:53;4203:34;4212:24;4230:5;4212:24;:::i;:::-;4203:34;:::i;:::-;4185:53;:::i;:::-;4172:66;;4102:142;;;:::o;4250:126::-;4300:9;4333:37;4364:5;4333:37;:::i;:::-;4320:50;;4250:126;;;:::o;4382:152::-;4458:9;4491:37;4522:5;4491:37;:::i;:::-;4478:50;;4382:152;;;:::o;4540:183::-;4653:63;4710:5;4653:63;:::i;:::-;4648:3;4641:76;4540:183;;:::o;4729:274::-;4848:4;4886:2;4875:9;4871:18;4863:26;;4899:97;4993:1;4982:9;4978:17;4969:6;4899:97;:::i;:::-;4729:274;;;;:::o;5009:118::-;5096:24;5114:5;5096:24;:::i;:::-;5091:3;5084:37;5009:118;;:::o;5133:222::-;5226:4;5264:2;5253:9;5249:18;5241:26;;5277:71;5345:1;5334:9;5330:17;5321:6;5277:71;:::i;:::-;5133:222;;;;:::o;5361:329::-;5420:6;5469:2;5457:9;5448:7;5444:23;5440:32;5437:119;;;5475:79;;:::i;:::-;5437:119;5595:1;5620:53;5665:7;5656:6;5645:9;5641:22;5620:53;:::i;:::-;5610:63;;5566:117;5361:329;;;;:::o;5696:619::-;5773:6;5781;5789;5838:2;5826:9;5817:7;5813:23;5809:32;5806:119;;;5844:79;;:::i;:::-;5806:119;5964:1;5989:53;6034:7;6025:6;6014:9;6010:22;5989:53;:::i;:::-;5979:63;;5935:117;6091:2;6117:53;6162:7;6153:6;6142:9;6138:22;6117:53;:::i;:::-;6107:63;;6062:118;6219:2;6245:53;6290:7;6281:6;6270:9;6266:22;6245:53;:::i;:::-;6235:63;;6190:118;5696:619;;;;;:::o;6321:86::-;6356:7;6396:4;6389:5;6385:16;6374:27;;6321:86;;;:::o;6413:112::-;6496:22;6512:5;6496:22;:::i;:::-;6491:3;6484:35;6413:112;;:::o;6531:214::-;6620:4;6658:2;6647:9;6643:18;6635:26;;6671:67;6735:1;6724:9;6720:17;6711:6;6671:67;:::i;:::-;6531:214;;;;:::o;6751:118::-;6838:24;6856:5;6838:24;:::i;:::-;6833:3;6826:37;6751:118;;:::o;6875:222::-;6968:4;7006:2;6995:9;6991:18;6983:26;;7019:71;7087:1;7076:9;7072:17;7063:6;7019:71;:::i;:::-;6875:222;;;;:::o;7103:329::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:474::-;7506:6;7514;7563:2;7551:9;7542:7;7538:23;7534:32;7531:119;;;7569:79;;:::i;:::-;7531:119;7689:1;7714:53;7759:7;7750:6;7739:9;7735:22;7714:53;:::i;:::-;7704:63;;7660:117;7816:2;7842:53;7887:7;7878:6;7867:9;7863:22;7842:53;:::i;:::-;7832:63;;7787:118;7438:474;;;;;:::o;7918:468::-;7983:6;7991;8040:2;8028:9;8019:7;8015:23;8011:32;8008:119;;;8046:79;;:::i;:::-;8008:119;8166:1;8191:53;8236:7;8227:6;8216:9;8212:22;8191:53;:::i;:::-;8181:63;;8137:117;8293:2;8319:50;8361:7;8352:6;8341:9;8337:22;8319:50;:::i;:::-;8309:60;;8264:115;7918:468;;;;;:::o;8392:474::-;8460:6;8468;8517:2;8505:9;8496:7;8492:23;8488:32;8485:119;;;8523:79;;:::i;:::-;8485:119;8643:1;8668:53;8713:7;8704:6;8693:9;8689:22;8668:53;:::i;:::-;8658:63;;8614:117;8770:2;8796:53;8841:7;8832:6;8821:9;8817:22;8796:53;:::i;:::-;8786:63;;8741:118;8392:474;;;;;:::o;8872:182::-;9012:34;9008:1;9000:6;8996:14;8989:58;8872:182;:::o;9060:366::-;9202:3;9223:67;9287:2;9282:3;9223:67;:::i;:::-;9216:74;;9299:93;9388:3;9299:93;:::i;:::-;9417:2;9412:3;9408:12;9401:19;;9060:366;;;:::o;9432:419::-;9598:4;9636:2;9625:9;9621:18;9613:26;;9685:9;9679:4;9675:20;9671:1;9660:9;9656:17;9649:47;9713:131;9839:4;9713:131;:::i;:::-;9705:139;;9432:419;;;:::o;9857:180::-;9905:77;9902:1;9895:88;10002:4;9999:1;9992:15;10026:4;10023:1;10016:15;10043:320;10087:6;10124:1;10118:4;10114:12;10104:22;;10171:1;10165:4;10161:12;10192:18;10182:81;;10248:4;10240:6;10236:17;10226:27;;10182:81;10310:2;10302:6;10299:14;10279:18;10276:38;10273:84;;10329:18;;:::i;:::-;10273:84;10094:269;10043:320;;;:::o;10369:180::-;10417:77;10414:1;10407:88;10514:4;10511:1;10504:15;10538:4;10535:1;10528:15;10555:102;10597:8;10644:5;10641:1;10637:13;10616:34;;10555:102;;;:::o;10663:848::-;10724:5;10731:4;10755:6;10746:15;;10779:5;10770:14;;10793:712;10814:1;10804:8;10801:15;10793:712;;;10909:4;10904:3;10900:14;10894:4;10891:24;10888:50;;;10918:18;;:::i;:::-;10888:50;10968:1;10958:8;10954:16;10951:451;;;11383:4;11376:5;11372:16;11363:25;;10951:451;11433:4;11427;11423:15;11415:23;;11463:32;11486:8;11463:32;:::i;:::-;11451:44;;10793:712;;;10663:848;;;;;;;:::o;11517:1073::-;11571:5;11762:8;11752:40;;11783:1;11774:10;;11785:5;;11752:40;11811:4;11801:36;;11828:1;11819:10;;11830:5;;11801:36;11897:4;11945:1;11940:27;;;;11981:1;11976:191;;;;11890:277;;11940:27;11958:1;11949:10;;11960:5;;;11976:191;12021:3;12011:8;12008:17;12005:43;;;12028:18;;:::i;:::-;12005:43;12077:8;12074:1;12070:16;12061:25;;12112:3;12105:5;12102:14;12099:40;;;12119:18;;:::i;:::-;12099:40;12152:5;;;11890:277;;12276:2;12266:8;12263:16;12257:3;12251:4;12248:13;12244:36;12226:2;12216:8;12213:16;12208:2;12202:4;12199:12;12195:35;12179:111;12176:246;;;12332:8;12326:4;12322:19;12313:28;;12367:3;12360:5;12357:14;12354:40;;;12374:18;;:::i;:::-;12354:40;12407:5;;12176:246;12447:42;12485:3;12475:8;12469:4;12466:1;12447:42;:::i;:::-;12432:57;;;;12521:4;12516:3;12512:14;12505:5;12502:25;12499:51;;;12530:18;;:::i;:::-;12499:51;12579:4;12572:5;12568:16;12559:25;;11517:1073;;;;;;:::o;12596:281::-;12654:5;12678:23;12696:4;12678:23;:::i;:::-;12670:31;;12722:25;12738:8;12722:25;:::i;:::-;12710:37;;12766:104;12803:66;12793:8;12787:4;12766:104;:::i;:::-;12757:113;;12596:281;;;;:::o;12883:410::-;12923:7;12946:20;12964:1;12946:20;:::i;:::-;12941:25;;12980:20;12998:1;12980:20;:::i;:::-;12975:25;;13035:1;13032;13028:9;13057:30;13075:11;13057:30;:::i;:::-;13046:41;;13236:1;13227:7;13223:15;13220:1;13217:22;13197:1;13190:9;13170:83;13147:139;;13266:18;;:::i;:::-;13147:139;12931:362;12883:410;;;;:::o;13299:225::-;13439:34;13435:1;13427:6;13423:14;13416:58;13508:8;13503:2;13495:6;13491:15;13484:33;13299:225;:::o;13530:366::-;13672:3;13693:67;13757:2;13752:3;13693:67;:::i;:::-;13686:74;;13769:93;13858:3;13769:93;:::i;:::-;13887:2;13882:3;13878:12;13871:19;;13530:366;;;:::o;13902:419::-;14068:4;14106:2;14095:9;14091:18;14083:26;;14155:9;14149:4;14145:20;14141:1;14130:9;14126:17;14119:47;14183:131;14309:4;14183:131;:::i;:::-;14175:139;;13902:419;;;:::o;14327:223::-;14467:34;14463:1;14455:6;14451:14;14444:58;14536:6;14531:2;14523:6;14519:15;14512:31;14327:223;:::o;14556:366::-;14698:3;14719:67;14783:2;14778:3;14719:67;:::i;:::-;14712:74;;14795:93;14884:3;14795:93;:::i;:::-;14913:2;14908:3;14904:12;14897:19;;14556:366;;;:::o;14928:419::-;15094:4;15132:2;15121:9;15117:18;15109:26;;15181:9;15175:4;15171:20;15167:1;15156:9;15152:17;15145:47;15209:131;15335:4;15209:131;:::i;:::-;15201:139;;14928:419;;;:::o;15353:221::-;15493:34;15489:1;15481:6;15477:14;15470:58;15562:4;15557:2;15549:6;15545:15;15538:29;15353:221;:::o;15580:366::-;15722:3;15743:67;15807:2;15802:3;15743:67;:::i;:::-;15736:74;;15819:93;15908:3;15819:93;:::i;:::-;15937:2;15932:3;15928:12;15921:19;;15580:366;;;:::o;15952:419::-;16118:4;16156:2;16145:9;16141:18;16133:26;;16205:9;16199:4;16195:20;16191:1;16180:9;16176:17;16169:47;16233:131;16359:4;16233:131;:::i;:::-;16225:139;;15952:419;;;:::o;16377:224::-;16517:34;16513:1;16505:6;16501:14;16494:58;16586:7;16581:2;16573:6;16569:15;16562:32;16377:224;:::o;16607:366::-;16749:3;16770:67;16834:2;16829:3;16770:67;:::i;:::-;16763:74;;16846:93;16935:3;16846:93;:::i;:::-;16964:2;16959:3;16955:12;16948:19;;16607:366;;;:::o;16979:419::-;17145:4;17183:2;17172:9;17168:18;17160:26;;17232:9;17226:4;17222:20;17218:1;17207:9;17203:17;17196:47;17260:131;17386:4;17260:131;:::i;:::-;17252:139;;16979:419;;;:::o;17404:222::-;17544:34;17540:1;17532:6;17528:14;17521:58;17613:5;17608:2;17600:6;17596:15;17589:30;17404:222;:::o;17632:366::-;17774:3;17795:67;17859:2;17854:3;17795:67;:::i;:::-;17788:74;;17871:93;17960:3;17871:93;:::i;:::-;17989:2;17984:3;17980:12;17973:19;;17632:366;;;:::o;18004:419::-;18170:4;18208:2;18197:9;18193:18;18185:26;;18257:9;18251:4;18247:20;18243:1;18232:9;18228:17;18221:47;18285:131;18411:4;18285:131;:::i;:::-;18277:139;;18004:419;;;:::o;18429:228::-;18569:34;18565:1;18557:6;18553:14;18546:58;18638:11;18633:2;18625:6;18621:15;18614:36;18429:228;:::o;18663:366::-;18805:3;18826:67;18890:2;18885:3;18826:67;:::i;:::-;18819:74;;18902:93;18991:3;18902:93;:::i;:::-;19020:2;19015:3;19011:12;19004:19;;18663:366;;;:::o;19035:419::-;19201:4;19239:2;19228:9;19224:18;19216:26;;19288:9;19282:4;19278:20;19274:1;19263:9;19259:17;19252:47;19316:131;19442:4;19316:131;:::i;:::-;19308:139;;19035:419;;;:::o;19460:176::-;19600:28;19596:1;19588:6;19584:14;19577:52;19460:176;:::o;19642:366::-;19784:3;19805:67;19869:2;19864:3;19805:67;:::i;:::-;19798:74;;19881:93;19970:3;19881:93;:::i;:::-;19999:2;19994:3;19990:12;19983:19;;19642:366;;;:::o;20014:419::-;20180:4;20218:2;20207:9;20203:18;20195:26;;20267:9;20261:4;20257:20;20253:1;20242:9;20238:17;20231:47;20295:131;20421:4;20295:131;:::i;:::-;20287:139;;20014:419;;;:::o;20439:191::-;20479:3;20498:20;20516:1;20498:20;:::i;:::-;20493:25;;20532:20;20550:1;20532:20;:::i;:::-;20527:25;;20575:1;20572;20568:9;20561:16;;20596:3;20593:1;20590:10;20587:36;;;20603:18;;:::i;:::-;20587:36;20439:191;;;;:::o;20636:180::-;20684:77;20681:1;20674:88;20781:4;20778:1;20771:15;20805:4;20802:1;20795:15;20822:185;20862:1;20879:20;20897:1;20879:20;:::i;:::-;20874:25;;20913:20;20931:1;20913:20;:::i;:::-;20908:25;;20952:1;20942:35;;20957:18;;:::i;:::-;20942:35;20999:1;20996;20992:9;20987:14;;20822:185;;;;:::o;21013:147::-;21114:11;21151:3;21136:18;;21013:147;;;;:::o;21166:114::-;;:::o;21286:398::-;21445:3;21466:83;21547:1;21542:3;21466:83;:::i;:::-;21459:90;;21558:93;21647:3;21558:93;:::i;:::-;21676:1;21671:3;21667:11;21660:18;;21286:398;;;:::o;21690:379::-;21874:3;21896:147;22039:3;21896:147;:::i;:::-;21889:154;;22060:3;22053:10;;21690:379;;;:::o;22075:194::-;22115:4;22135:20;22153:1;22135:20;:::i;:::-;22130:25;;22169:20;22187:1;22169:20;:::i;:::-;22164:25;;22213:1;22210;22206:9;22198:17;;22237:1;22231:4;22228:11;22225:37;;;22242:18;;:::i;:::-;22225:37;22075:194;;;;:::o;22275:180::-;22323:77;22320:1;22313:88;22420:4;22417:1;22410:15;22444:4;22441:1;22434:15;22461:180;22509:77;22506:1;22499:88;22606:4;22603:1;22596:15;22630:4;22627:1;22620:15;22647:143;22704:5;22735:6;22729:13;22720:22;;22751:33;22778:5;22751:33;:::i;:::-;22647:143;;;;:::o;22796:351::-;22866:6;22915:2;22903:9;22894:7;22890:23;22886:32;22883:119;;;22921:79;;:::i;:::-;22883:119;23041:1;23066:64;23122:7;23113:6;23102:9;23098:22;23066:64;:::i;:::-;23056:74;;23012:128;22796:351;;;;:::o;23153:85::-;23198:7;23227:5;23216:16;;23153:85;;;:::o;23244:158::-;23302:9;23335:61;23353:42;23362:32;23388:5;23362:32;:::i;:::-;23353:42;:::i;:::-;23335:61;:::i;:::-;23322:74;;23244:158;;;:::o;23408:147::-;23503:45;23542:5;23503:45;:::i;:::-;23498:3;23491:58;23408:147;;:::o;23561:114::-;23628:6;23662:5;23656:12;23646:22;;23561:114;;;:::o;23681:184::-;23780:11;23814:6;23809:3;23802:19;23854:4;23849:3;23845:14;23830:29;;23681:184;;;;:::o;23871:132::-;23938:4;23961:3;23953:11;;23991:4;23986:3;23982:14;23974:22;;23871:132;;;:::o;24009:108::-;24086:24;24104:5;24086:24;:::i;:::-;24081:3;24074:37;24009:108;;:::o;24123:179::-;24192:10;24213:46;24255:3;24247:6;24213:46;:::i;:::-;24291:4;24286:3;24282:14;24268:28;;24123:179;;;;:::o;24308:113::-;24378:4;24410;24405:3;24401:14;24393:22;;24308:113;;;:::o;24457:732::-;24576:3;24605:54;24653:5;24605:54;:::i;:::-;24675:86;24754:6;24749:3;24675:86;:::i;:::-;24668:93;;24785:56;24835:5;24785:56;:::i;:::-;24864:7;24895:1;24880:284;24905:6;24902:1;24899:13;24880:284;;;24981:6;24975:13;25008:63;25067:3;25052:13;25008:63;:::i;:::-;25001:70;;25094:60;25147:6;25094:60;:::i;:::-;25084:70;;24940:224;24927:1;24924;24920:9;24915:14;;24880:284;;;24884:14;25180:3;25173:10;;24581:608;;;24457:732;;;;:::o;25195:831::-;25458:4;25496:3;25485:9;25481:19;25473:27;;25510:71;25578:1;25567:9;25563:17;25554:6;25510:71;:::i;:::-;25591:80;25667:2;25656:9;25652:18;25643:6;25591:80;:::i;:::-;25718:9;25712:4;25708:20;25703:2;25692:9;25688:18;25681:48;25746:108;25849:4;25840:6;25746:108;:::i;:::-;25738:116;;25864:72;25932:2;25921:9;25917:18;25908:6;25864:72;:::i;:::-;25946:73;26014:3;26003:9;25999:19;25990:6;25946:73;:::i;:::-;25195:831;;;;;;;;:::o

Swarm Source

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