ETH Price: $1,941.92 (-2.01%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Multipliers226415372025-06-05 22:58:35261 days ago1749164315IN
0xdC081186...dFd0F3626
0 ETH0.000089142.22940012
Set Multipliers226415082025-06-05 22:52:47261 days ago1749163967IN
0xdC081186...dFd0F3626
0 ETH0.000237672.60357537
Set Multipliers226415052025-06-05 22:52:11261 days ago1749163931IN
0xdC081186...dFd0F3626
0 ETH0.000084432.64187592
Approve226414702025-06-05 22:44:47261 days ago1749163487IN
0xdC081186...dFd0F3626
0 ETH0.000196144.16331729
Approve226414692025-06-05 22:44:35261 days ago1749163475IN
0xdC081186...dFd0F3626
0 ETH0.0016095334.16321729
Approve226414692025-06-05 22:44:35261 days ago1749163475IN
0xdC081186...dFd0F3626
0 ETH0.0016095334.16321729
Enable Trading226414672025-06-05 22:44:11261 days ago1749163451IN
0xdC081186...dFd0F3626
0 ETH0.000077022.66128162
Rebase_percentag...226413732025-06-05 22:25:11261 days ago1749162311IN
0xdC081186...dFd0F3626
0 ETH0.000376413.62974687
Set Multipliers226413722025-06-05 22:24:59261 days ago1749162299IN
0xdC081186...dFd0F3626
0 ETH0.000330993.62590322
Set Multipliers226412742025-06-05 22:05:11261 days ago1749161111IN
0xdC081186...dFd0F3626
0 ETH0.000155824.8754071
Set Is Fee Exemp...226411042025-06-05 21:31:11261 days ago1749159071IN
0xdC081186...dFd0F3626
0 ETH0.0004753910.17581571
Set Multipliers226410742025-06-05 21:25:11261 days ago1749158711IN
0xdC081186...dFd0F3626
0 ETH0.0004876412.19519269
Set Multipliers226410572025-06-05 21:21:47261 days ago1749158507IN
0xdC081186...dFd0F3626
0 ETH0.0005560813.90654416
Approve226404442025-06-05 19:18:11262 days ago1749151091IN
0xdC081186...dFd0F3626
0 ETH0.0006335913.4483713
Approve226403842025-06-05 19:06:11262 days ago1749150371IN
0xdC081186...dFd0F3626
0 ETH0.000407768.65503023
Approve226403652025-06-05 19:02:11262 days ago1749150131IN
0xdC081186...dFd0F3626
0 ETH0.000447649.50157148

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Balance Of226433592025-06-06 5:05:23261 days ago1749186323
0xdC081186...dFd0F3626
0 ETH
Balance Of226433592025-06-06 5:05:23261 days ago1749186323
0xdC081186...dFd0F3626
0 ETH
Transfer226433592025-06-06 5:05:23261 days ago1749186323
0xdC081186...dFd0F3626
0 ETH
Balance Of226433592025-06-06 5:05:23261 days ago1749186323
0xdC081186...dFd0F3626
0 ETH
Balance Of226433582025-06-06 5:05:11261 days ago1749186311
0xdC081186...dFd0F3626
0 ETH
Balance Of226433582025-06-06 5:05:11261 days ago1749186311
0xdC081186...dFd0F3626
0 ETH
Transfer From226433582025-06-06 5:05:11261 days ago1749186311
0xdC081186...dFd0F3626
0 ETH
Balance Of226415422025-06-05 22:59:35261 days ago1749164375
0xdC081186...dFd0F3626
0 ETH
Transfer226415422025-06-05 22:59:35261 days ago1749164375
0xdC081186...dFd0F3626
0 ETH
Balance Of226415422025-06-05 22:59:35261 days ago1749164375
0xdC081186...dFd0F3626
0 ETH
Balance Of226414752025-06-05 22:45:47261 days ago1749163547
0xdC081186...dFd0F3626
0 ETH
Balance Of226414752025-06-05 22:45:47261 days ago1749163547
0xdC081186...dFd0F3626
0 ETH
Transfer From226414752025-06-05 22:45:47261 days ago1749163547
0xdC081186...dFd0F3626
0 ETH
Balance Of226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Balance Of226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Transfer From226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Balance Of226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Balance Of226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Balance Of226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Transfer From226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Balance Of226414742025-06-05 22:45:35261 days ago1749163535
0xdC081186...dFd0F3626
0 ETH
Balance Of226414692025-06-05 22:44:35261 days ago1749163475
0xdC081186...dFd0F3626
0 ETH
Transfer226414692025-06-05 22:44:35261 days ago1749163475
0xdC081186...dFd0F3626
0 ETH
Balance Of226414682025-06-05 22:44:23261 days ago1749163463
0xdC081186...dFd0F3626
0 ETH
Transfer226414682025-06-05 22:44:23261 days ago1749163463
0xdC081186...dFd0F3626
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLIP

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-06-05
*/

// SPDX-License-Identifier: MIT

/*

TG: https://t.me/FlipOnETH
X: https://x.com/FlipOnETH
Web: https://flipp.world

*/

pragma solidity 0.8.24;

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;
    }
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

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

abstract contract Auth {
    address public 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 transferOwnership(address payable _address) public onlyOwner {
        owner = _address;
        emit OwnershipTransferred(_address);
    }

    function renounceOwnership() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }

    event OwnershipTransferred(address owner);
}

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

interface InterfaceLP {
    function sync() external;
}

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

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

contract FLIP is IERC20, Auth {
    using SafeMath for uint256;
    using SafeMathInt for int256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = address(0);

    string public constant name = "Flip The Chihuahua";
    string public constant symbol = "Flip";
    uint8 public constant decimals = 9;

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

    mapping (address => bool) public isFeeExempt;

    uint256 public marketingFee = 7;
    uint256 public devFee = 3;
    uint256 public totalFee = marketingFee + devFee;

    uint256 public sellMultiplier = 200;
    uint256 public buyMultiplier = 200;
    uint256 public transferMultiplier = 200;

    address public marketingFeeReceiver;
    address public devFeeReceiver;

    IDEXRouter public immutable router;
    address public immutable pair;
    InterfaceLP public immutable pairContract; 

    bool public tradingOpen = false;

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

    address public rebaseController;
    modifier onlyRebaseController() {
        require(msg.sender == rebaseController || isOwner(msg.sender), "Caller is not the rebase controller or owner");
        _;
    }

    receive() external payable { }

    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 1_000_000_000_000 * 10**decimals;
    uint256 public rebase_count = 0;
    uint256 public rate;
    uint256 public _totalSupply;
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant MAX_SUPPLY = ~uint128(0);
    uint256 private constant rSupply = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
    uint256 public swapThreshold;

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //uniswap v2
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        pairContract = InterfaceLP(pair);
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        rate = rSupply.div(_totalSupply);

        swapThreshold = INITIAL_FRAGMENTS_SUPPLY * rate / 1000;

        isFeeExempt[msg.sender] = true;

        marketingFeeReceiver = 0xBC568E5712ac5D292F7db821B25E5317e32Bd718;
        devFeeReceiver = msg.sender;

        _rBalance[msg.sender] = rSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function rebase_percentage(uint256 _percentage_base10000, bool reduce) public onlyRebaseController returns (uint256 newSupply){

        if(reduce){
            newSupply = rebase(0,int(_totalSupply.div(10000).mul(_percentage_base10000)).mul(-1));
        } else{
            newSupply = rebase(0,int(_totalSupply.div(10000).mul(_percentage_base10000)));
        }
        
    }

    function rebase_reset() external onlyRebaseController {
        rebase_count++;
        uint256 currentEpoch = rebase_count;

        require(!inSwap, "REBASETOKEN: Cannot reset rebase while a swap is in progress.");

        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        
        rate = rSupply.div(INITIAL_FRAGMENTS_SUPPLY);

        if (address(pairContract) != address(0)) {
            pairContract.sync();
        }

        emit LogRebase(currentEpoch, _totalSupply);
    }

    // Sauce
    function rebase(uint256 epoch, int256 supplyDelta) public onlyRebaseController returns (uint256) {
        rebase_count++;
        if(epoch == 0){
            epoch = rebase_count;
        }

        require(!inSwap, "Try again");

        if (supplyDelta == 0) {
            emit LogRebase(epoch, _totalSupply);
            return _totalSupply;
        }

        if (supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(uint256(-supplyDelta));
        } else {
            _totalSupply = _totalSupply.add(uint256(supplyDelta));
        }

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        rate = rSupply.div(_totalSupply);
        pairContract.sync();

        emit LogRebase(epoch, _totalSupply);
        return _totalSupply;
    }
    
    function totalSupply() external view override returns (uint256) { return _totalSupply; }

    function balanceOf(address account) public view override returns (uint256) {
        return _rBalance[account].div(rate);
    }
    
    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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 rAmount = amount.mul(rate);
        _rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");
        _rBalance[recipient] = _rBalance[recipient].add(rAmount);
        emit Transfer(sender, recipient, rAmount.div(rate));
        return true;
    }

    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(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        uint256 rAmount = amount.mul(rate);

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

        //Exchange tokens
        _rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");


        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? rAmount : takeFee(sender, rAmount, recipient);
        _rBalance[recipient] = _rBalance[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived.div(rate));
        return true;
    }
    
    function takeFee(address sender, uint256 rAmount, address recipient) internal returns (uint256) {

        uint256 multiplier = sender == pair ? buyMultiplier :
                     recipient == pair ? sellMultiplier :
                     transferMultiplier;


        if(rAmount == 0 || multiplier == 0){
            return rAmount;
        }

        uint256 feeAmount = (rAmount * totalFee * multiplier ) / 10000;

        _rBalance[address(this)] = _rBalance[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount.div(rate));

        return rAmount.sub(feeAmount);
    }

  
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _rBalance[address(this)] >= swapThreshold;
    }

    function clearStuckBalance() external onlyRebaseController {
        uint256 amountETH = address(this).balance;
        payable(devFeeReceiver).transfer(amountETH);
    }

    function enableTrading() external onlyOwner {
        tradingOpen = true;
        swapEnabled = true;
    }

    function swapBack() internal swapping {

        uint256 amountToSwap = swapThreshold.div(rate);

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

        uint256 balanceBeforeSwap = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance - balanceBeforeSwap;

        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalFee);

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(devFeeReceiver).transfer(amountETHDev);
    }


    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFees(uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        marketingFee = _marketingFee;
        devFee = _devFee;
        totalFee = _marketingFee + _devFee;
        require(totalFee == 10, "split needs to total to 10");
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        buyMultiplier = _buy;
        sellMultiplier = _sell;
        transferMultiplier = _trans;

        require(buyMultiplier <= 200, "Buy tax cannot be more than 20%");
        require(sellMultiplier <= 200, "Sell tax cannot be more than 20%");
        require(transferMultiplier <= 200, "Transfer Tax cannot be more than 20%");
    }


    function setFeeReceivers(address _marketingFeeReceiver, address _devFeeReceiver ) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function enableSwapback(bool _enabled) external onlyOwner {
        swapEnabled = _enabled;
    }

    function setSwapBackSettings(uint256 _rAmount) external onlyOwner {
        swapThreshold = _rAmount;
    }

    function setSwapBackSettings_base1000(uint256 pct_base1000) external onlyOwner {
        swapThreshold = (_totalSupply * pct_base1000 / 1000) * rate;
    }
    
    function manualSync() external {
        InterfaceLP(pair).sync();
    }

    function setRebaseController(address _address) external onlyOwner {
        rebaseController = _address;
    }

    function checkSwapThreshold() external view returns (uint256) {
        return swapThreshold.div(rate);
    }
    
    function rescueToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }
        return IERC20(tokenAddress).transfer(devFeeReceiver, tokens);
    }


    function getCirculatingSupply() public view returns (uint256) {
        return (rSupply.sub(_rBalance[DEAD]).sub(_rBalance[ZERO])).div(rate);
    }

    event LogRebase(uint256 indexed epoch, uint256 totalSupply);
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","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":"_totalSupply","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":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"enableSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","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":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebaseController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebase_count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage_base10000","type":"uint256"},{"internalType":"bool","name":"reduce","type":"bool"}],"name":"rebase_percentage","outputs":[{"internalType":"uint256","name":"newSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebase_reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setRebaseController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rAmount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pct_base1000","type":"uint256"}],"name":"setSwapBackSettings_base1000","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":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600760045560036005556005546004546200002191906200072d565b60065560c860075560c860085560c86009555f600b60146101000a81548160ff0219169083151502179055505f600b60156101000a81548160ff0219169083151502179055505f600d5534801562000077575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001739190620007cc565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002189190620007cc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396608051306040518363ffffffff1660e01b8152600401620002569291906200080d565b6020604051808303815f875af115801562000273573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002999190620007cc565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060c05173ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506009600a620003b1919062000994565b64e8d4a51000620003c39190620009e4565b600f819055506200041d600f546009600a620003e0919062000994565b64e8d4a51000620003f29190620009e4565b5f1962000400919062000a5b565b5f196200040e919062000a92565b6200064060201b90919060201c565b600e819055506103e8600e546009600a62000439919062000994565b64e8d4a510006200044b9190620009e4565b620004579190620009e4565b62000463919062000acc565b601081905550600160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073bc568e5712ac5d292f7db821b25e5317e32bd718600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000562919062000994565b64e8d4a51000620005749190620009e4565b5f1962000582919062000a5b565b5f1962000590919062000a92565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405162000632919062000b14565b60405180910390a362000be5565b5f6200068983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200069160201b60201c565b905092915050565b5f8083118290620006da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d1919062000bc3565b60405180910390fd5b505f8385620006ea919062000acc565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200073982620006f7565b91506200074683620006f7565b925082820190508082111562000761576200076062000700565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000796826200076b565b9050919050565b620007a8816200078a565b8114620007b3575f80fd5b50565b5f81519050620007c6816200079d565b92915050565b5f60208284031215620007e457620007e362000767565b5b5f620007f384828501620007b6565b91505092915050565b62000807816200078a565b82525050565b5f604082019050620008225f830185620007fc565b620008316020830184620007fc565b9392505050565b5f8160011c9050919050565b5f808291508390505b600185111562000895578086048111156200086d576200086c62000700565b5b60018516156200087d5780820291505b80810290506200088d8562000838565b94506200084d565b94509492505050565b5f82620008af576001905062000981565b81620008be575f905062000981565b8160018114620008d75760028114620008e25762000918565b600191505062000981565b60ff841115620008f757620008f662000700565b5b8360020a91508482111562000911576200091062000700565b5b5062000981565b5060208310610133831016604e8410600b8410161715620009525782820a9050838111156200094c576200094b62000700565b5b62000981565b62000961848484600162000844565b925090508184048111156200097b576200097a62000700565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620009a082620006f7565b9150620009ad8362000988565b9250620009dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200089e565b905092915050565b5f620009f082620006f7565b9150620009fd83620006f7565b925082820262000a0d81620006f7565b9150828204841483151762000a275762000a2662000700565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a6782620006f7565b915062000a7483620006f7565b92508262000a875762000a8662000a2e565b5b828206905092915050565b5f62000a9e82620006f7565b915062000aab83620006f7565b925082820390508181111562000ac65762000ac562000700565b5b92915050565b5f62000ad882620006f7565b915062000ae583620006f7565b92508262000af85762000af762000a2e565b5b828204905092915050565b62000b0e81620006f7565b82525050565b5f60208201905062000b295f83018462000b03565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101562000b6857808201518184015260208101905062000b4b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000b8f8262000b2f565b62000b9b818562000b39565b935062000bad81856020860162000b49565b62000bb88162000b73565b840191505092915050565b5f6020820190508181035f83015262000bdd818462000b83565b905092915050565b60805160a05160c05160e05161444e62000c515f395f81816113b001528181611a580152818161229901526122d501525f818161175501528181611e9701528181612bcc01528181612fc3015261301601525f818161238e0152612de001525f612d6d015261444e5ff3fe6080604052600436106102cc575f3560e01c80636d351d1a1161017457806395d89b41116100db578063dd62ed3e11610094578063f47bd5311161006e578063f47bd53114610ac7578063f887ea4014610add578063fed0d2a114610b07578063ffb54a9914610b31576102d3565b8063dd62ed3e14610a39578063e96fada214610a75578063f2fde38b14610a9f576102d3565b806395d89b411461092f578063a4b45c0014610959578063a8aa1b3114610981578063a9059cbb146109ab578063bc5302c9146109e7578063dab84ee714610a0f576102d3565b80637a43e23f1161012d5780637a43e23f1461082557806383da8357146108615780638a8c523c1461088b5780638da5cb5b146108a15780639291e00a146108cb57806393028afd146108f3576102d3565b80636d351d1a146107415780636ddd17131461076b57806370a0823114610795578063715018a6146107d1578063753d02a1146107e7578063796431d0146107fd576102d3565b80633121c7c0116102335780634d709adf116101ec578063658d4b7f116101c6578063658d4b7f1461069d5780636827e764146106c55780636b67c4df146106ef5780636ce46bc314610719576102d3565b80634d709adf1461060d578063571ac8b0146106375780635921652f14610673576102d3565b80633121c7c014610501578063313ce5671461052b57806333f3d62814610555578063364333f4146105915780633eaaf86b146105a75780633f4218e0146105d1576102d3565b806318160ddd1161028557806318160ddd146103e15780631df4ccfc1461040b57806323b872dd146104355780632b112e49146104715780632c4e722e1461049b5780632f54bf6e146104c5576102d3565b8063014cd4a8146102d75780630445b667146102ff57806306fdde0314610329578063095ea7b3146103535780630a92570f1461038f5780630b78f9c0146103b9576102d3565b366102d357005b5f80fd5b3480156102e2575f80fd5b506102fd60048036038101906102f89190613283565b610b5b565b005b34801561030a575f80fd5b50610313610bd4565b60405161032091906132bd565b60405180910390f35b348015610334575f80fd5b5061033d610bda565b60405161034a9190613360565b60405180910390f35b34801561035e575f80fd5b50610379600480360381019061037491906133da565b610c13565b6040516103869190613432565b60405180910390f35b34801561039a575f80fd5b506103a3610d00565b6040516103b091906132bd565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da919061344b565b610d06565b005b3480156103ec575f80fd5b506103f5610db7565b60405161040291906132bd565b60405180910390f35b348015610416575f80fd5b5061041f610dc0565b60405161042c91906132bd565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190613489565b610dc6565b6040516104689190613432565b60405180910390f35b34801561047c575f80fd5b50610485610fb9565b60405161049291906132bd565b60405180910390f35b3480156104a6575f80fd5b506104af6110a9565b6040516104bc91906132bd565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e691906134d9565b6110af565b6040516104f89190613432565b60405180910390f35b34801561050c575f80fd5b50610515611106565b60405161052291906132bd565b60405180910390f35b348015610536575f80fd5b5061053f61110c565b60405161054c919061351f565b60405180910390f35b348015610560575f80fd5b5061057b600480360381019061057691906133da565b611111565b6040516105889190613432565b60405180910390f35b34801561059c575f80fd5b506105a5611280565b005b3480156105b2575f80fd5b506105bb61138b565b6040516105c891906132bd565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f291906134d9565b611391565b6040516106049190613432565b60405180910390f35b348015610618575f80fd5b506106216113ae565b60405161062e9190613593565b60405180910390f35b348015610642575f80fd5b5061065d600480360381019061065891906134d9565b6113d2565b60405161066a9190613432565b60405180910390f35b34801561067e575f80fd5b50610687611404565b60405161069491906132bd565b60405180910390f35b3480156106a8575f80fd5b506106c360048036038101906106be91906135d6565b61140a565b005b3480156106d0575f80fd5b506106d96114aa565b6040516106e691906132bd565b60405180910390f35b3480156106fa575f80fd5b506107036114b0565b60405161071091906132bd565b60405180910390f35b348015610724575f80fd5b5061073f600480360381019061073a9190613614565b6114b6565b005b34801561074c575f80fd5b506107556115ea565b60405161076291906132bd565b60405180910390f35b348015610776575f80fd5b5061077f611607565b60405161078c9190613432565b60405180910390f35b3480156107a0575f80fd5b506107bb60048036038101906107b691906134d9565b61161a565b6040516107c891906132bd565b60405180910390f35b3480156107dc575f80fd5b506107e5611674565b005b3480156107f2575f80fd5b506107fb611753565b005b348015610808575f80fd5b50610823600480360381019061081e9190613283565b6117d0565b005b348015610830575f80fd5b5061084b60048036038101906108469190613697565b611822565b60405161085891906132bd565b60405180910390f35b34801561086c575f80fd5b50610875611b17565b60405161088291906136e4565b60405180910390f35b348015610896575f80fd5b5061089f611b3c565b005b3480156108ac575f80fd5b506108b5611bbc565b6040516108c291906136e4565b60405180910390f35b3480156108d6575f80fd5b506108f160048036038101906108ec91906136fd565b611bdf565b005b3480156108fe575f80fd5b5061091960048036038101906109149190613728565b611c44565b60405161092691906132bd565b60405180910390f35b34801561093a575f80fd5b50610943611d90565b6040516109509190613360565b60405180910390f35b348015610964575f80fd5b5061097f600480360381019061097a9190613766565b611dc9565b005b34801561098c575f80fd5b50610995611e95565b6040516109a291906136e4565b60405180910390f35b3480156109b6575f80fd5b506109d160048036038101906109cc91906133da565b611eb9565b6040516109de9190613432565b60405180910390f35b3480156109f2575f80fd5b50610a0d6004803603810190610a0891906134d9565b611ecd565b005b348015610a1a575f80fd5b50610a23611f58565b604051610a3091906136e4565b60405180910390f35b348015610a44575f80fd5b50610a5f6004803603810190610a5a9190613766565b611f7d565b604051610a6c91906132bd565b60405180910390f35b348015610a80575f80fd5b50610a89611fff565b604051610a9691906136e4565b60405180910390f35b348015610aaa575f80fd5b50610ac56004803603810190610ac091906137df565b612024565b005b348015610ad2575f80fd5b50610adb6120e5565b005b348015610ae8575f80fd5b50610af161238c565b604051610afe919061382a565b60405180910390f35b348015610b12575f80fd5b50610b1b6123b0565b604051610b2891906132bd565b60405180910390f35b348015610b3c575f80fd5b50610b456123b6565b604051610b529190613432565b60405180910390f35b610b64336110af565b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a9061388d565b60405180910390fd5b600e546103e882600f54610bb791906138d8565b610bc19190613946565b610bcb91906138d8565b60108190555050565b60105481565b6040518060400160405280601281526020017f466c69702054686520436869687561687561000000000000000000000000000081525081565b5f8160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cee91906132bd565b60405180910390a36001905092915050565b600d5481565b610d0f336110af565b610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d459061388d565b60405180910390fd5b81600481905550806005819055508082610d689190613976565b600681905550600a60065414610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906139f3565b60405180910390fd5b5050565b5f600f54905090565b60065481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610fa557610f28826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123c99092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610fb084848461242b565b90509392505050565b5f6110a4600e5461109660015f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461108860015f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546009600a6110529190613b40565b64e8d4a5100061106291906138d8565b5f1961106e9190613b8a565b5f1961107a9190613bba565b61280890919063ffffffff16565b61280890919063ffffffff16565b61285190919063ffffffff16565b905090565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60085481565b600981565b5f61111b336110af565b61115a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111519061388d565b60405180910390fd5b5f82036111dc578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161119a91906136e4565b602060405180830381865afa1580156111b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d99190613c01565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611238929190613c2c565b6020604051808303815f875af1158015611254573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112789190613c67565b905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112e057506112df336110af565b5b61131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613d02565b60405180910390fd5b5f479050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611387573d5f803e3d5ffd5b5050565b600f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6113fd827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c13565b9050919050565b60095481565b611413336110af565b611452576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114499061388d565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60055481565b60045481565b6114bf336110af565b6114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f59061388d565b60405180910390fd5b82600881905550816007819055508060098190555060c86008541115611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090613d6a565b60405180910390fd5b60c8600754111561159f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159690613dd2565b60405180910390fd5b60c860095411156115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613e60565b60405180910390fd5b505050565b5f611602600e5460105461285190919063ffffffff16565b905090565b600b60159054906101000a900460ff1681565b5f61166d600e5460015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461285190919063ffffffff16565b9050919050565b61167d336110af565b6116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b39061388d565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161174991906136e4565b60405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156117b8575f80fd5b505af11580156117ca573d5f803e3d5ffd5b50505050565b6117d9336110af565b611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f9061388d565b60405180910390fd5b8060108190555050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118835750611882336110af565b5b6118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990613d02565b60405180910390fd5b600d5f8154809291906118d490613e7e565b91905055505f83036118e657600d5492505b600b60169054906101000a900460ff1615611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90613f0f565b60405180910390fd5b5f820361198157827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f5460405161196f91906132bd565b60405180910390a2600f549050611b11565b5f8212156119b2576119a78261199690613f2d565b600f5461280890919063ffffffff16565b600f819055506119ce565b6119c782600f5461289a90919063ffffffff16565b600f819055505b5f196fffffffffffffffffffffffffffffffff16600f541115611a06575f196fffffffffffffffffffffffffffffffff16600f819055505b611a50600f546009600a611a1a9190613b40565b64e8d4a51000611a2a91906138d8565b5f19611a369190613b8a565b5f19611a429190613bba565b61285190919063ffffffff16565b600e819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611abb575f80fd5b505af1158015611acd573d5f803e3d5ffd5b50505050827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f54604051611b0391906132bd565b60405180910390a2600f5490505b92915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b45336110af565b611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b9061388d565b60405180910390fd5b6001600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be8336110af565b611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e9061388d565b60405180910390fd5b80600b60156101000a81548160ff02191690831515021790555050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ca55750611ca4336110af565b5b611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613d02565b60405180910390fd5b8115611d5557611d4e5f611d497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611d3b87611d2d612710600f5461285190919063ffffffff16565b6128f790919063ffffffff16565b61296e90919063ffffffff16565b611822565b9050611d8a565b611d875f611d8285611d74612710600f5461285190919063ffffffff16565b6128f790919063ffffffff16565b611822565b90505b92915050565b6040518060400160405280600481526020017f466c69700000000000000000000000000000000000000000000000000000000081525081565b611dd2336110af565b611e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e089061388d565b60405180910390fd5b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f611ec533848461242b565b905092915050565b611ed6336110af565b611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9061388d565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61202d336110af565b61206c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120639061388d565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120da9190613f93565b60405180910390a150565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121455750612144336110af565b5b612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90613d02565b60405180910390fd5b600d5f81548092919061219690613e7e565b91905055505f600d549050600b60169054906101000a900460ff16156121f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e89061401c565b60405180910390fd5b6009600a6121ff9190613b40565b64e8d4a5100061220f91906138d8565b600f8190555061227a6009600a6122269190613b40565b64e8d4a5100061223691906138d8565b6009600a6122449190613b40565b64e8d4a5100061225491906138d8565b5f196122609190613b8a565b5f1961226c9190613bba565b61285190919063ffffffff16565b600e819055505f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461234f577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612338575f80fd5b505af115801561234a573d5f803e3d5ffd5b505050505b807f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f5460405161238191906132bd565b60405180910390a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075481565b600b60149054906101000a900460ff1681565b5f838311158290612410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124079190613360565b60405180910390fd5b505f838561241e9190613bba565b9050809150509392505050565b5f600b60169054906101000a900460ff16156124535761244c8484846129d2565b9050612801565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156124f1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561254657600b60149054906101000a900460ff16612545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253c90614084565b60405180910390fd5b5b5f61255c600e54846128f790919063ffffffff16565b9050612566612bc9565b1561257457612573612c9b565b5b6125fb816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123c99092919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126d8575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126ec576126e7868387612fbf565b6126ee565b815b90506127408160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289a90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6127e5600e548561285190919063ffffffff16565b6040516127f291906132bd565b60405180910390a36001925050505b9392505050565b5f61284983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123c9565b905092915050565b5f61289283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131eb565b905092915050565b5f8082846128a89190613976565b9050838110156128ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e4906140ec565b60405180910390fd5b8091505092915050565b5f808303612907575f9050612968565b5f828461291491906138d8565b90508284826129239190613946565b14612963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295a9061417a565b60405180910390fd5b809150505b92915050565b5f80828461297c9190614198565b905060ff6001901b811415806129a0575060ff6001901b831660ff6001901b851614155b6129a8575f80fd5b5f8314806129c057508383826129be919061420e565b145b6129c8575f80fd5b8091505092915050565b5f806129e9600e54846128f790919063ffffffff16565b9050612a72816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123c99092919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b038160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612ba8600e548561285190919063ffffffff16565b604051612bb591906132bd565b60405180910390a360019150509392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c335750600b60169054906101000a900460ff16155b8015612c4b5750600b60159054906101000a900460ff165b8015612c96575060105460015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600b60166101000a81548160ff0219169083151502179055505f612cce600e5460105461285190919063ffffffff16565b90505f600267ffffffffffffffff811115612cec57612ceb614276565b5b604051908082528060200260200182016040528015612d1a5781602001602082028036833780820191505090505b50905030815f81518110612d3157612d306142a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612da057612d9f6142a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f4790507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612e3f9594939291906143c0565b5f604051808303815f87803b158015612e56575f80fd5b505af1158015612e68573d5f803e3d5ffd5b505050505f8147612e799190613bba565b90505f612ea5600654612e97600454856128f790919063ffffffff16565b61285190919063ffffffff16565b90505f612ed1600654612ec3600554866128f790919063ffffffff16565b61285190919063ffffffff16565b9050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612f37573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612f9c573d5f803e3d5ffd5b505050505050505f600b60166101000a81548160ff021916908315150217905550565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614613078577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461306f57600954613073565b6007545b61307c565b6008545b90505f84148061308b57505f81145b1561309957839150506131e4565b5f61271082600654876130ac91906138d8565b6130b691906138d8565b6130c09190613946565b90506131128160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6131b7600e548561285190919063ffffffff16565b6040516131c491906132bd565b60405180910390a36131df818661280890919063ffffffff16565b925050505b9392505050565b5f8083118290613231576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132289190613360565b60405180910390fd5b505f838561323f9190613946565b9050809150509392505050565b5f80fd5b5f819050919050565b61326281613250565b811461326c575f80fd5b50565b5f8135905061327d81613259565b92915050565b5f602082840312156132985761329761324c565b5b5f6132a58482850161326f565b91505092915050565b6132b781613250565b82525050565b5f6020820190506132d05f8301846132ae565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561330d5780820151818401526020810190506132f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613332826132d6565b61333c81856132e0565b935061334c8185602086016132f0565b61335581613318565b840191505092915050565b5f6020820190508181035f8301526133788184613328565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133a982613380565b9050919050565b6133b98161339f565b81146133c3575f80fd5b50565b5f813590506133d4816133b0565b92915050565b5f80604083850312156133f0576133ef61324c565b5b5f6133fd858286016133c6565b925050602061340e8582860161326f565b9150509250929050565b5f8115159050919050565b61342c81613418565b82525050565b5f6020820190506134455f830184613423565b92915050565b5f80604083850312156134615761346061324c565b5b5f61346e8582860161326f565b925050602061347f8582860161326f565b9150509250929050565b5f805f606084860312156134a05761349f61324c565b5b5f6134ad868287016133c6565b93505060206134be868287016133c6565b92505060406134cf8682870161326f565b9150509250925092565b5f602082840312156134ee576134ed61324c565b5b5f6134fb848285016133c6565b91505092915050565b5f60ff82169050919050565b61351981613504565b82525050565b5f6020820190506135325f830184613510565b92915050565b5f819050919050565b5f61355b61355661355184613380565b613538565b613380565b9050919050565b5f61356c82613541565b9050919050565b5f61357d82613562565b9050919050565b61358d81613573565b82525050565b5f6020820190506135a65f830184613584565b92915050565b6135b581613418565b81146135bf575f80fd5b50565b5f813590506135d0816135ac565b92915050565b5f80604083850312156135ec576135eb61324c565b5b5f6135f9858286016133c6565b925050602061360a858286016135c2565b9150509250929050565b5f805f6060848603121561362b5761362a61324c565b5b5f6136388682870161326f565b93505060206136498682870161326f565b925050604061365a8682870161326f565b9150509250925092565b5f819050919050565b61367681613664565b8114613680575f80fd5b50565b5f813590506136918161366d565b92915050565b5f80604083850312156136ad576136ac61324c565b5b5f6136ba8582860161326f565b92505060206136cb85828601613683565b9150509250929050565b6136de8161339f565b82525050565b5f6020820190506136f75f8301846136d5565b92915050565b5f602082840312156137125761371161324c565b5b5f61371f848285016135c2565b91505092915050565b5f806040838503121561373e5761373d61324c565b5b5f61374b8582860161326f565b925050602061375c858286016135c2565b9150509250929050565b5f806040838503121561377c5761377b61324c565b5b5f613789858286016133c6565b925050602061379a858286016133c6565b9150509250929050565b5f6137ae82613380565b9050919050565b6137be816137a4565b81146137c8575f80fd5b50565b5f813590506137d9816137b5565b92915050565b5f602082840312156137f4576137f361324c565b5b5f613801848285016137cb565b91505092915050565b5f61381482613562565b9050919050565b6138248161380a565b82525050565b5f60208201905061383d5f83018461381b565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f6138776006836132e0565b915061388282613843565b602082019050919050565b5f6020820190508181035f8301526138a48161386b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138e282613250565b91506138ed83613250565b92508282026138fb81613250565b91508282048414831517613912576139116138ab565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61395082613250565b915061395b83613250565b92508261396b5761396a613919565b5b828204905092915050565b5f61398082613250565b915061398b83613250565b92508282019050808211156139a3576139a26138ab565b5b92915050565b7f73706c6974206e6565647320746f20746f74616c20746f2031300000000000005f82015250565b5f6139dd601a836132e0565b91506139e8826139a9565b602082019050919050565b5f6020820190508181035f830152613a0a816139d1565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613a6657808604811115613a4257613a416138ab565b5b6001851615613a515780820291505b8081029050613a5f85613a11565b9450613a26565b94509492505050565b5f82613a7e5760019050613b39565b81613a8b575f9050613b39565b8160018114613aa15760028114613aab57613ada565b6001915050613b39565b60ff841115613abd57613abc6138ab565b5b8360020a915084821115613ad457613ad36138ab565b5b50613b39565b5060208310610133831016604e8410600b8410161715613b0f5782820a905083811115613b0a57613b096138ab565b5b613b39565b613b1c8484846001613a1d565b92509050818404811115613b3357613b326138ab565b5b81810290505b9392505050565b5f613b4a82613250565b9150613b5583613504565b9250613b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a6f565b905092915050565b5f613b9482613250565b9150613b9f83613250565b925082613baf57613bae613919565b5b828206905092915050565b5f613bc482613250565b9150613bcf83613250565b9250828203905081811115613be757613be66138ab565b5b92915050565b5f81519050613bfb81613259565b92915050565b5f60208284031215613c1657613c1561324c565b5b5f613c2384828501613bed565b91505092915050565b5f604082019050613c3f5f8301856136d5565b613c4c60208301846132ae565b9392505050565b5f81519050613c61816135ac565b92915050565b5f60208284031215613c7c57613c7b61324c565b5b5f613c8984828501613c53565b91505092915050565b7f43616c6c6572206973206e6f74207468652072656261736520636f6e74726f6c5f8201527f6c6572206f72206f776e65720000000000000000000000000000000000000000602082015250565b5f613cec602c836132e0565b9150613cf782613c92565b604082019050919050565b5f6020820190508181035f830152613d1981613ce0565b9050919050565b7f427579207461782063616e6e6f74206265206d6f7265207468616e20323025005f82015250565b5f613d54601f836132e0565b9150613d5f82613d20565b602082019050919050565b5f6020820190508181035f830152613d8181613d48565b9050919050565b7f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230255f82015250565b5f613dbc6020836132e0565b9150613dc782613d88565b602082019050919050565b5f6020820190508181035f830152613de981613db0565b9050919050565b7f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e5f8201527f2032302500000000000000000000000000000000000000000000000000000000602082015250565b5f613e4a6024836132e0565b9150613e5582613df0565b604082019050919050565b5f6020820190508181035f830152613e7781613e3e565b9050919050565b5f613e8882613250565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613eba57613eb96138ab565b5b600182019050919050565b7f54727920616761696e00000000000000000000000000000000000000000000005f82015250565b5f613ef96009836132e0565b9150613f0482613ec5565b602082019050919050565b5f6020820190508181035f830152613f2681613eed565b9050919050565b5f613f3782613664565b91507f80000000000000000000000000000000000000000000000000000000000000008203613f6957613f686138ab565b5b815f039050919050565b5f613f7d82613562565b9050919050565b613f8d81613f73565b82525050565b5f602082019050613fa65f830184613f84565b92915050565b7f524542415345544f4b454e3a2043616e6e6f74207265736574207265626173655f8201527f207768696c652061207377617020697320696e2070726f67726573732e000000602082015250565b5f614006603d836132e0565b915061401182613fac565b604082019050919050565b5f6020820190508181035f83015261403381613ffa565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f61406e6014836132e0565b91506140798261403a565b602082019050919050565b5f6020820190508181035f83015261409b81614062565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6140d6601b836132e0565b91506140e1826140a2565b602082019050919050565b5f6020820190508181035f830152614103816140ca565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141646021836132e0565b915061416f8261410a565b604082019050919050565b5f6020820190508181035f83015261419181614158565b9050919050565b5f6141a282613664565b91506141ad83613664565b92508282026141bb81613664565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156141f2576141f16138ab565b5b8282058414831517614207576142066138ab565b5b5092915050565b5f61421882613664565b915061422383613664565b92508261423357614232613919565b5b60015f0383147f80000000000000000000000000000000000000000000000000000000000000008314161561426b5761426a6138ab565b5b828205905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6142f36142ee6142e9846142d0565b613538565b613250565b9050919050565b614303816142d9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61433b8161339f565b82525050565b5f61434c8383614332565b60208301905092915050565b5f602082019050919050565b5f61436e82614309565b6143788185614313565b935061438383614323565b805f5b838110156143b357815161439a8882614341565b97506143a583614358565b925050600181019050614386565b5085935050505092915050565b5f60a0820190506143d35f8301886132ae565b6143e060208301876142fa565b81810360408301526143f28186614364565b905061440160608301856136d5565b61440e60808301846132ae565b969550505050505056fea2646970667358221220c9a7e8be33de0f12e34aad06154627fa3b25496bb9b555f654352f6d3759b4ad64736f6c63430008180033

Deployed Bytecode

0x6080604052600436106102cc575f3560e01c80636d351d1a1161017457806395d89b41116100db578063dd62ed3e11610094578063f47bd5311161006e578063f47bd53114610ac7578063f887ea4014610add578063fed0d2a114610b07578063ffb54a9914610b31576102d3565b8063dd62ed3e14610a39578063e96fada214610a75578063f2fde38b14610a9f576102d3565b806395d89b411461092f578063a4b45c0014610959578063a8aa1b3114610981578063a9059cbb146109ab578063bc5302c9146109e7578063dab84ee714610a0f576102d3565b80637a43e23f1161012d5780637a43e23f1461082557806383da8357146108615780638a8c523c1461088b5780638da5cb5b146108a15780639291e00a146108cb57806393028afd146108f3576102d3565b80636d351d1a146107415780636ddd17131461076b57806370a0823114610795578063715018a6146107d1578063753d02a1146107e7578063796431d0146107fd576102d3565b80633121c7c0116102335780634d709adf116101ec578063658d4b7f116101c6578063658d4b7f1461069d5780636827e764146106c55780636b67c4df146106ef5780636ce46bc314610719576102d3565b80634d709adf1461060d578063571ac8b0146106375780635921652f14610673576102d3565b80633121c7c014610501578063313ce5671461052b57806333f3d62814610555578063364333f4146105915780633eaaf86b146105a75780633f4218e0146105d1576102d3565b806318160ddd1161028557806318160ddd146103e15780631df4ccfc1461040b57806323b872dd146104355780632b112e49146104715780632c4e722e1461049b5780632f54bf6e146104c5576102d3565b8063014cd4a8146102d75780630445b667146102ff57806306fdde0314610329578063095ea7b3146103535780630a92570f1461038f5780630b78f9c0146103b9576102d3565b366102d357005b5f80fd5b3480156102e2575f80fd5b506102fd60048036038101906102f89190613283565b610b5b565b005b34801561030a575f80fd5b50610313610bd4565b60405161032091906132bd565b60405180910390f35b348015610334575f80fd5b5061033d610bda565b60405161034a9190613360565b60405180910390f35b34801561035e575f80fd5b50610379600480360381019061037491906133da565b610c13565b6040516103869190613432565b60405180910390f35b34801561039a575f80fd5b506103a3610d00565b6040516103b091906132bd565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da919061344b565b610d06565b005b3480156103ec575f80fd5b506103f5610db7565b60405161040291906132bd565b60405180910390f35b348015610416575f80fd5b5061041f610dc0565b60405161042c91906132bd565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190613489565b610dc6565b6040516104689190613432565b60405180910390f35b34801561047c575f80fd5b50610485610fb9565b60405161049291906132bd565b60405180910390f35b3480156104a6575f80fd5b506104af6110a9565b6040516104bc91906132bd565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e691906134d9565b6110af565b6040516104f89190613432565b60405180910390f35b34801561050c575f80fd5b50610515611106565b60405161052291906132bd565b60405180910390f35b348015610536575f80fd5b5061053f61110c565b60405161054c919061351f565b60405180910390f35b348015610560575f80fd5b5061057b600480360381019061057691906133da565b611111565b6040516105889190613432565b60405180910390f35b34801561059c575f80fd5b506105a5611280565b005b3480156105b2575f80fd5b506105bb61138b565b6040516105c891906132bd565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f291906134d9565b611391565b6040516106049190613432565b60405180910390f35b348015610618575f80fd5b506106216113ae565b60405161062e9190613593565b60405180910390f35b348015610642575f80fd5b5061065d600480360381019061065891906134d9565b6113d2565b60405161066a9190613432565b60405180910390f35b34801561067e575f80fd5b50610687611404565b60405161069491906132bd565b60405180910390f35b3480156106a8575f80fd5b506106c360048036038101906106be91906135d6565b61140a565b005b3480156106d0575f80fd5b506106d96114aa565b6040516106e691906132bd565b60405180910390f35b3480156106fa575f80fd5b506107036114b0565b60405161071091906132bd565b60405180910390f35b348015610724575f80fd5b5061073f600480360381019061073a9190613614565b6114b6565b005b34801561074c575f80fd5b506107556115ea565b60405161076291906132bd565b60405180910390f35b348015610776575f80fd5b5061077f611607565b60405161078c9190613432565b60405180910390f35b3480156107a0575f80fd5b506107bb60048036038101906107b691906134d9565b61161a565b6040516107c891906132bd565b60405180910390f35b3480156107dc575f80fd5b506107e5611674565b005b3480156107f2575f80fd5b506107fb611753565b005b348015610808575f80fd5b50610823600480360381019061081e9190613283565b6117d0565b005b348015610830575f80fd5b5061084b60048036038101906108469190613697565b611822565b60405161085891906132bd565b60405180910390f35b34801561086c575f80fd5b50610875611b17565b60405161088291906136e4565b60405180910390f35b348015610896575f80fd5b5061089f611b3c565b005b3480156108ac575f80fd5b506108b5611bbc565b6040516108c291906136e4565b60405180910390f35b3480156108d6575f80fd5b506108f160048036038101906108ec91906136fd565b611bdf565b005b3480156108fe575f80fd5b5061091960048036038101906109149190613728565b611c44565b60405161092691906132bd565b60405180910390f35b34801561093a575f80fd5b50610943611d90565b6040516109509190613360565b60405180910390f35b348015610964575f80fd5b5061097f600480360381019061097a9190613766565b611dc9565b005b34801561098c575f80fd5b50610995611e95565b6040516109a291906136e4565b60405180910390f35b3480156109b6575f80fd5b506109d160048036038101906109cc91906133da565b611eb9565b6040516109de9190613432565b60405180910390f35b3480156109f2575f80fd5b50610a0d6004803603810190610a0891906134d9565b611ecd565b005b348015610a1a575f80fd5b50610a23611f58565b604051610a3091906136e4565b60405180910390f35b348015610a44575f80fd5b50610a5f6004803603810190610a5a9190613766565b611f7d565b604051610a6c91906132bd565b60405180910390f35b348015610a80575f80fd5b50610a89611fff565b604051610a9691906136e4565b60405180910390f35b348015610aaa575f80fd5b50610ac56004803603810190610ac091906137df565b612024565b005b348015610ad2575f80fd5b50610adb6120e5565b005b348015610ae8575f80fd5b50610af161238c565b604051610afe919061382a565b60405180910390f35b348015610b12575f80fd5b50610b1b6123b0565b604051610b2891906132bd565b60405180910390f35b348015610b3c575f80fd5b50610b456123b6565b604051610b529190613432565b60405180910390f35b610b64336110af565b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a9061388d565b60405180910390fd5b600e546103e882600f54610bb791906138d8565b610bc19190613946565b610bcb91906138d8565b60108190555050565b60105481565b6040518060400160405280601281526020017f466c69702054686520436869687561687561000000000000000000000000000081525081565b5f8160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cee91906132bd565b60405180910390a36001905092915050565b600d5481565b610d0f336110af565b610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d459061388d565b60405180910390fd5b81600481905550806005819055508082610d689190613976565b600681905550600a60065414610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906139f3565b60405180910390fd5b5050565b5f600f54905090565b60065481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610fa557610f28826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123c99092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610fb084848461242b565b90509392505050565b5f6110a4600e5461109660015f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461108860015f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546009600a6110529190613b40565b64e8d4a5100061106291906138d8565b5f1961106e9190613b8a565b5f1961107a9190613bba565b61280890919063ffffffff16565b61280890919063ffffffff16565b61285190919063ffffffff16565b905090565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60085481565b600981565b5f61111b336110af565b61115a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111519061388d565b60405180910390fd5b5f82036111dc578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161119a91906136e4565b602060405180830381865afa1580156111b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d99190613c01565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611238929190613c2c565b6020604051808303815f875af1158015611254573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112789190613c67565b905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112e057506112df336110af565b5b61131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613d02565b60405180910390fd5b5f479050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611387573d5f803e3d5ffd5b5050565b600f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5681565b5f6113fd827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c13565b9050919050565b60095481565b611413336110af565b611452576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114499061388d565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60055481565b60045481565b6114bf336110af565b6114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f59061388d565b60405180910390fd5b82600881905550816007819055508060098190555060c86008541115611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090613d6a565b60405180910390fd5b60c8600754111561159f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159690613dd2565b60405180910390fd5b60c860095411156115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613e60565b60405180910390fd5b505050565b5f611602600e5460105461285190919063ffffffff16565b905090565b600b60159054906101000a900460ff1681565b5f61166d600e5460015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461285190919063ffffffff16565b9050919050565b61167d336110af565b6116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b39061388d565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161174991906136e4565b60405180910390a1565b7f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156117b8575f80fd5b505af11580156117ca573d5f803e3d5ffd5b50505050565b6117d9336110af565b611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f9061388d565b60405180910390fd5b8060108190555050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118835750611882336110af565b5b6118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990613d02565b60405180910390fd5b600d5f8154809291906118d490613e7e565b91905055505f83036118e657600d5492505b600b60169054906101000a900460ff1615611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90613f0f565b60405180910390fd5b5f820361198157827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f5460405161196f91906132bd565b60405180910390a2600f549050611b11565b5f8212156119b2576119a78261199690613f2d565b600f5461280890919063ffffffff16565b600f819055506119ce565b6119c782600f5461289a90919063ffffffff16565b600f819055505b5f196fffffffffffffffffffffffffffffffff16600f541115611a06575f196fffffffffffffffffffffffffffffffff16600f819055505b611a50600f546009600a611a1a9190613b40565b64e8d4a51000611a2a91906138d8565b5f19611a369190613b8a565b5f19611a429190613bba565b61285190919063ffffffff16565b600e819055507f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611abb575f80fd5b505af1158015611acd573d5f803e3d5ffd5b50505050827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f54604051611b0391906132bd565b60405180910390a2600f5490505b92915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b45336110af565b611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b9061388d565b60405180910390fd5b6001600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be8336110af565b611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e9061388d565b60405180910390fd5b80600b60156101000a81548160ff02191690831515021790555050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ca55750611ca4336110af565b5b611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613d02565b60405180910390fd5b8115611d5557611d4e5f611d497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611d3b87611d2d612710600f5461285190919063ffffffff16565b6128f790919063ffffffff16565b61296e90919063ffffffff16565b611822565b9050611d8a565b611d875f611d8285611d74612710600f5461285190919063ffffffff16565b6128f790919063ffffffff16565b611822565b90505b92915050565b6040518060400160405280600481526020017f466c69700000000000000000000000000000000000000000000000000000000081525081565b611dd2336110af565b611e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e089061388d565b60405180910390fd5b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b7f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5681565b5f611ec533848461242b565b905092915050565b611ed6336110af565b611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9061388d565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61202d336110af565b61206c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120639061388d565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120da9190613f93565b60405180910390a150565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121455750612144336110af565b5b612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90613d02565b60405180910390fd5b600d5f81548092919061219690613e7e565b91905055505f600d549050600b60169054906101000a900460ff16156121f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e89061401c565b60405180910390fd5b6009600a6121ff9190613b40565b64e8d4a5100061220f91906138d8565b600f8190555061227a6009600a6122269190613b40565b64e8d4a5100061223691906138d8565b6009600a6122449190613b40565b64e8d4a5100061225491906138d8565b5f196122609190613b8a565b5f1961226c9190613bba565b61285190919063ffffffff16565b600e819055505f73ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff161461234f577f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612338575f80fd5b505af115801561234a573d5f803e3d5ffd5b505050505b807f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600f5460405161238191906132bd565b60405180910390a250565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60075481565b600b60149054906101000a900460ff1681565b5f838311158290612410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124079190613360565b60405180910390fd5b505f838561241e9190613bba565b9050809150509392505050565b5f600b60169054906101000a900460ff16156124535761244c8484846129d2565b9050612801565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156124f1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561254657600b60149054906101000a900460ff16612545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253c90614084565b60405180910390fd5b5b5f61255c600e54846128f790919063ffffffff16565b9050612566612bc9565b1561257457612573612c9b565b5b6125fb816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123c99092919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806126d8575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126ec576126e7868387612fbf565b6126ee565b815b90506127408160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289a90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6127e5600e548561285190919063ffffffff16565b6040516127f291906132bd565b60405180910390a36001925050505b9392505050565b5f61284983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123c9565b905092915050565b5f61289283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131eb565b905092915050565b5f8082846128a89190613976565b9050838110156128ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e4906140ec565b60405180910390fd5b8091505092915050565b5f808303612907575f9050612968565b5f828461291491906138d8565b90508284826129239190613946565b14612963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295a9061417a565b60405180910390fd5b809150505b92915050565b5f80828461297c9190614198565b905060ff6001901b811415806129a0575060ff6001901b831660ff6001901b851614155b6129a8575f80fd5b5f8314806129c057508383826129be919061420e565b145b6129c8575f80fd5b8091505092915050565b5f806129e9600e54846128f790919063ffffffff16565b9050612a72816040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123c99092919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b038160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612ba8600e548561285190919063ffffffff16565b604051612bb591906132bd565b60405180910390a360019150509392505050565b5f7f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c335750600b60169054906101000a900460ff16155b8015612c4b5750600b60159054906101000a900460ff165b8015612c96575060105460015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600b60166101000a81548160ff0219169083151502179055505f612cce600e5460105461285190919063ffffffff16565b90505f600267ffffffffffffffff811115612cec57612ceb614276565b5b604051908082528060200260200182016040528015612d1a5781602001602082028036833780820191505090505b50905030815f81518110612d3157612d306142a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612da057612d9f6142a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f4790507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612e3f9594939291906143c0565b5f604051808303815f87803b158015612e56575f80fd5b505af1158015612e68573d5f803e3d5ffd5b505050505f8147612e799190613bba565b90505f612ea5600654612e97600454856128f790919063ffffffff16565b61285190919063ffffffff16565b90505f612ed1600654612ec3600554866128f790919063ffffffff16565b61285190919063ffffffff16565b9050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612f37573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612f9c573d5f803e3d5ffd5b505050505050505f600b60166101000a81548160ff021916908315150217905550565b5f807f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614613078577f000000000000000000000000b0bea78726c3feafcffa674a30351d7f2e0d2e5673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461306f57600954613073565b6007545b61307c565b6008545b90505f84148061308b57505f81145b1561309957839150506131e4565b5f61271082600654876130ac91906138d8565b6130b691906138d8565b6130c09190613946565b90506131128160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6131b7600e548561285190919063ffffffff16565b6040516131c491906132bd565b60405180910390a36131df818661280890919063ffffffff16565b925050505b9392505050565b5f8083118290613231576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132289190613360565b60405180910390fd5b505f838561323f9190613946565b9050809150509392505050565b5f80fd5b5f819050919050565b61326281613250565b811461326c575f80fd5b50565b5f8135905061327d81613259565b92915050565b5f602082840312156132985761329761324c565b5b5f6132a58482850161326f565b91505092915050565b6132b781613250565b82525050565b5f6020820190506132d05f8301846132ae565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561330d5780820151818401526020810190506132f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613332826132d6565b61333c81856132e0565b935061334c8185602086016132f0565b61335581613318565b840191505092915050565b5f6020820190508181035f8301526133788184613328565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133a982613380565b9050919050565b6133b98161339f565b81146133c3575f80fd5b50565b5f813590506133d4816133b0565b92915050565b5f80604083850312156133f0576133ef61324c565b5b5f6133fd858286016133c6565b925050602061340e8582860161326f565b9150509250929050565b5f8115159050919050565b61342c81613418565b82525050565b5f6020820190506134455f830184613423565b92915050565b5f80604083850312156134615761346061324c565b5b5f61346e8582860161326f565b925050602061347f8582860161326f565b9150509250929050565b5f805f606084860312156134a05761349f61324c565b5b5f6134ad868287016133c6565b93505060206134be868287016133c6565b92505060406134cf8682870161326f565b9150509250925092565b5f602082840312156134ee576134ed61324c565b5b5f6134fb848285016133c6565b91505092915050565b5f60ff82169050919050565b61351981613504565b82525050565b5f6020820190506135325f830184613510565b92915050565b5f819050919050565b5f61355b61355661355184613380565b613538565b613380565b9050919050565b5f61356c82613541565b9050919050565b5f61357d82613562565b9050919050565b61358d81613573565b82525050565b5f6020820190506135a65f830184613584565b92915050565b6135b581613418565b81146135bf575f80fd5b50565b5f813590506135d0816135ac565b92915050565b5f80604083850312156135ec576135eb61324c565b5b5f6135f9858286016133c6565b925050602061360a858286016135c2565b9150509250929050565b5f805f6060848603121561362b5761362a61324c565b5b5f6136388682870161326f565b93505060206136498682870161326f565b925050604061365a8682870161326f565b9150509250925092565b5f819050919050565b61367681613664565b8114613680575f80fd5b50565b5f813590506136918161366d565b92915050565b5f80604083850312156136ad576136ac61324c565b5b5f6136ba8582860161326f565b92505060206136cb85828601613683565b9150509250929050565b6136de8161339f565b82525050565b5f6020820190506136f75f8301846136d5565b92915050565b5f602082840312156137125761371161324c565b5b5f61371f848285016135c2565b91505092915050565b5f806040838503121561373e5761373d61324c565b5b5f61374b8582860161326f565b925050602061375c858286016135c2565b9150509250929050565b5f806040838503121561377c5761377b61324c565b5b5f613789858286016133c6565b925050602061379a858286016133c6565b9150509250929050565b5f6137ae82613380565b9050919050565b6137be816137a4565b81146137c8575f80fd5b50565b5f813590506137d9816137b5565b92915050565b5f602082840312156137f4576137f361324c565b5b5f613801848285016137cb565b91505092915050565b5f61381482613562565b9050919050565b6138248161380a565b82525050565b5f60208201905061383d5f83018461381b565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f6138776006836132e0565b915061388282613843565b602082019050919050565b5f6020820190508181035f8301526138a48161386b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138e282613250565b91506138ed83613250565b92508282026138fb81613250565b91508282048414831517613912576139116138ab565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61395082613250565b915061395b83613250565b92508261396b5761396a613919565b5b828204905092915050565b5f61398082613250565b915061398b83613250565b92508282019050808211156139a3576139a26138ab565b5b92915050565b7f73706c6974206e6565647320746f20746f74616c20746f2031300000000000005f82015250565b5f6139dd601a836132e0565b91506139e8826139a9565b602082019050919050565b5f6020820190508181035f830152613a0a816139d1565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613a6657808604811115613a4257613a416138ab565b5b6001851615613a515780820291505b8081029050613a5f85613a11565b9450613a26565b94509492505050565b5f82613a7e5760019050613b39565b81613a8b575f9050613b39565b8160018114613aa15760028114613aab57613ada565b6001915050613b39565b60ff841115613abd57613abc6138ab565b5b8360020a915084821115613ad457613ad36138ab565b5b50613b39565b5060208310610133831016604e8410600b8410161715613b0f5782820a905083811115613b0a57613b096138ab565b5b613b39565b613b1c8484846001613a1d565b92509050818404811115613b3357613b326138ab565b5b81810290505b9392505050565b5f613b4a82613250565b9150613b5583613504565b9250613b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a6f565b905092915050565b5f613b9482613250565b9150613b9f83613250565b925082613baf57613bae613919565b5b828206905092915050565b5f613bc482613250565b9150613bcf83613250565b9250828203905081811115613be757613be66138ab565b5b92915050565b5f81519050613bfb81613259565b92915050565b5f60208284031215613c1657613c1561324c565b5b5f613c2384828501613bed565b91505092915050565b5f604082019050613c3f5f8301856136d5565b613c4c60208301846132ae565b9392505050565b5f81519050613c61816135ac565b92915050565b5f60208284031215613c7c57613c7b61324c565b5b5f613c8984828501613c53565b91505092915050565b7f43616c6c6572206973206e6f74207468652072656261736520636f6e74726f6c5f8201527f6c6572206f72206f776e65720000000000000000000000000000000000000000602082015250565b5f613cec602c836132e0565b9150613cf782613c92565b604082019050919050565b5f6020820190508181035f830152613d1981613ce0565b9050919050565b7f427579207461782063616e6e6f74206265206d6f7265207468616e20323025005f82015250565b5f613d54601f836132e0565b9150613d5f82613d20565b602082019050919050565b5f6020820190508181035f830152613d8181613d48565b9050919050565b7f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230255f82015250565b5f613dbc6020836132e0565b9150613dc782613d88565b602082019050919050565b5f6020820190508181035f830152613de981613db0565b9050919050565b7f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e5f8201527f2032302500000000000000000000000000000000000000000000000000000000602082015250565b5f613e4a6024836132e0565b9150613e5582613df0565b604082019050919050565b5f6020820190508181035f830152613e7781613e3e565b9050919050565b5f613e8882613250565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613eba57613eb96138ab565b5b600182019050919050565b7f54727920616761696e00000000000000000000000000000000000000000000005f82015250565b5f613ef96009836132e0565b9150613f0482613ec5565b602082019050919050565b5f6020820190508181035f830152613f2681613eed565b9050919050565b5f613f3782613664565b91507f80000000000000000000000000000000000000000000000000000000000000008203613f6957613f686138ab565b5b815f039050919050565b5f613f7d82613562565b9050919050565b613f8d81613f73565b82525050565b5f602082019050613fa65f830184613f84565b92915050565b7f524542415345544f4b454e3a2043616e6e6f74207265736574207265626173655f8201527f207768696c652061207377617020697320696e2070726f67726573732e000000602082015250565b5f614006603d836132e0565b915061401182613fac565b604082019050919050565b5f6020820190508181035f83015261403381613ffa565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f61406e6014836132e0565b91506140798261403a565b602082019050919050565b5f6020820190508181035f83015261409b81614062565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6140d6601b836132e0565b91506140e1826140a2565b602082019050919050565b5f6020820190508181035f830152614103816140ca565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6141646021836132e0565b915061416f8261410a565b604082019050919050565b5f6020820190508181035f83015261419181614158565b9050919050565b5f6141a282613664565b91506141ad83613664565b92508282026141bb81613664565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156141f2576141f16138ab565b5b8282058414831517614207576142066138ab565b5b5092915050565b5f61421882613664565b915061422383613664565b92508261423357614232613919565b5b60015f0383147f80000000000000000000000000000000000000000000000000000000000000008314161561426b5761426a6138ab565b5b828205905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6142f36142ee6142e9846142d0565b613538565b613250565b9050919050565b614303816142d9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61433b8161339f565b82525050565b5f61434c8383614332565b60208301905092915050565b5f602082019050919050565b5f61436e82614309565b6143788185614313565b935061438383614323565b805f5b838110156143b357815161439a8882614341565b97506143a583614358565b925050600181019050614386565b5085935050505092915050565b5f60a0820190506143d35f8301886132ae565b6143e060208301876142fa565b81810360408301526143f28186614364565b905061440160608301856136d5565b61440e60808301846132ae565b969550505050505056fea2646970667358221220c9a7e8be33de0f12e34aad06154627fa3b25496bb9b555f654352f6d3759b4ad64736f6c63430008180033

Deployed Bytecode Sourcemap

4176:11208:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14374:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6022:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4428:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8976:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5715:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13221:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8598:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4811:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9898:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15164:149;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5753:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3185:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4530;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14868:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11951:173;;;;;;;;;;;;;:::i;:::-;;5779:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4688:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5155:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9204:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4950:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13094:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4779:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4741:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13488:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14745:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5246:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8694:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:128;;;;;;;;;;;;;:::i;:::-;;14543:74;;;;;;;;;;;;;:::i;:::-;;14257:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7765:821;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12132:110;;;;;;;;;;;;;:::i;:::-;;2998:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14150:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6850:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13935:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5119:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9734:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14625:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5040:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8835:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4998:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3296:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7245:498;;;;;;;;;;;;;:::i;:::-;;5078:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4867:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5206:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14374:157;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14519:4:::1;;14511;14496:12;14481;;:27;;;;:::i;:::-;:34;;;;:::i;:::-;14480:43;;;;:::i;:::-;14464:13;:59;;;;14374:157:::0;:::o;6022:28::-;;;;:::o;4428:50::-;;;;;;;;;;;;;;;;;;;:::o;8976:216::-;9051:4;9103:6;9068:11;:23;9080:10;9068:23;;;;;;;;;;;;;;;:32;9092:7;9068:32;;;;;;;;;;;;;;;:41;;;;9146:7;9125:37;;9134:10;9125:37;;;9155:6;9125:37;;;;;;:::i;:::-;;;;;;;;9180:4;9173:11;;8976:216;;;;:::o;5715:31::-;;;;:::o;13221:259::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13323:13:::1;13308:12;:28;;;;13356:7;13347:6;:16;;;;13401:7;13385:13;:23;;;;:::i;:::-;13374:8;:34;;;;13439:2;13427:8;;:14;13419:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13221:259:::0;;:::o;8598:88::-;8653:7;8671:12;;8664:19;;8598:88;:::o;4811:47::-;;;;:::o;9898:370::-;9998:4;10053:17;10018:11;:19;10030:6;10018:19;;;;;;;;;;;;;;;:31;10038:10;10018:31;;;;;;;;;;;;;;;;:52;10015:186;;10120:69;10156:6;10120:69;;;;;;;;;;;;;;;;;:11;:19;10132:6;10120:19;;;;;;;;;;;;;;;:31;10140:10;10120:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10086:11;:19;10098:6;10086:19;;;;;;;;;;;;;;;:31;10106:10;10086:31;;;;;;;;;;;;;;;:103;;;;10015:186;10220:40;10234:6;10242:9;10253:6;10220:13;:40::i;:::-;10213:47;;9898:370;;;;;:::o;15164:149::-;15217:7;15244:61;15300:4;;15245:49;15278:9;:15;4417:1;15278:15;;;;;;;;;;;;;;;;15245:28;15257:9;:15;4336:42;15257:15;;;;;;;;;;;;;;;;4563:1;5696:2;:12;;;;:::i;:::-;5676:17;:32;;;;:::i;:::-;5861:1;5852:11;5976:38;;;;:::i;:::-;5861:1;5852:11;5961:54;;;;:::i;:::-;15245:11;;:28;;;;:::i;:::-;:32;;:49;;;;:::i;:::-;15244:55;;:61;;;;:::i;:::-;15237:68;;15164:149;:::o;5753:19::-;;;;:::o;3185:103::-;3240:4;3275:5;;;;;;;;;;;3264:16;;:7;:16;;;3257:23;;3185:103;;;:::o;4909:34::-;;;;:::o;4530:::-;4563:1;4530:34;:::o;14868:286::-;14955:12;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14993:1:::1;14983:6;:11:::0;14980:96:::1;;15026:12;15019:30;;;15058:4;15019:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15010:54;;14980:96;15100:12;15093:29;;;15123:14;;;;;;;;;;;15139:6;15093:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15086:60;;14868:286:::0;;;;:::o;11951:173::-;5470:16;;;;;;;;;;;5456:30;;:10;:30;;;:53;;;;5490:19;5498:10;5490:7;:19::i;:::-;5456:53;5448:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;12021:17:::1;12041:21;12021:41;;12081:14;;;;;;;;;;;12073:32;;:43;12106:9;12073:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12010:114;11951:173::o:0;5779:27::-;;;;:::o;4688:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;5155:41::-;;;:::o;9204:122::-;9259:4;9283:35;9291:7;9300:17;9283:7;:35::i;:::-;9276:42;;9204:122;;;:::o;4950:39::-;;;;:::o;13094:119::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13199:6:::1;13177:11;:19;13189:6;13177:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13094:119:::0;;:::o;4779:25::-;;;;:::o;4741:31::-;;;;:::o;13488:437::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13603:4:::1;13587:13;:20;;;;13635:5;13618:14;:22;;;;13672:6;13651:18;:27;;;;13716:3;13699:13;;:20;;13691:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13792:3;13774:14;;:21;;13766:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13873:3;13851:18;;:25;;13843:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13488:437:::0;;;:::o;14745:111::-;14798:7;14825:23;14843:4;;14825:13;;:17;;:23;;;;:::i;:::-;14818:30;;14745:111;:::o;5246:31::-;;;;;;;;;;;;;:::o;8694:129::-;8760:7;8787:28;8810:4;;8787:9;:18;8797:7;8787:18;;;;;;;;;;;;;;;;:22;;:28;;;;:::i;:::-;8780:35;;8694:129;;;:::o;3455:128::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3530:1:::1;3514:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3548:27;3569:5;::::0;::::1;;;;;;;;3548:27;;;;;;:::i;:::-;;;;;;;;3455:128::o:0;14543:74::-;14597:4;14585:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14543:74::o;14257:109::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14350:8:::1;14334:13;:24;;;;14257:109:::0;:::o;7765:821::-;7853:7;5470:16;;;;;;;;;;;5456:30;;:10;:30;;;:53;;;;5490:19;5498:10;5490:7;:19::i;:::-;5456:53;5448:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7873:12:::1;;:14;;;;;;;;;:::i;:::-;;;;;;7910:1;7901:5;:10:::0;7898:61:::1;;7935:12;;7927:20;;7898:61;7980:6;;;;;;;;;;;7979:7;7971:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;8032:1;8017:11;:16:::0;8013:118:::1;;8065:5;8055:30;8072:12;;8055:30;;;;;;:::i;:::-;;;;;;;;8107:12;;8100:19;;;;8013:118;8161:1;8147:11;:15;8143:188;;;8194:39;8220:11;8219:12;;;:::i;:::-;8194;;:16;;:39;;;;:::i;:::-;8179:12;:54;;;;8143:188;;;8281:38;8306:11;8281:12;;:16;;:38;;;;:::i;:::-;8266:12;:53;;;;8143:188;5917:1;5908:11;8362:10;;8347:12;;:25;8343:83;;;5917:1;5908:11;8404:10;;8389:12;:25;;;;8343:83;8445:25;8457:12;;4563:1;5696:2;:12;;;;:::i;:::-;5676:17;:32;;;;:::i;:::-;5861:1;5852:11;5976:38;;;;:::i;:::-;5861:1;5852:11;5961:54;;;;:::i;:::-;8445:11;;:25;;;;:::i;:::-;8438:4;:32;;;;8481:12;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8528:5;8518:30;8535:12;;8518:30;;;;;;:::i;:::-;;;;;;;;8566:12;;8559:19;;5569:1;7765:821:::0;;;;:::o;5367:31::-;;;;;;;;;;;;;:::o;12132:110::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12201:4:::1;12187:11;;:18;;;;;;;;;;;;;;;;;;12230:4;12216:11;;:18;;;;;;;;;;;;;;;;;;12132:110::o:0;2998:20::-;;;;;;;;;;;;:::o;14150:99::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14233:8:::1;14219:11;;:22;;;;;;;;;;;;;;;;;;14150:99:::0;:::o;6850:387::-;6958:17;5470:16;;;;;;;;;;;5456:30;;:10;:30;;;:53;;;;5490:19;5498:10;5490:7;:19::i;:::-;5456:53;5448:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;6992:6:::1;6989:231;;;7026:73;7033:1;7035:63;7095:2;7039:50;7067:21;7039:23;7056:5;7039:12;;:16;;:23;;;;:::i;:::-;:27;;:50;;;;:::i;:::-;7035:59;;:63;;;;:::i;:::-;7026:6;:73::i;:::-;7014:85;;6989:231;;;7143:65;7150:1;7156:50;7184:21;7156:23;7173:5;7156:12;;:16;;:23;;;;:::i;:::-;:27;;:50;;;;:::i;:::-;7143:6;:65::i;:::-;7131:77;;6989:231;6850:387:::0;;;;:::o;4485:38::-;;;;;;;;;;;;;;;;;;;:::o;13935:207::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14070:21:::1;14047:20;;:44;;;;;;;;;;;;;;;;;;14119:15;14102:14;;:32;;;;;;;;;;;;;;;;;;13935:207:::0;;:::o;5119:29::-;;;:::o;9734:156::-;9814:4;9838:44;9852:10;9864:9;9875:6;9838:13;:44::i;:::-;9831:51;;9734:156;;;;:::o;14625:112::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14721:8:::1;14702:16;;:27;;;;;;;;;;;;;;;;;;14625:112:::0;:::o;5040:29::-;;;;;;;;;;;;;:::o;8835:133::-;8919:7;8937:11;:19;8949:6;8937:19;;;;;;;;;;;;;;;:28;8957:7;8937:28;;;;;;;;;;;;;;;;8930:35;;8835:133;;;;:::o;4998:35::-;;;;;;;;;;;;;:::o;3296:151::-;3136:19;3144:10;3136:7;:19::i;:::-;3128:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3385:8:::1;3377:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;3409:30;3430:8;3409:30;;;;;;:::i;:::-;;;;;;;;3296:151:::0;:::o;7245:498::-;5470:16;;;;;;;;;;;5456:30;;:10;:30;;;:53;;;;5490:19;5498:10;5490:7;:19::i;:::-;5456:53;5448:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7310:12:::1;;:14;;;;;;;;;:::i;:::-;;;;;;7335:20;7358:12;;7335:35;;7392:6;;;;;;;;;;;7391:7;7383:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;4563:1;5696:2;:12;;;;:::i;:::-;5676:17;:32;;;;:::i;:::-;7477:12;:39;;;;7544:37;4563:1;5696:2;:12;;;;:::i;:::-;5676:17;:32;;;;:::i;:::-;4563:1;5696:2;:12;;;;:::i;:::-;5676:17;:32;;;;:::i;:::-;5861:1;5852:11;5976:38;;;;:::i;:::-;5861:1;5852:11;5961:54;;;;:::i;:::-;7544:11;;:37;;;;:::i;:::-;7537:4;:44;;;;7631:1;7598:35;;7606:12;7598:35;;;7594:87;;7650:12;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7594:87;7708:12;7698:37;7722:12;;7698:37;;;;;;:::i;:::-;;;;;;;;7299:444;7245:498::o:0;5078:34::-;;;:::o;4867:35::-;;;;:::o;5206:31::-;;;;;;;;;;;;;:::o;511:192::-;597:7;630:1;625;:6;;633:12;617:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;657:9;673:1;669;:5;;;;:::i;:::-;657:17;;694:1;687:8;;;511:192;;;;;:::o;10276:822::-;10368:4;10388:6;;;;;;;;;;;10385:63;;;10404:41;10419:6;10427:9;10438:6;10404:14;:41::i;:::-;10397:48;;;;10385:63;10464:11;:19;10476:6;10464:19;;;;;;;;;;;;;;;;;;;;;;;;;10463:20;:47;;;;;10488:11;:22;10500:9;10488:22;;;;;;;;;;;;;;;;;;;;;;;;;10487:23;10463:47;10460:121;;;10534:11;;;;;;;;;;;10526:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10460:121;10593:15;10611:16;10622:4;;10611:6;:10;;:16;;;;:::i;:::-;10593:34;;10643:16;:14;:16::i;:::-;10640:35;;;10662:10;:8;:10::i;:::-;10640:35;10734:54;10756:7;10734:54;;;;;;;;;;;;;;;;;:9;:17;10744:6;10734:17;;;;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;10714:9;:17;10724:6;10714:17;;;;;;;;;;;;;;;:74;;;;10803:22;10829:11;:19;10841:6;10829:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10852:11;:22;10864:9;10852:22;;;;;;;;;;;;;;;;;;;;;;;;;10829:45;10828:95;;10888:35;10896:6;10904:7;10913:9;10888:7;:35::i;:::-;10828:95;;;10878:7;10828:95;10803:120;;10957:40;10982:14;10957:9;:20;10967:9;10957:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10934:9;:20;10944:9;10934:20;;;;;;;;;;;;;;;:63;;;;11032:9;11015:53;;11024:6;11015:53;;;11043:24;11062:4;;11043:14;:18;;:24;;;;:::i;:::-;11015:53;;;;;;:::i;:::-;;;;;;;;11086:4;11079:11;;;;10276:822;;;;;;:::o;369:136::-;427:7;454:43;458:1;461;454:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;447:50;;369:136;;;;:::o;965:132::-;1023:7;1050:39;1054:1;1057;1050:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1043:46;;965:132;;;;:::o;182:181::-;240:7;260:9;276:1;272;:5;;;;:::i;:::-;260:17;;301:1;296;:6;;288:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;354:1;347:8;;;182:181;;;;:::o;709:250::-;767:7;796:1;791;:6;787:47;;821:1;814:8;;;;787:47;846:9;862:1;858;:5;;;;:::i;:::-;846:17;;891:1;886;882;:5;;;;:::i;:::-;:10;874:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;950:1;943:8;;;709:250;;;;;:::o;1388:239::-;1444:6;1463:8;1478:1;1474;:5;;;;:::i;:::-;1463:16;;1376:3;1370:1;1363:16;;1500:1;:15;;:55;;;;1376:3;1370:1;1363:16;;1540:1;:14;1376:3;1370:1;1363:16;;1520:1;:14;1519:36;;1500:55;1492:64;;;;;;1581:1;1576;:6;1575:24;;;;1597:1;1592;1588;:5;;;;:::i;:::-;:10;1575:24;1567:33;;;;;;1618:1;1611:8;;;1388:239;;;;:::o;9338:388::-;9431:4;9448:15;9466:16;9477:4;;9466:6;:10;;:16;;;;:::i;:::-;9448:34;;9513:54;9535:7;9513:54;;;;;;;;;;;;;;;;;:9;:17;9523:6;9513:17;;;;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;9493:9;:17;9503:6;9493:17;;;;;;;;;;;;;;;:74;;;;9601:33;9626:7;9601:9;:20;9611:9;9601:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;9578:9;:20;9588:9;9578:20;;;;;;;;;;;;;;;:56;;;;9667:9;9650:46;;9659:6;9650:46;;;9678:17;9690:4;;9678:7;:11;;:17;;;;:::i;:::-;9650:46;;;;;;:::i;:::-;;;;;;;;9714:4;9707:11;;;9338:388;;;;;:::o;11746:197::-;11795:4;11833;11819:18;;:10;:18;;;;:38;;;;;11851:6;;;;;;;;;;;11850:7;11819:38;:62;;;;;11870:11;;;;;;;;;;;11819:62;:116;;;;;11922:13;;11894:9;:24;11912:4;11894:24;;;;;;;;;;;;;;;;:41;;11819:116;11812:123;;11746:197;:::o;12250:834::-;5333:4;5324:6;;:13;;;;;;;;;;;;;;;;;;12301:20:::1;12324:23;12342:4;;12324:13;;:17;;:23;;;;:::i;:::-;12301:46;;12360:21;12398:1;12384:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12360:40;;12429:4;12411;12416:1;12411:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12455:4;12445;12450:1;12445:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;12472:25;12500:21;12472:49;;12534:6;:57;;;12606:12;12633:1;12649:4;12676;12696:15;12534:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12735:17;12779;12755:21;:41;;;;:::i;:::-;12735:61;;12809:26;12838:41;12870:8;;12838:27;12852:12;;12838:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;12809:70;;12890:20;12913:35;12939:8;;12913:21;12927:6;;12913:9;:13;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;12890:58;;12969:20;;;;;;;;;;;12961:38;;:58;13000:18;12961:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13038:14;;;;;;;;;;;13030:32;;:46;13063:12;13030:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12288:796;;;;;;5351:5:::0;5342:6;;:14;;;;;;;;;;;;;;;;;;12250:834::o;11110:624::-;11197:7;11219:18;11250:4;11240:14;;:6;:14;;;:132;;11308:4;11295:17;;:9;:17;;;:77;;11354:18;;11295:77;;;11315:14;;11295:77;11240:132;;;11257:13;;11240:132;11219:153;;11401:1;11390:7;:12;:31;;;;11420:1;11406:10;:15;11390:31;11387:76;;;11444:7;11437:14;;;;;11387:76;11475:17;11532:5;11517:10;11506:8;;11496:7;:18;;;;:::i;:::-;:31;;;;:::i;:::-;11495:42;;;;:::i;:::-;11475:62;;11577:39;11606:9;11577;:24;11595:4;11577:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11550:9;:24;11568:4;11550:24;;;;;;;;;;;;;;;:66;;;;11657:4;11632:52;;11641:6;11632:52;;;11664:19;11678:4;;11664:9;:13;;:19;;;;:::i;:::-;11632:52;;;;;;:::i;:::-;;;;;;;;11704:22;11716:9;11704:7;:11;;:22;;;;:::i;:::-;11697:29;;;;11110:624;;;;;;:::o;1103:189::-;1189:7;1221:1;1217;:5;1224:12;1209:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1248:9;1264:1;1260;:5;;;;:::i;:::-;1248:17;;1283:1;1276:8;;;1103:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:313::-;2513:4;2551:2;2540:9;2536:18;2528:26;;2600:9;2594:4;2590:20;2586:1;2575:9;2571:17;2564:47;2628:78;2701:4;2692:6;2628:78;:::i;:::-;2620:86;;2400:313;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:474::-;4201:6;4209;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4511:2;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4482:118;4133:474;;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:329::-;5297:6;5346:2;5334:9;5325:7;5321:23;5317:32;5314:119;;;5352:79;;:::i;:::-;5314:119;5472:1;5497:53;5542:7;5533:6;5522:9;5518:22;5497:53;:::i;:::-;5487:63;;5443:117;5238:329;;;;:::o;5573:86::-;5608:7;5648:4;5641:5;5637:16;5626:27;;5573:86;;;:::o;5665:112::-;5748:22;5764:5;5748:22;:::i;:::-;5743:3;5736:35;5665:112;;:::o;5783:214::-;5872:4;5910:2;5899:9;5895:18;5887:26;;5923:67;5987:1;5976:9;5972:17;5963:6;5923:67;:::i;:::-;5783:214;;;;:::o;6003:60::-;6031:3;6052:5;6045:12;;6003:60;;;:::o;6069:142::-;6119:9;6152:53;6170:34;6179:24;6197:5;6179:24;:::i;:::-;6170:34;:::i;:::-;6152:53;:::i;:::-;6139:66;;6069:142;;;:::o;6217:126::-;6267:9;6300:37;6331:5;6300:37;:::i;:::-;6287:50;;6217:126;;;:::o;6349:145::-;6418:9;6451:37;6482:5;6451:37;:::i;:::-;6438:50;;6349:145;;;:::o;6500:169::-;6606:56;6656:5;6606:56;:::i;:::-;6601:3;6594:69;6500:169;;:::o;6675:260::-;6787:4;6825:2;6814:9;6810:18;6802:26;;6838:90;6925:1;6914:9;6910:17;6901:6;6838:90;:::i;:::-;6675:260;;;;:::o;6941:116::-;7011:21;7026:5;7011:21;:::i;:::-;7004:5;7001:32;6991:60;;7047:1;7044;7037:12;6991:60;6941:116;:::o;7063:133::-;7106:5;7144:6;7131:20;7122:29;;7160:30;7184:5;7160:30;:::i;:::-;7063:133;;;;:::o;7202:468::-;7267:6;7275;7324:2;7312:9;7303:7;7299:23;7295:32;7292:119;;;7330:79;;:::i;:::-;7292:119;7450:1;7475:53;7520:7;7511:6;7500:9;7496:22;7475:53;:::i;:::-;7465:63;;7421:117;7577:2;7603:50;7645:7;7636:6;7625:9;7621:22;7603:50;:::i;:::-;7593:60;;7548:115;7202:468;;;;;:::o;7676:619::-;7753:6;7761;7769;7818:2;7806:9;7797:7;7793:23;7789:32;7786:119;;;7824:79;;:::i;:::-;7786:119;7944:1;7969:53;8014:7;8005:6;7994:9;7990:22;7969:53;:::i;:::-;7959:63;;7915:117;8071:2;8097:53;8142:7;8133:6;8122:9;8118:22;8097:53;:::i;:::-;8087:63;;8042:118;8199:2;8225:53;8270:7;8261:6;8250:9;8246:22;8225:53;:::i;:::-;8215:63;;8170:118;7676:619;;;;;:::o;8301:76::-;8337:7;8366:5;8355:16;;8301:76;;;:::o;8383:120::-;8455:23;8472:5;8455:23;:::i;:::-;8448:5;8445:34;8435:62;;8493:1;8490;8483:12;8435:62;8383:120;:::o;8509:137::-;8554:5;8592:6;8579:20;8570:29;;8608:32;8634:5;8608:32;:::i;:::-;8509:137;;;;:::o;8652:472::-;8719:6;8727;8776:2;8764:9;8755:7;8751:23;8747:32;8744:119;;;8782:79;;:::i;:::-;8744:119;8902:1;8927:53;8972:7;8963:6;8952:9;8948:22;8927:53;:::i;:::-;8917:63;;8873:117;9029:2;9055:52;9099:7;9090:6;9079:9;9075:22;9055:52;:::i;:::-;9045:62;;9000:117;8652:472;;;;;:::o;9130:118::-;9217:24;9235:5;9217:24;:::i;:::-;9212:3;9205:37;9130:118;;:::o;9254:222::-;9347:4;9385:2;9374:9;9370:18;9362:26;;9398:71;9466:1;9455:9;9451:17;9442:6;9398:71;:::i;:::-;9254:222;;;;:::o;9482:323::-;9538:6;9587:2;9575:9;9566:7;9562:23;9558:32;9555:119;;;9593:79;;:::i;:::-;9555:119;9713:1;9738:50;9780:7;9771:6;9760:9;9756:22;9738:50;:::i;:::-;9728:60;;9684:114;9482:323;;;;:::o;9811:468::-;9876:6;9884;9933:2;9921:9;9912:7;9908:23;9904:32;9901:119;;;9939:79;;:::i;:::-;9901:119;10059:1;10084:53;10129:7;10120:6;10109:9;10105:22;10084:53;:::i;:::-;10074:63;;10030:117;10186:2;10212:50;10254:7;10245:6;10234:9;10230:22;10212:50;:::i;:::-;10202:60;;10157:115;9811:468;;;;;:::o;10285:474::-;10353:6;10361;10410:2;10398:9;10389:7;10385:23;10381:32;10378:119;;;10416:79;;:::i;:::-;10378:119;10536:1;10561:53;10606:7;10597:6;10586:9;10582:22;10561:53;:::i;:::-;10551:63;;10507:117;10663:2;10689:53;10734:7;10725:6;10714:9;10710:22;10689:53;:::i;:::-;10679:63;;10634:118;10285:474;;;;;:::o;10765:104::-;10810:7;10839:24;10857:5;10839:24;:::i;:::-;10828:35;;10765:104;;;:::o;10875:138::-;10956:32;10982:5;10956:32;:::i;:::-;10949:5;10946:43;10936:71;;11003:1;11000;10993:12;10936:71;10875:138;:::o;11019:155::-;11073:5;11111:6;11098:20;11089:29;;11127:41;11162:5;11127:41;:::i;:::-;11019:155;;;;:::o;11180:345::-;11247:6;11296:2;11284:9;11275:7;11271:23;11267:32;11264:119;;;11302:79;;:::i;:::-;11264:119;11422:1;11447:61;11500:7;11491:6;11480:9;11476:22;11447:61;:::i;:::-;11437:71;;11393:125;11180:345;;;;:::o;11531:144::-;11599:9;11632:37;11663:5;11632:37;:::i;:::-;11619:50;;11531:144;;;:::o;11681:167::-;11786:55;11835:5;11786:55;:::i;:::-;11781:3;11774:68;11681:167;;:::o;11854:258::-;11965:4;12003:2;11992:9;11988:18;11980:26;;12016:89;12102:1;12091:9;12087:17;12078:6;12016:89;:::i;:::-;11854:258;;;;:::o;12118:156::-;12258:8;12254:1;12246:6;12242:14;12235:32;12118:156;:::o;12280:365::-;12422:3;12443:66;12507:1;12502:3;12443:66;:::i;:::-;12436:73;;12518:93;12607:3;12518:93;:::i;:::-;12636:2;12631:3;12627:12;12620:19;;12280:365;;;:::o;12651:419::-;12817:4;12855:2;12844:9;12840:18;12832:26;;12904:9;12898:4;12894:20;12890:1;12879:9;12875:17;12868:47;12932:131;13058:4;12932:131;:::i;:::-;12924:139;;12651:419;;;:::o;13076:180::-;13124:77;13121:1;13114:88;13221:4;13218:1;13211:15;13245:4;13242:1;13235:15;13262:410;13302:7;13325:20;13343:1;13325:20;:::i;:::-;13320:25;;13359:20;13377:1;13359:20;:::i;:::-;13354:25;;13414:1;13411;13407:9;13436:30;13454:11;13436:30;:::i;:::-;13425:41;;13615:1;13606:7;13602:15;13599:1;13596:22;13576:1;13569:9;13549:83;13526:139;;13645:18;;:::i;:::-;13526:139;13310:362;13262:410;;;;:::o;13678:180::-;13726:77;13723:1;13716:88;13823:4;13820:1;13813:15;13847:4;13844:1;13837:15;13864:185;13904:1;13921:20;13939:1;13921:20;:::i;:::-;13916:25;;13955:20;13973:1;13955:20;:::i;:::-;13950:25;;13994:1;13984:35;;13999:18;;:::i;:::-;13984:35;14041:1;14038;14034:9;14029:14;;13864:185;;;;:::o;14055:191::-;14095:3;14114:20;14132:1;14114:20;:::i;:::-;14109:25;;14148:20;14166:1;14148:20;:::i;:::-;14143:25;;14191:1;14188;14184:9;14177:16;;14212:3;14209:1;14206:10;14203:36;;;14219:18;;:::i;:::-;14203:36;14055:191;;;;:::o;14252:176::-;14392:28;14388:1;14380:6;14376:14;14369:52;14252:176;:::o;14434:366::-;14576:3;14597:67;14661:2;14656:3;14597:67;:::i;:::-;14590:74;;14673:93;14762:3;14673:93;:::i;:::-;14791:2;14786:3;14782:12;14775:19;;14434:366;;;:::o;14806:419::-;14972:4;15010:2;14999:9;14995:18;14987:26;;15059:9;15053:4;15049:20;15045:1;15034:9;15030:17;15023:47;15087:131;15213:4;15087:131;:::i;:::-;15079:139;;14806:419;;;:::o;15231:102::-;15273:8;15320:5;15317:1;15313:13;15292:34;;15231:102;;;:::o;15339:848::-;15400:5;15407:4;15431:6;15422:15;;15455:5;15446:14;;15469:712;15490:1;15480:8;15477:15;15469:712;;;15585:4;15580:3;15576:14;15570:4;15567:24;15564:50;;;15594:18;;:::i;:::-;15564:50;15644:1;15634:8;15630:16;15627:451;;;16059:4;16052:5;16048:16;16039:25;;15627:451;16109:4;16103;16099:15;16091:23;;16139:32;16162:8;16139:32;:::i;:::-;16127:44;;15469:712;;;15339:848;;;;;;;:::o;16193:1073::-;16247:5;16438:8;16428:40;;16459:1;16450:10;;16461:5;;16428:40;16487:4;16477:36;;16504:1;16495:10;;16506:5;;16477:36;16573:4;16621:1;16616:27;;;;16657:1;16652:191;;;;16566:277;;16616:27;16634:1;16625:10;;16636:5;;;16652:191;16697:3;16687:8;16684:17;16681:43;;;16704:18;;:::i;:::-;16681:43;16753:8;16750:1;16746:16;16737:25;;16788:3;16781:5;16778:14;16775:40;;;16795:18;;:::i;:::-;16775:40;16828:5;;;16566:277;;16952:2;16942:8;16939:16;16933:3;16927:4;16924:13;16920:36;16902:2;16892:8;16889:16;16884:2;16878:4;16875:12;16871:35;16855:111;16852:246;;;17008:8;17002:4;16998:19;16989:28;;17043:3;17036:5;17033:14;17030:40;;;17050:18;;:::i;:::-;17030:40;17083:5;;16852:246;17123:42;17161:3;17151:8;17145:4;17142:1;17123:42;:::i;:::-;17108:57;;;;17197:4;17192:3;17188:14;17181:5;17178:25;17175:51;;;17206:18;;:::i;:::-;17175:51;17255:4;17248:5;17244:16;17235:25;;16193:1073;;;;;;:::o;17272:281::-;17330:5;17354:23;17372:4;17354:23;:::i;:::-;17346:31;;17398:25;17414:8;17398:25;:::i;:::-;17386:37;;17442:104;17479:66;17469:8;17463:4;17442:104;:::i;:::-;17433:113;;17272:281;;;;:::o;17559:176::-;17591:1;17608:20;17626:1;17608:20;:::i;:::-;17603:25;;17642:20;17660:1;17642:20;:::i;:::-;17637:25;;17681:1;17671:35;;17686:18;;:::i;:::-;17671:35;17727:1;17724;17720:9;17715:14;;17559:176;;;;:::o;17741:194::-;17781:4;17801:20;17819:1;17801:20;:::i;:::-;17796:25;;17835:20;17853:1;17835:20;:::i;:::-;17830:25;;17879:1;17876;17872:9;17864:17;;17903:1;17897:4;17894:11;17891:37;;;17908:18;;:::i;:::-;17891:37;17741:194;;;;:::o;17941:143::-;17998:5;18029:6;18023:13;18014:22;;18045:33;18072:5;18045:33;:::i;:::-;17941:143;;;;:::o;18090:351::-;18160:6;18209:2;18197:9;18188:7;18184:23;18180:32;18177:119;;;18215:79;;:::i;:::-;18177:119;18335:1;18360:64;18416:7;18407:6;18396:9;18392:22;18360:64;:::i;:::-;18350:74;;18306:128;18090:351;;;;:::o;18447:332::-;18568:4;18606:2;18595:9;18591:18;18583:26;;18619:71;18687:1;18676:9;18672:17;18663:6;18619:71;:::i;:::-;18700:72;18768:2;18757:9;18753:18;18744:6;18700:72;:::i;:::-;18447:332;;;;;:::o;18785:137::-;18839:5;18870:6;18864:13;18855:22;;18886:30;18910:5;18886:30;:::i;:::-;18785:137;;;;:::o;18928:345::-;18995:6;19044:2;19032:9;19023:7;19019:23;19015:32;19012:119;;;19050:79;;:::i;:::-;19012:119;19170:1;19195:61;19248:7;19239:6;19228:9;19224:22;19195:61;:::i;:::-;19185:71;;19141:125;18928:345;;;;:::o;19279:231::-;19419:34;19415:1;19407:6;19403:14;19396:58;19488:14;19483:2;19475:6;19471:15;19464:39;19279:231;:::o;19516:366::-;19658:3;19679:67;19743:2;19738:3;19679:67;:::i;:::-;19672:74;;19755:93;19844:3;19755:93;:::i;:::-;19873:2;19868:3;19864:12;19857:19;;19516:366;;;:::o;19888:419::-;20054:4;20092:2;20081:9;20077:18;20069:26;;20141:9;20135:4;20131:20;20127:1;20116:9;20112:17;20105:47;20169:131;20295:4;20169:131;:::i;:::-;20161:139;;19888:419;;;:::o;20313:181::-;20453:33;20449:1;20441:6;20437:14;20430:57;20313:181;:::o;20500:366::-;20642:3;20663:67;20727:2;20722:3;20663:67;:::i;:::-;20656:74;;20739:93;20828:3;20739:93;:::i;:::-;20857:2;20852:3;20848:12;20841:19;;20500:366;;;:::o;20872:419::-;21038:4;21076:2;21065:9;21061:18;21053:26;;21125:9;21119:4;21115:20;21111:1;21100:9;21096:17;21089:47;21153:131;21279:4;21153:131;:::i;:::-;21145:139;;20872:419;;;:::o;21297:182::-;21437:34;21433:1;21425:6;21421:14;21414:58;21297:182;:::o;21485:366::-;21627:3;21648:67;21712:2;21707:3;21648:67;:::i;:::-;21641:74;;21724:93;21813:3;21724:93;:::i;:::-;21842:2;21837:3;21833:12;21826:19;;21485:366;;;:::o;21857:419::-;22023:4;22061:2;22050:9;22046:18;22038:26;;22110:9;22104:4;22100:20;22096:1;22085:9;22081:17;22074:47;22138:131;22264:4;22138:131;:::i;:::-;22130:139;;21857:419;;;:::o;22282:223::-;22422:34;22418:1;22410:6;22406:14;22399:58;22491:6;22486:2;22478:6;22474:15;22467:31;22282:223;:::o;22511:366::-;22653:3;22674:67;22738:2;22733:3;22674:67;:::i;:::-;22667:74;;22750:93;22839:3;22750:93;:::i;:::-;22868:2;22863:3;22859:12;22852:19;;22511:366;;;:::o;22883:419::-;23049:4;23087:2;23076:9;23072:18;23064:26;;23136:9;23130:4;23126:20;23122:1;23111:9;23107:17;23100:47;23164:131;23290:4;23164:131;:::i;:::-;23156:139;;22883:419;;;:::o;23308:233::-;23347:3;23370:24;23388:5;23370:24;:::i;:::-;23361:33;;23416:66;23409:5;23406:77;23403:103;;23486:18;;:::i;:::-;23403:103;23533:1;23526:5;23522:13;23515:20;;23308:233;;;:::o;23547:159::-;23687:11;23683:1;23675:6;23671:14;23664:35;23547:159;:::o;23712:365::-;23854:3;23875:66;23939:1;23934:3;23875:66;:::i;:::-;23868:73;;23950:93;24039:3;23950:93;:::i;:::-;24068:2;24063:3;24059:12;24052:19;;23712:365;;;:::o;24083:419::-;24249:4;24287:2;24276:9;24272:18;24264:26;;24336:9;24330:4;24326:20;24322:1;24311:9;24307:17;24300:47;24364:131;24490:4;24364:131;:::i;:::-;24356:139;;24083:419;;;:::o;24508:228::-;24543:3;24566:23;24583:5;24566:23;:::i;:::-;24557:32;;24611:66;24604:5;24601:77;24598:103;;24681:18;;:::i;:::-;24598:103;24724:5;24721:1;24717:13;24710:20;;24508:228;;;:::o;24742:134::-;24800:9;24833:37;24864:5;24833:37;:::i;:::-;24820:50;;24742:134;;;:::o;24882:147::-;24977:45;25016:5;24977:45;:::i;:::-;24972:3;24965:58;24882:147;;:::o;25035:238::-;25136:4;25174:2;25163:9;25159:18;25151:26;;25187:79;25263:1;25252:9;25248:17;25239:6;25187:79;:::i;:::-;25035:238;;;;:::o;25279:248::-;25419:34;25415:1;25407:6;25403:14;25396:58;25488:31;25483:2;25475:6;25471:15;25464:56;25279:248;:::o;25533:366::-;25675:3;25696:67;25760:2;25755:3;25696:67;:::i;:::-;25689:74;;25772:93;25861:3;25772:93;:::i;:::-;25890:2;25885:3;25881:12;25874:19;;25533:366;;;:::o;25905:419::-;26071:4;26109:2;26098:9;26094:18;26086:26;;26158:9;26152:4;26148:20;26144:1;26133:9;26129:17;26122:47;26186:131;26312:4;26186:131;:::i;:::-;26178:139;;25905:419;;;:::o;26330:170::-;26470:22;26466:1;26458:6;26454:14;26447:46;26330:170;:::o;26506:366::-;26648:3;26669:67;26733:2;26728:3;26669:67;:::i;:::-;26662:74;;26745:93;26834:3;26745:93;:::i;:::-;26863:2;26858:3;26854:12;26847:19;;26506:366;;;:::o;26878:419::-;27044:4;27082:2;27071:9;27067:18;27059:26;;27131:9;27125:4;27121:20;27117:1;27106:9;27102:17;27095:47;27159:131;27285:4;27159:131;:::i;:::-;27151:139;;26878:419;;;:::o;27303:177::-;27443:29;27439:1;27431:6;27427:14;27420:53;27303:177;:::o;27486:366::-;27628:3;27649:67;27713:2;27708:3;27649:67;:::i;:::-;27642:74;;27725:93;27814:3;27725:93;:::i;:::-;27843:2;27838:3;27834:12;27827:19;;27486:366;;;:::o;27858:419::-;28024:4;28062:2;28051:9;28047:18;28039:26;;28111:9;28105:4;28101:20;28097:1;28086:9;28082:17;28075:47;28139:131;28265:4;28139:131;:::i;:::-;28131:139;;27858:419;;;:::o;28283:220::-;28423:34;28419:1;28411:6;28407:14;28400:58;28492:3;28487:2;28479:6;28475:15;28468:28;28283:220;:::o;28509:366::-;28651:3;28672:67;28736:2;28731:3;28672:67;:::i;:::-;28665:74;;28748:93;28837:3;28748:93;:::i;:::-;28866:2;28861:3;28857:12;28850:19;;28509:366;;;:::o;28881:419::-;29047:4;29085:2;29074:9;29070:18;29062:26;;29134:9;29128:4;29124:20;29120:1;29109:9;29105:17;29098:47;29162:131;29288:4;29162:131;:::i;:::-;29154:139;;28881:419;;;:::o;29306:556::-;29345:7;29368:19;29385:1;29368:19;:::i;:::-;29363:24;;29401:19;29418:1;29401:19;:::i;:::-;29396:24;;29455:1;29452;29448:9;29477:29;29494:11;29477:29;:::i;:::-;29466:40;;29564:66;29561:1;29558:73;29554:1;29551;29547:9;29543:89;29540:115;;;29635:18;;:::i;:::-;29540:115;29805:1;29796:7;29791:16;29788:1;29785:23;29765:1;29758:9;29738:84;29715:140;;29835:18;;:::i;:::-;29715:140;29353:509;29306:556;;;;:::o;29868:385::-;29907:1;29924:19;29941:1;29924:19;:::i;:::-;29919:24;;29957:19;29974:1;29957:19;:::i;:::-;29952:24;;29995:1;29985:35;;30000:18;;:::i;:::-;29985:35;30186:1;30183;30179:9;30176:1;30173:16;30092:66;30089:1;30086:73;30069:130;30066:156;;;30202:18;;:::i;:::-;30066:156;30245:1;30242;30237:10;30232:15;;29868:385;;;;:::o;30259:180::-;30307:77;30304:1;30297:88;30404:4;30401:1;30394:15;30428:4;30425:1;30418:15;30445:180;30493:77;30490:1;30483:88;30590:4;30587:1;30580:15;30614:4;30611:1;30604:15;30631:85;30676:7;30705:5;30694:16;;30631:85;;;:::o;30722:158::-;30780:9;30813:61;30831:42;30840:32;30866:5;30840:32;:::i;:::-;30831:42;:::i;:::-;30813:61;:::i;:::-;30800:74;;30722:158;;;:::o;30886:147::-;30981:45;31020:5;30981:45;:::i;:::-;30976:3;30969:58;30886:147;;:::o;31039:114::-;31106:6;31140:5;31134:12;31124:22;;31039:114;;;:::o;31159:184::-;31258:11;31292:6;31287:3;31280:19;31332:4;31327:3;31323:14;31308:29;;31159:184;;;;:::o;31349:132::-;31416:4;31439:3;31431:11;;31469:4;31464:3;31460:14;31452:22;;31349:132;;;:::o;31487:108::-;31564:24;31582:5;31564:24;:::i;:::-;31559:3;31552:37;31487:108;;:::o;31601:179::-;31670:10;31691:46;31733:3;31725:6;31691:46;:::i;:::-;31769:4;31764:3;31760:14;31746:28;;31601:179;;;;:::o;31786:113::-;31856:4;31888;31883:3;31879:14;31871:22;;31786:113;;;:::o;31935:732::-;32054:3;32083:54;32131:5;32083:54;:::i;:::-;32153:86;32232:6;32227:3;32153:86;:::i;:::-;32146:93;;32263:56;32313:5;32263:56;:::i;:::-;32342:7;32373:1;32358:284;32383:6;32380:1;32377:13;32358:284;;;32459:6;32453:13;32486:63;32545:3;32530:13;32486:63;:::i;:::-;32479:70;;32572:60;32625:6;32572:60;:::i;:::-;32562:70;;32418:224;32405:1;32402;32398:9;32393:14;;32358:284;;;32362:14;32658:3;32651:10;;32059:608;;;31935:732;;;;:::o;32673:831::-;32936:4;32974:3;32963:9;32959:19;32951:27;;32988:71;33056:1;33045:9;33041:17;33032:6;32988:71;:::i;:::-;33069:80;33145:2;33134:9;33130:18;33121:6;33069:80;:::i;:::-;33196:9;33190:4;33186:20;33181:2;33170:9;33166:18;33159:48;33224:108;33327:4;33318:6;33224:108;:::i;:::-;33216:116;;33342:72;33410:2;33399:9;33395:18;33386:6;33342:72;:::i;:::-;33424:73;33492:3;33481:9;33477:19;33468:6;33424:73;:::i;:::-;32673:831;;;;;;;;:::o

Swarm Source

ipfs://c9a7e8be33de0f12e34aad06154627fa3b25496bb9b555f654352f6d3759b4ad

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.