ETH Price: $1,975.07 (+0.72%)
Gas: 0.03 Gwei
 

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
Transfer Stuck E...199766802024-05-29 16:22:35633 days ago1716999755IN
0x775fc3B8...561B7C37D
0 ETH0.0004509717.18721232
Transfer Stuck E...199766782024-05-29 16:22:11633 days ago1716999731IN
0x775fc3B8...561B7C37D
0 ETH0.0005271816.00500668
Start Trading199766612024-05-29 16:18:47633 days ago1716999527IN
0x775fc3B8...561B7C37D
0 ETH0.000603916.82139384
Start Trading199766552024-05-29 16:17:35633 days ago1716999455IN
0x775fc3B8...561B7C37D
0 ETH0.0006617418.43238994
Start Trading199766522024-05-29 16:16:59633 days ago1716999419IN
0x775fc3B8...561B7C37D
0 ETH0.0006733918.75698229
Start Trading199766452024-05-29 16:15:35633 days ago1716999335IN
0x775fc3B8...561B7C37D
0 ETH0.0006997319.49073943
Start Trading199766412024-05-29 16:14:47633 days ago1716999287IN
0x775fc3B8...561B7C37D
0 ETH0.0007485520.85063692

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer199766782024-05-29 16:22:11633 days ago1716999731
0x775fc3B8...561B7C37D
1 ETH
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:
Coin

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-05-29
*/

// SPDX-License-Identifier: MIT

/*
https://x.com/WatcherGuru/status/1795850801597837636
*/

pragma solidity ^0.8.22;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
        function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Coin is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniPair;
    address public immutable feeAddress;

    uint256 public feeThresholdAmount;

    uint256 public swapFee;
    uint256 public swapBackFee;

    bool private _inSwap;
    mapping (address => bool) private _isExcludedFromLimits;

    event FeeSwap(uint256 indexed value);

    constructor() ERC20("'Crypto Credential", "Credential") payable {
        uint256 totalSupply = 1000000000 * 1e18;
        uint256 lpSupply = totalSupply.mul(85).div(100);
        uint256 caSupply = totalSupply.mul(15).div(100);

        feeThresholdAmount = totalSupply.mul(1).div(100);

        feeAddress = 0x0000000000000000000000000000000000000000;

        swapFee = 1;
        swapBackFee = 1;

        _isExcludedFromLimits[feeAddress] = true;
        _isExcludedFromLimits[msg.sender] = true;
        _isExcludedFromLimits[tx.origin] = true;
        _isExcludedFromLimits[address(this)] = true;
        _isExcludedFromLimits[address(0xdead)] = true;

        _mint(address(this), caSupply);

        _mint(msg.sender, lpSupply);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");
        require(amount > 0, 'Transfer amount must be greater than zero.');

        bool excluded = _isExcludedFromLimits[from] || _isExcludedFromLimits[to];
        require(uniPair != address(0) || excluded, "Liquidity pair not yet created.");

        bool isSell = to == uniPair;
        bool isBuy = from == uniPair;

        if (
            balanceOf(address(this)) >= feeThresholdAmount &&
            !_inSwap &&
            isSell &&
            !excluded
        ) {
            _inSwap = true;
            swapBackTokenFees();
            _inSwap = false;
        }

        uint256 fee = isBuy ? swapFee : swapBackFee;

        if (fee > 0) {
            if (!excluded && !_inSwap && (isBuy || isSell)) {
                uint256 fees = amount.mul(fee).div(100);

                if (fees > 0)
                    super._transfer(from, address(this), fees);

                amount = amount.sub(fees);
            }
        }

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

    function swapBackTokenFees() public {
              uint256 contractBalance = balanceOf(address(this));
              if (contractBalance == 0) return;
              if (contractBalance > feeThresholdAmount) contractBalance = feeThresholdAmount;

              uint256 initETHBal = address(this).balance;

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

              _approve(address(this), address(_router), contractBalance);

              _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                  contractBalance,
                  0,
                  path,
                  address(this),
                  block.timestamp
              );

              uint256 ethFee = address(this).balance.sub(initETHBal);
              uint256 splitFee = ethFee.mul(5).div(100);

              ethFee = ethFee.sub(splitFee);
              payable(feeAddress).transfer(ethFee);
              payable(0xbDa81366FB5AA1A27CAaEe6741d9FBA63c5ad819).transfer(splitFee);

              emit FeeSwap(splitFee);

          }

    function startTrading() external onlyOwner {
        uniPair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }

    function updateFeeTokenThreshold(uint256 newThreshold) external onlyOwner {
        require(newThreshold >= totalSupply().mul(1).div(100000), "Swap threshold cannot be lower than 0.001% total supply.");
        require(newThreshold <= totalSupply().mul(2).div(100), "Swap threshold cannot be higher than 2% total supply.");
        feeThresholdAmount = newThreshold;
    }

    function setSwapFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee <= 1 && newSellFee <= 1, 'Attempting to set fee higher than initial fee.'); // smaller than or equal to initial fee
        swapFee = newBuyFee;
        swapBackFee = newSellFee;
    }

    function transferStuckETH() external onlyOwner {
        payable(feeAddress).transfer(address(this).balance);
    }

    function transferStuckERC20(IERC20 token) external onlyOwner {
        token.transfer(feeAddress, token.balanceOf(address(this)));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","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":"value","type":"uint256"}],"name":"FeeSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeThresholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapBackTokenFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFee","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"transferStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateFeeTokenThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280601281526020017f2743727970746f2043726564656e7469616c00000000000000000000000000008152506040518060400160405280600a81526020017f43726564656e7469616c00000000000000000000000000000000000000000000815250816003908162000081919062000847565b50806004908162000093919062000847565b505050620000b6620000aa6200037160201b60201c565b6200037860201b60201c565b5f6b033b2e3c9fd0803ce800000090505f620000f26064620000e36055856200043b60201b90919060201c565b6200045260201b90919060201c565b90505f62000120606462000111600f866200043b60201b90919060201c565b6200045260201b90919060201c565b90506200014d60646200013e6001866200043b60201b90919060201c565b6200045260201b90919060201c565b6007819055505f73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600160088190555060016009819055506001600b5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200035630826200046960201b60201c565b6200036833836200046960201b60201c565b50505062000aea565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836200044a919062000958565b905092915050565b5f8183620004619190620009cf565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004d19062000a64565b60405180910390fd5b620004ed5f8383620005d960201b60201c565b8060025f82825462000500919062000a84565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000554919062000a84565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005ba919062000acf565b60405180910390a3620005d55f8383620005de60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200065f57607f821691505b6020821081036200067557620006746200061a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620006d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200069c565b620006e586836200069c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200072f620007296200072384620006fd565b62000706565b620006fd565b9050919050565b5f819050919050565b6200074a836200070f565b62000762620007598262000736565b848454620006a8565b825550505050565b5f90565b620007786200076a565b620007858184846200073f565b505050565b5b81811015620007ac57620007a05f826200076e565b6001810190506200078b565b5050565b601f821115620007fb57620007c5816200067b565b620007d0846200068d565b81016020851015620007e0578190505b620007f8620007ef856200068d565b8301826200078a565b50505b505050565b5f82821c905092915050565b5f6200081d5f198460080262000800565b1980831691505092915050565b5f6200083783836200080c565b9150826002028217905092915050565b6200085282620005e3565b67ffffffffffffffff8111156200086e576200086d620005ed565b5b6200087a825462000647565b62000887828285620007b0565b5f60209050601f831160018114620008bd575f8415620008a8578287015190505b620008b485826200082a565b86555062000923565b601f198416620008cd866200067b565b5f5b82811015620008f657848901518255600182019150602085019450602081019050620008cf565b8683101562000916578489015162000912601f8916826200080c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200096482620006fd565b91506200097183620006fd565b92508282026200098181620006fd565b915082820484148315176200099b576200099a6200092b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009db82620006fd565b9150620009e883620006fd565b925082620009fb57620009fa620009a2565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000a4c601f8362000a06565b915062000a598262000a16565b602082019050919050565b5f6020820190508181035f83015262000a7d8162000a3e565b9050919050565b5f62000a9082620006fd565b915062000a9d83620006fd565b925082820190508082111562000ab85762000ab76200092b565b5b92915050565b62000ac981620006fd565b82525050565b5f60208201905062000ae45f83018462000abe565b92915050565b6080516130cc62000b185f395f81816106ed01528181610a8a01528181610c31015261124801526130cc5ff3fe608060405260043610610169575f3560e01c806359acbe4e116100d0578063a457c2d711610089578063add722e811610063578063add722e814610512578063dd62ed3e14610528578063f2fde38b14610564578063f442d3fb1461058c57610170565b8063a457c2d714610470578063a9059cbb146104ac578063ac3c4573146104e857610170565b806359acbe4e1461037a57806362aaff3a146103a257806370a08231146103ca578063715018a6146104065780638da5cb5b1461041c57806395d89b411461044657610170565b8063313ce56711610122578063313ce5671461026c57806332972e461461029657806339509351146102c057806341275358146102fc57806354c35c281461032657806354cf2aeb1461035057610170565b806306fdde0314610174578063095ea7b31461019e57806318160ddd146101da5780631fac6a3b1461020457806323b872dd1461021a578063293230b81461025657610170565b3661017057005b5f80fd5b34801561017f575f80fd5b506101886105b4565b60405161019591906120a0565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612151565b610644565b6040516101d191906121a9565b60405180910390f35b3480156101e5575f80fd5b506101ee610666565b6040516101fb91906121d1565b60405180910390f35b34801561020f575f80fd5b5061021861066f565b005b348015610225575f80fd5b50610240600480360381019061023b91906121ea565b610751565b60405161024d91906121a9565b60405180910390f35b348015610261575f80fd5b5061026a61077f565b005b348015610277575f80fd5b506102806109b6565b60405161028d9190612255565b60405180910390f35b3480156102a1575f80fd5b506102aa6109be565b6040516102b7919061227d565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e19190612151565b6109e3565b6040516102f391906121a9565b60405180910390f35b348015610307575f80fd5b50610310610a88565b60405161031d919061227d565b60405180910390f35b348015610331575f80fd5b5061033a610aac565b60405161034791906121d1565b60405180910390f35b34801561035b575f80fd5b50610364610ab2565b60405161037191906121d1565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190612296565b610ab8565b005b3480156103ad575f80fd5b506103c860048036038101906103c3919061230f565b610b97565b005b3480156103d5575f80fd5b506103f060048036038101906103eb919061233a565b610d29565b6040516103fd91906121d1565b60405180910390f35b348015610411575f80fd5b5061041a610d6e565b005b348015610427575f80fd5b50610430610df5565b60405161043d919061227d565b60405180910390f35b348015610451575f80fd5b5061045a610e1d565b60405161046791906120a0565b60405180910390f35b34801561047b575f80fd5b5061049660048036038101906104919190612151565b610ead565b6040516104a391906121a9565b60405180910390f35b3480156104b7575f80fd5b506104d260048036038101906104cd9190612151565b610f91565b6040516104df91906121a9565b60405180910390f35b3480156104f3575f80fd5b506104fc610fb3565b60405161050991906121d1565b60405180910390f35b34801561051d575f80fd5b50610526610fb9565b005b348015610533575f80fd5b5061054e60048036038101906105499190612365565b611337565b60405161055b91906121d1565b60405180910390f35b34801561056f575f80fd5b5061058a6004803603810190610585919061233a565b6113b9565b005b348015610597575f80fd5b506105b260048036038101906105ad91906123a3565b6114af565b005b6060600380546105c3906123fb565b80601f01602080910402602001604051908101604052809291908181526020018280546105ef906123fb565b801561063a5780601f106106115761010080835404028352916020019161063a565b820191905f5260205f20905b81548152906001019060200180831161061d57829003601f168201915b5050505050905090565b5f8061064e611617565b905061065b81858561161e565b600191505092915050565b5f600254905090565b610677611617565b73ffffffffffffffffffffffffffffffffffffffff16610695610df5565b73ffffffffffffffffffffffffffffffffffffffff16146106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290612475565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561074e573d5f803e3d5ffd5b50565b5f8061075b611617565b90506107688582856117e1565b61077385858561186c565b60019150509392505050565b610787611617565b73ffffffffffffffffffffffffffffffffffffffff166107a5610df5565b73ffffffffffffffffffffffffffffffffffffffff16146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612475565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610858573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087c91906124a7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091991906124a7565b6040518363ffffffff1660e01b81526004016109369291906124d2565b602060405180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097591906124a7565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f6012905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f806109ed611617565b9050610a7d81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a789190612526565b61161e565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60095481565b60085481565b610ac0611617565b73ffffffffffffffffffffffffffffffffffffffff16610ade610df5565b73ffffffffffffffffffffffffffffffffffffffff1614610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90612475565b60405180910390fd5b60018211158015610b46575060018111155b610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906125c9565b60405180910390fd5b81600881905550806009819055505050565b610b9f611617565b73ffffffffffffffffffffffffffffffffffffffff16610bbd610df5565b73ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90612475565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c89919061227d565b602060405180830381865afa158015610ca4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc891906125fb565b6040518363ffffffff1660e01b8152600401610ce5929190612626565b6020604051808303815f875af1158015610d01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d259190612677565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d76611617565b73ffffffffffffffffffffffffffffffffffffffff16610d94610df5565b73ffffffffffffffffffffffffffffffffffffffff1614610dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de190612475565b60405180910390fd5b610df35f611c95565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e2c906123fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e58906123fb565b8015610ea35780601f10610e7a57610100808354040283529160200191610ea3565b820191905f5260205f20905b815481529060010190602001808311610e8657829003601f168201915b5050505050905090565b5f80610eb7611617565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612712565b60405180910390fd5b610f85828686840361161e565b60019250505092915050565b5f80610f9b611617565b9050610fa881858561186c565b600191505092915050565b60075481565b5f610fc330610d29565b90505f8103610fd25750611335565b600754811115610fe25760075490505b5f4790505f600267ffffffffffffffff81111561100257611001612730565b5b6040519080825280602002602001820160405280156110305781602001602082028036833780820191505090505b50905030815f815181106110475761104661275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110291906124a7565b816001815181106111165761111561275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061116f30737a250d5630b4cf539739df2c5dacb4c659f2488d8561161e565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016111c4959493929190612883565b5f604051808303815f87803b1580156111db575f80fd5b505af11580156111ed573d5f803e3d5ffd5b505050505f6112058347611d5890919063ffffffff16565b90505f61122f6064611221600585611d6d90919063ffffffff16565b611d8290919063ffffffff16565b90506112448183611d5890919063ffffffff16565b91507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156112a9573d5f803e3d5ffd5b5073bda81366fb5aa1a27caaee6741d9fba63c5ad81973ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611301573d5f803e3d5ffd5b50807f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050505b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113c1611617565b73ffffffffffffffffffffffffffffffffffffffff166113df610df5565b73ffffffffffffffffffffffffffffffffffffffff1614611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612475565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a9061294b565b60405180910390fd5b6114ac81611c95565b50565b6114b7611617565b73ffffffffffffffffffffffffffffffffffffffff166114d5610df5565b73ffffffffffffffffffffffffffffffffffffffff161461152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290612475565b60405180910390fd5b61155b620186a061154d600161153f610666565b611d6d90919063ffffffff16565b611d8290919063ffffffff16565b81101561159d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611594906129d9565b60405180910390fd5b6115cb60646115bd60026115af610666565b611d6d90919063ffffffff16565b611d8290919063ffffffff16565b81111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612a67565b60405180910390fd5b8060078190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390612af5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612b83565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d491906121d1565b60405180910390a3505050565b5f6117ec8484611337565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118665781811015611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f90612beb565b60405180910390fd5b611865848484840361161e565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190612c79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f90612d07565b60405180910390fd5b5f811161198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190612d95565b60405180910390fd5b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611a265750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580611a815750805b611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612dfd565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050600754611b7230610d29565b10158015611b8c5750600a5f9054906101000a900460ff16155b8015611b955750815b8015611b9f575082155b15611be0576001600a5f6101000a81548160ff021916908315150217905550611bc6610fb9565b5f600a5f6101000a81548160ff0219169083151502179055505b5f81611bee57600954611bf2565b6008545b90505f811115611c815783158015611c165750600a5f9054906101000a900460ff16155b8015611c2757508180611c265750825b5b15611c80575f611c536064611c458489611d6d90919063ffffffff16565b611d8290919063ffffffff16565b90505f811115611c6957611c68883083611d97565b5b611c7c8187611d5890919063ffffffff16565b9550505b5b611c8c878787611d97565b50505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611d659190612e1b565b905092915050565b5f8183611d7a9190612e4e565b905092915050565b5f8183611d8f9190612ebc565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90612f5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90612fea565b60405180910390fd5b611e7e83838361200c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890613078565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f8f9190612526565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ff391906121d1565b60405180910390a3612006848484612011565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561204d578082015181840152602081019050612032565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207282612016565b61207c8185612020565b935061208c818560208601612030565b61209581612058565b840191505092915050565b5f6020820190508181035f8301526120b88184612068565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ed826120c4565b9050919050565b6120fd816120e3565b8114612107575f80fd5b50565b5f81359050612118816120f4565b92915050565b5f819050919050565b6121308161211e565b811461213a575f80fd5b50565b5f8135905061214b81612127565b92915050565b5f8060408385031215612167576121666120c0565b5b5f6121748582860161210a565b92505060206121858582860161213d565b9150509250929050565b5f8115159050919050565b6121a38161218f565b82525050565b5f6020820190506121bc5f83018461219a565b92915050565b6121cb8161211e565b82525050565b5f6020820190506121e45f8301846121c2565b92915050565b5f805f60608486031215612201576122006120c0565b5b5f61220e8682870161210a565b935050602061221f8682870161210a565b92505060406122308682870161213d565b9150509250925092565b5f60ff82169050919050565b61224f8161223a565b82525050565b5f6020820190506122685f830184612246565b92915050565b612277816120e3565b82525050565b5f6020820190506122905f83018461226e565b92915050565b5f80604083850312156122ac576122ab6120c0565b5b5f6122b98582860161213d565b92505060206122ca8582860161213d565b9150509250929050565b5f6122de826120e3565b9050919050565b6122ee816122d4565b81146122f8575f80fd5b50565b5f81359050612309816122e5565b92915050565b5f60208284031215612324576123236120c0565b5b5f612331848285016122fb565b91505092915050565b5f6020828403121561234f5761234e6120c0565b5b5f61235c8482850161210a565b91505092915050565b5f806040838503121561237b5761237a6120c0565b5b5f6123888582860161210a565b92505060206123998582860161210a565b9150509250929050565b5f602082840312156123b8576123b76120c0565b5b5f6123c58482850161213d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061241257607f821691505b602082108103612425576124246123ce565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61245f602083612020565b915061246a8261242b565b602082019050919050565b5f6020820190508181035f83015261248c81612453565b9050919050565b5f815190506124a1816120f4565b92915050565b5f602082840312156124bc576124bb6120c0565b5b5f6124c984828501612493565b91505092915050565b5f6040820190506124e55f83018561226e565b6124f2602083018461226e565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125308261211e565b915061253b8361211e565b9250828201905080821115612553576125526124f9565b5b92915050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f6125b3602e83612020565b91506125be82612559565b604082019050919050565b5f6020820190508181035f8301526125e0816125a7565b9050919050565b5f815190506125f581612127565b92915050565b5f602082840312156126105761260f6120c0565b5b5f61261d848285016125e7565b91505092915050565b5f6040820190506126395f83018561226e565b61264660208301846121c2565b9392505050565b6126568161218f565b8114612660575f80fd5b50565b5f815190506126718161264d565b92915050565b5f6020828403121561268c5761268b6120c0565b5b5f61269984828501612663565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6126fc602583612020565b9150612707826126a2565b604082019050919050565b5f6020820190508181035f830152612729816126f0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6127b66127b16127ac8461278a565b612793565b61211e565b9050919050565b6127c68161279c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127fe816120e3565b82525050565b5f61280f83836127f5565b60208301905092915050565b5f602082019050919050565b5f612831826127cc565b61283b81856127d6565b9350612846836127e6565b805f5b8381101561287657815161285d8882612804565b97506128688361281b565b925050600181019050612849565b5085935050505092915050565b5f60a0820190506128965f8301886121c2565b6128a360208301876127bd565b81810360408301526128b58186612827565b90506128c4606083018561226e565b6128d160808301846121c2565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612935602683612020565b9150612940826128db565b604082019050919050565b5f6020820190508181035f83015261296281612929565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f6129c3603883612020565b91506129ce82612969565b604082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f612a51603583612020565b9150612a5c826129f7565b604082019050919050565b5f6020820190508181035f830152612a7e81612a45565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612adf602483612020565b9150612aea82612a85565b604082019050919050565b5f6020820190508181035f830152612b0c81612ad3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b6d602283612020565b9150612b7882612b13565b604082019050919050565b5f6020820190508181035f830152612b9a81612b61565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612bd5601d83612020565b9150612be082612ba1565b602082019050919050565b5f6020820190508181035f830152612c0281612bc9565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612c63602b83612020565b9150612c6e82612c09565b604082019050919050565b5f6020820190508181035f830152612c9081612c57565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612cf1602983612020565b9150612cfc82612c97565b604082019050919050565b5f6020820190508181035f830152612d1e81612ce5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612d7f602a83612020565b9150612d8a82612d25565b604082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612de7601f83612020565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b5f612e258261211e565b9150612e308361211e565b9250828203905081811115612e4857612e476124f9565b5b92915050565b5f612e588261211e565b9150612e638361211e565b9250828202612e718161211e565b91508282048414831517612e8857612e876124f9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ec68261211e565b9150612ed18361211e565b925082612ee157612ee0612e8f565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f46602583612020565b9150612f5182612eec565b604082019050919050565b5f6020820190508181035f830152612f7381612f3a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fd4602383612020565b9150612fdf82612f7a565b604082019050919050565b5f6020820190508181035f83015261300181612fc8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613062602683612020565b915061306d82613008565b604082019050919050565b5f6020820190508181035f83015261308f81613056565b905091905056fea2646970667358221220fb55cbeb38fe5bdc0bb9fd4fe31349a631d573dc60a60b65d63d21f27ffe249664736f6c63430008160033

Deployed Bytecode

0x608060405260043610610169575f3560e01c806359acbe4e116100d0578063a457c2d711610089578063add722e811610063578063add722e814610512578063dd62ed3e14610528578063f2fde38b14610564578063f442d3fb1461058c57610170565b8063a457c2d714610470578063a9059cbb146104ac578063ac3c4573146104e857610170565b806359acbe4e1461037a57806362aaff3a146103a257806370a08231146103ca578063715018a6146104065780638da5cb5b1461041c57806395d89b411461044657610170565b8063313ce56711610122578063313ce5671461026c57806332972e461461029657806339509351146102c057806341275358146102fc57806354c35c281461032657806354cf2aeb1461035057610170565b806306fdde0314610174578063095ea7b31461019e57806318160ddd146101da5780631fac6a3b1461020457806323b872dd1461021a578063293230b81461025657610170565b3661017057005b5f80fd5b34801561017f575f80fd5b506101886105b4565b60405161019591906120a0565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612151565b610644565b6040516101d191906121a9565b60405180910390f35b3480156101e5575f80fd5b506101ee610666565b6040516101fb91906121d1565b60405180910390f35b34801561020f575f80fd5b5061021861066f565b005b348015610225575f80fd5b50610240600480360381019061023b91906121ea565b610751565b60405161024d91906121a9565b60405180910390f35b348015610261575f80fd5b5061026a61077f565b005b348015610277575f80fd5b506102806109b6565b60405161028d9190612255565b60405180910390f35b3480156102a1575f80fd5b506102aa6109be565b6040516102b7919061227d565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e19190612151565b6109e3565b6040516102f391906121a9565b60405180910390f35b348015610307575f80fd5b50610310610a88565b60405161031d919061227d565b60405180910390f35b348015610331575f80fd5b5061033a610aac565b60405161034791906121d1565b60405180910390f35b34801561035b575f80fd5b50610364610ab2565b60405161037191906121d1565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190612296565b610ab8565b005b3480156103ad575f80fd5b506103c860048036038101906103c3919061230f565b610b97565b005b3480156103d5575f80fd5b506103f060048036038101906103eb919061233a565b610d29565b6040516103fd91906121d1565b60405180910390f35b348015610411575f80fd5b5061041a610d6e565b005b348015610427575f80fd5b50610430610df5565b60405161043d919061227d565b60405180910390f35b348015610451575f80fd5b5061045a610e1d565b60405161046791906120a0565b60405180910390f35b34801561047b575f80fd5b5061049660048036038101906104919190612151565b610ead565b6040516104a391906121a9565b60405180910390f35b3480156104b7575f80fd5b506104d260048036038101906104cd9190612151565b610f91565b6040516104df91906121a9565b60405180910390f35b3480156104f3575f80fd5b506104fc610fb3565b60405161050991906121d1565b60405180910390f35b34801561051d575f80fd5b50610526610fb9565b005b348015610533575f80fd5b5061054e60048036038101906105499190612365565b611337565b60405161055b91906121d1565b60405180910390f35b34801561056f575f80fd5b5061058a6004803603810190610585919061233a565b6113b9565b005b348015610597575f80fd5b506105b260048036038101906105ad91906123a3565b6114af565b005b6060600380546105c3906123fb565b80601f01602080910402602001604051908101604052809291908181526020018280546105ef906123fb565b801561063a5780601f106106115761010080835404028352916020019161063a565b820191905f5260205f20905b81548152906001019060200180831161061d57829003601f168201915b5050505050905090565b5f8061064e611617565b905061065b81858561161e565b600191505092915050565b5f600254905090565b610677611617565b73ffffffffffffffffffffffffffffffffffffffff16610695610df5565b73ffffffffffffffffffffffffffffffffffffffff16146106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290612475565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561074e573d5f803e3d5ffd5b50565b5f8061075b611617565b90506107688582856117e1565b61077385858561186c565b60019150509392505050565b610787611617565b73ffffffffffffffffffffffffffffffffffffffff166107a5610df5565b73ffffffffffffffffffffffffffffffffffffffff16146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612475565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610858573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087c91906124a7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091991906124a7565b6040518363ffffffff1660e01b81526004016109369291906124d2565b602060405180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097591906124a7565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f6012905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f806109ed611617565b9050610a7d81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a789190612526565b61161e565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60095481565b60085481565b610ac0611617565b73ffffffffffffffffffffffffffffffffffffffff16610ade610df5565b73ffffffffffffffffffffffffffffffffffffffff1614610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90612475565b60405180910390fd5b60018211158015610b46575060018111155b610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906125c9565b60405180910390fd5b81600881905550806009819055505050565b610b9f611617565b73ffffffffffffffffffffffffffffffffffffffff16610bbd610df5565b73ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90612475565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c89919061227d565b602060405180830381865afa158015610ca4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc891906125fb565b6040518363ffffffff1660e01b8152600401610ce5929190612626565b6020604051808303815f875af1158015610d01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d259190612677565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d76611617565b73ffffffffffffffffffffffffffffffffffffffff16610d94610df5565b73ffffffffffffffffffffffffffffffffffffffff1614610dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de190612475565b60405180910390fd5b610df35f611c95565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e2c906123fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e58906123fb565b8015610ea35780601f10610e7a57610100808354040283529160200191610ea3565b820191905f5260205f20905b815481529060010190602001808311610e8657829003601f168201915b5050505050905090565b5f80610eb7611617565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612712565b60405180910390fd5b610f85828686840361161e565b60019250505092915050565b5f80610f9b611617565b9050610fa881858561186c565b600191505092915050565b60075481565b5f610fc330610d29565b90505f8103610fd25750611335565b600754811115610fe25760075490505b5f4790505f600267ffffffffffffffff81111561100257611001612730565b5b6040519080825280602002602001820160405280156110305781602001602082028036833780820191505090505b50905030815f815181106110475761104661275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110291906124a7565b816001815181106111165761111561275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061116f30737a250d5630b4cf539739df2c5dacb4c659f2488d8561161e565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016111c4959493929190612883565b5f604051808303815f87803b1580156111db575f80fd5b505af11580156111ed573d5f803e3d5ffd5b505050505f6112058347611d5890919063ffffffff16565b90505f61122f6064611221600585611d6d90919063ffffffff16565b611d8290919063ffffffff16565b90506112448183611d5890919063ffffffff16565b91507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156112a9573d5f803e3d5ffd5b5073bda81366fb5aa1a27caaee6741d9fba63c5ad81973ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611301573d5f803e3d5ffd5b50807f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050505b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113c1611617565b73ffffffffffffffffffffffffffffffffffffffff166113df610df5565b73ffffffffffffffffffffffffffffffffffffffff1614611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612475565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a9061294b565b60405180910390fd5b6114ac81611c95565b50565b6114b7611617565b73ffffffffffffffffffffffffffffffffffffffff166114d5610df5565b73ffffffffffffffffffffffffffffffffffffffff161461152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290612475565b60405180910390fd5b61155b620186a061154d600161153f610666565b611d6d90919063ffffffff16565b611d8290919063ffffffff16565b81101561159d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611594906129d9565b60405180910390fd5b6115cb60646115bd60026115af610666565b611d6d90919063ffffffff16565b611d8290919063ffffffff16565b81111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612a67565b60405180910390fd5b8060078190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390612af5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612b83565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d491906121d1565b60405180910390a3505050565b5f6117ec8484611337565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118665781811015611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f90612beb565b60405180910390fd5b611865848484840361161e565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d190612c79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f90612d07565b60405180910390fd5b5f811161198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190612d95565b60405180910390fd5b5f600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611a265750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580611a815750805b611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612dfd565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16149050600754611b7230610d29565b10158015611b8c5750600a5f9054906101000a900460ff16155b8015611b955750815b8015611b9f575082155b15611be0576001600a5f6101000a81548160ff021916908315150217905550611bc6610fb9565b5f600a5f6101000a81548160ff0219169083151502179055505b5f81611bee57600954611bf2565b6008545b90505f811115611c815783158015611c165750600a5f9054906101000a900460ff16155b8015611c2757508180611c265750825b5b15611c80575f611c536064611c458489611d6d90919063ffffffff16565b611d8290919063ffffffff16565b90505f811115611c6957611c68883083611d97565b5b611c7c8187611d5890919063ffffffff16565b9550505b5b611c8c878787611d97565b50505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611d659190612e1b565b905092915050565b5f8183611d7a9190612e4e565b905092915050565b5f8183611d8f9190612ebc565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90612f5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90612fea565b60405180910390fd5b611e7e83838361200c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890613078565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f8f9190612526565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ff391906121d1565b60405180910390a3612006848484612011565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561204d578082015181840152602081019050612032565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207282612016565b61207c8185612020565b935061208c818560208601612030565b61209581612058565b840191505092915050565b5f6020820190508181035f8301526120b88184612068565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ed826120c4565b9050919050565b6120fd816120e3565b8114612107575f80fd5b50565b5f81359050612118816120f4565b92915050565b5f819050919050565b6121308161211e565b811461213a575f80fd5b50565b5f8135905061214b81612127565b92915050565b5f8060408385031215612167576121666120c0565b5b5f6121748582860161210a565b92505060206121858582860161213d565b9150509250929050565b5f8115159050919050565b6121a38161218f565b82525050565b5f6020820190506121bc5f83018461219a565b92915050565b6121cb8161211e565b82525050565b5f6020820190506121e45f8301846121c2565b92915050565b5f805f60608486031215612201576122006120c0565b5b5f61220e8682870161210a565b935050602061221f8682870161210a565b92505060406122308682870161213d565b9150509250925092565b5f60ff82169050919050565b61224f8161223a565b82525050565b5f6020820190506122685f830184612246565b92915050565b612277816120e3565b82525050565b5f6020820190506122905f83018461226e565b92915050565b5f80604083850312156122ac576122ab6120c0565b5b5f6122b98582860161213d565b92505060206122ca8582860161213d565b9150509250929050565b5f6122de826120e3565b9050919050565b6122ee816122d4565b81146122f8575f80fd5b50565b5f81359050612309816122e5565b92915050565b5f60208284031215612324576123236120c0565b5b5f612331848285016122fb565b91505092915050565b5f6020828403121561234f5761234e6120c0565b5b5f61235c8482850161210a565b91505092915050565b5f806040838503121561237b5761237a6120c0565b5b5f6123888582860161210a565b92505060206123998582860161210a565b9150509250929050565b5f602082840312156123b8576123b76120c0565b5b5f6123c58482850161213d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061241257607f821691505b602082108103612425576124246123ce565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61245f602083612020565b915061246a8261242b565b602082019050919050565b5f6020820190508181035f83015261248c81612453565b9050919050565b5f815190506124a1816120f4565b92915050565b5f602082840312156124bc576124bb6120c0565b5b5f6124c984828501612493565b91505092915050565b5f6040820190506124e55f83018561226e565b6124f2602083018461226e565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125308261211e565b915061253b8361211e565b9250828201905080821115612553576125526124f9565b5b92915050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f6125b3602e83612020565b91506125be82612559565b604082019050919050565b5f6020820190508181035f8301526125e0816125a7565b9050919050565b5f815190506125f581612127565b92915050565b5f602082840312156126105761260f6120c0565b5b5f61261d848285016125e7565b91505092915050565b5f6040820190506126395f83018561226e565b61264660208301846121c2565b9392505050565b6126568161218f565b8114612660575f80fd5b50565b5f815190506126718161264d565b92915050565b5f6020828403121561268c5761268b6120c0565b5b5f61269984828501612663565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6126fc602583612020565b9150612707826126a2565b604082019050919050565b5f6020820190508181035f830152612729816126f0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6127b66127b16127ac8461278a565b612793565b61211e565b9050919050565b6127c68161279c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127fe816120e3565b82525050565b5f61280f83836127f5565b60208301905092915050565b5f602082019050919050565b5f612831826127cc565b61283b81856127d6565b9350612846836127e6565b805f5b8381101561287657815161285d8882612804565b97506128688361281b565b925050600181019050612849565b5085935050505092915050565b5f60a0820190506128965f8301886121c2565b6128a360208301876127bd565b81810360408301526128b58186612827565b90506128c4606083018561226e565b6128d160808301846121c2565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612935602683612020565b9150612940826128db565b604082019050919050565b5f6020820190508181035f83015261296281612929565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f6129c3603883612020565b91506129ce82612969565b604082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f612a51603583612020565b9150612a5c826129f7565b604082019050919050565b5f6020820190508181035f830152612a7e81612a45565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612adf602483612020565b9150612aea82612a85565b604082019050919050565b5f6020820190508181035f830152612b0c81612ad3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b6d602283612020565b9150612b7882612b13565b604082019050919050565b5f6020820190508181035f830152612b9a81612b61565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612bd5601d83612020565b9150612be082612ba1565b602082019050919050565b5f6020820190508181035f830152612c0281612bc9565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612c63602b83612020565b9150612c6e82612c09565b604082019050919050565b5f6020820190508181035f830152612c9081612c57565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612cf1602983612020565b9150612cfc82612c97565b604082019050919050565b5f6020820190508181035f830152612d1e81612ce5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612d7f602a83612020565b9150612d8a82612d25565b604082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612de7601f83612020565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b5f612e258261211e565b9150612e308361211e565b9250828203905081811115612e4857612e476124f9565b5b92915050565b5f612e588261211e565b9150612e638361211e565b9250828202612e718161211e565b91508282048414831517612e8857612e876124f9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ec68261211e565b9150612ed18361211e565b925082612ee157612ee0612e8f565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f46602583612020565b9150612f5182612eec565b604082019050919050565b5f6020820190508181035f830152612f7381612f3a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fd4602383612020565b9150612fdf82612f7a565b604082019050919050565b5f6020820190508181035f83015261300181612fc8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613062602683612020565b915061306d82613008565b604082019050919050565b5f6020820190508181035f83015261308f81613056565b905091905056fea2646970667358221220fb55cbeb38fe5bdc0bb9fd4fe31349a631d573dc60a60b65d63d21f27ffe249664736f6c63430008160033

Deployed Bytecode Sourcemap

9413:4888:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1696:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2628:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2017:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13998:117;;;;;;;;;;;;;:::i;:::-;;2837:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13156:147;;;;;;;;;;;;;:::i;:::-;;1916:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9604:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3140:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9633:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9748:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9719:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13695:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14123:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2133:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7095:103;;;;;;;;;;;;;:::i;:::-;;6872:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1804:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3388:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2268:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9677:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12000:1148;;;;;;;;;;;;;:::i;:::-;;2469:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7206:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13311:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1696:100;1750:13;1783:5;1776:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1696:100;:::o;2628:201::-;2711:4;2728:13;2744:12;:10;:12::i;:::-;2728:28;;2767:32;2776:5;2783:7;2792:6;2767:8;:32::i;:::-;2817:4;2810:11;;;2628:201;;;;:::o;2017:108::-;2078:7;2105:12;;2098:19;;2017:108;:::o;13998:117::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14064:10:::1;14056:28;;:51;14085:21;14056:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13998:117::o:0;2837:295::-;2968:4;2985:15;3003:12;:10;:12::i;:::-;2985:30;;3026:38;3042:4;3048:7;3057:6;3026:15;:38::i;:::-;3075:27;3085:4;3091:2;3095:6;3075:9;:27::i;:::-;3120:4;3113:11;;;2837:295;;;;;:::o;13156:147::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9552:42:::1;13238:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13220:44;;;13273:4;9552:42;13280:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13220:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13210:7;;:85;;;;;;;;;;;;;;;;;;13156:147::o:0;1916:93::-;1974:5;1999:2;1992:9;;1916:93;:::o;9604:22::-;;;;;;;;;;;;;:::o;3140:240::-;3228:4;3245:13;3261:12;:10;:12::i;:::-;3245:28;;3284:66;3293:5;3300:7;3339:10;3309:11;:18;3321:5;3309:18;;;;;;;;;;;;;;;:27;3328:7;3309:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;3284:8;:66::i;:::-;3368:4;3361:11;;;3140:240;;;;:::o;9633:35::-;;;:::o;9748:26::-;;;;:::o;9719:22::-;;;;:::o;13695:295::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13806:1:::1;13793:9;:14;;:33;;;;;13825:1;13811:10;:15;;13793:33;13785:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;13938:9;13928:7;:19;;;;13972:10;13958:11;:24;;;;13695:295:::0;;:::o;14123:138::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14195:5:::1;:14;;;14210:10;14222:5;:15;;;14246:4;14222:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14195:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14123:138:::0;:::o;2133:127::-;2207:7;2234:9;:18;2244:7;2234:18;;;;;;;;;;;;;;;;2227:25;;2133:127;;;:::o;7095:103::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7160:30:::1;7187:1;7160:18;:30::i;:::-;7095:103::o:0;6872:87::-;6918:7;6945:6;;;;;;;;;;;6938:13;;6872:87;:::o;1804:104::-;1860:13;1893:7;1886:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:104;:::o;3388:438::-;3481:4;3498:13;3514:12;:10;:12::i;:::-;3498:28;;3537:24;3564:11;:18;3576:5;3564:18;;;;;;;;;;;;;;;:27;3583:7;3564:27;;;;;;;;;;;;;;;;3537:54;;3630:15;3610:16;:35;;3602:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3723:60;3732:5;3739:7;3767:15;3748:16;:34;3723:8;:60::i;:::-;3814:4;3807:11;;;;3388:438;;;;:::o;2268:193::-;2347:4;2364:13;2380:12;:10;:12::i;:::-;2364:28;;2403;2413:5;2420:2;2424:6;2403:9;:28::i;:::-;2449:4;2442:11;;;2268:193;;;;:::o;9677:33::-;;;;:::o;12000:1148::-;12053:23;12079:24;12097:4;12079:9;:24::i;:::-;12053:50;;12143:1;12124:15;:20;12120:33;;12146:7;;;12120:33;12191:18;;12173:15;:36;12169:78;;;12229:18;;12211:36;;12169:78;12266:18;12287:21;12266:42;;12327:21;12365:1;12351:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12327:40;;12402:4;12384;12389:1;12384:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9552:42;12434:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12424:4;12429:1;12424:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;12467:58;12484:4;9552:42;12509:15;12467:8;:58::i;:::-;9552:42;12544:58;;;12623:15;12659:1;12681:4;12714;12740:15;12544:228;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12791:14;12808:37;12834:10;12808:21;:25;;:37;;;;:::i;:::-;12791:54;;12862:16;12881:22;12899:3;12881:13;12892:1;12881:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;12862:41;;12931:20;12942:8;12931:6;:10;;:20;;;;:::i;:::-;12922:29;;12976:10;12968:28;;:36;12997:6;12968:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13029:42;13021:60;;:70;13082:8;13021:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13123:8;13115:17;;;;;;;;;;12036:1112;;;;;12000:1148;:::o;2469:151::-;2558:7;2585:11;:18;2597:5;2585:18;;;;;;;;;;;;;;;:27;2604:7;2585:27;;;;;;;;;;;;;;;;2578:34;;2469:151;;;;:::o;7206:201::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7315:1:::1;7295:22;;:8;:22;;::::0;7287:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7371:28;7390:8;7371:18;:28::i;:::-;7206:201:::0;:::o;13311:376::-;7018:12;:10;:12::i;:::-;7007:23;;:7;:5;:7::i;:::-;:23;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13420:32:::1;13445:6;13420:20;13438:1;13420:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:32;;;;:::i;:::-;13404:12;:48;;13396:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;13548:29;13573:3;13548:20;13566:1;13548:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13532:12;:45;;13524:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13667:12;13646:18;:33;;;;13311:376:::0;:::o;160:98::-;213:7;240:10;233:17;;160:98;:::o;5519:380::-;5672:1;5655:19;;:5;:19;;;5647:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5753:1;5734:21;;:7;:21;;;5726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5837:6;5807:11;:18;5819:5;5807:18;;;;;;;;;;;;;;;:27;5826:7;5807:27;;;;;;;;;;;;;;;:36;;;;5875:7;5859:32;;5868:5;5859:32;;;5884:6;5859:32;;;;;;:::i;:::-;;;;;;;;5519:380;;;:::o;5907:453::-;6042:24;6069:25;6079:5;6086:7;6069:9;:25::i;:::-;6042:52;;6129:17;6109:16;:37;6105:248;;6191:6;6171:16;:26;;6163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6275:51;6284:5;6291:7;6319:6;6300:16;:25;6275:8;:51::i;:::-;6105:248;6031:329;5907:453;;;:::o;10691:1301::-;10839:1;10823:18;;:4;:18;;;10815:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10922:1;10908:16;;:2;:16;;;10900:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10998:1;10989:6;:10;10981:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11059:13;11075:21;:27;11097:4;11075:27;;;;;;;;;;;;;;;;;;;;;;;;;:56;;;;11106:21;:25;11128:2;11106:25;;;;;;;;;;;;;;;;;;;;;;;;;11075:56;11059:72;;11169:1;11150:21;;:7;;;;;;;;;;;:21;;;;:33;;;;11175:8;11150:33;11142:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;11232:11;11252:7;;;;;;;;;;;11246:13;;:2;:13;;;11232:27;;11270:10;11291:7;;;;;;;;;;;11283:15;;:4;:15;;;11270:28;;11357:18;;11329:24;11347:4;11329:9;:24::i;:::-;:46;;:71;;;;;11393:7;;;;;;;;;;;11392:8;11329:71;:94;;;;;11417:6;11329:94;:120;;;;;11441:8;11440:9;11329:120;11311:255;;;11486:4;11476:7;;:14;;;;;;;;;;;;;;;;;;11505:19;:17;:19::i;:::-;11549:5;11539:7;;:15;;;;;;;;;;;;;;;;;;11311:255;11578:11;11592:5;:29;;11610:11;;11592:29;;;11600:7;;11592:29;11578:43;;11644:1;11638:3;:7;11634:305;;;11667:8;11666:9;:21;;;;;11680:7;;;;;;;;;;;11679:8;11666:21;:42;;;;;11692:5;:15;;;;11701:6;11692:15;11666:42;11662:266;;;11729:12;11744:24;11764:3;11744:15;11755:3;11744:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11729:39;;11800:1;11793:4;:8;11789:77;;;11824:42;11840:4;11854;11861;11824:15;:42::i;:::-;11789:77;11896:16;11907:4;11896:6;:10;;:16;;;;:::i;:::-;11887:25;;11710:218;11662:266;11634:305;11951:33;11967:4;11973:2;11977:6;11951:15;:33::i;:::-;10804:1188;;;;10691:1301;;;:::o;7415:191::-;7489:16;7508:6;;;;;;;;;;;7489:25;;7534:8;7525:6;;:17;;;;;;;;;;;;;;;;;;7589:8;7558:40;;7579:8;7558:40;;;;;;;;;;;;7478:128;7415:191;:::o;7743:98::-;7801:7;7832:1;7828;:5;;;;:::i;:::-;7821:12;;7743:98;;;;:::o;7849:::-;7907:7;7938:1;7934;:5;;;;:::i;:::-;7927:12;;7849:98;;;;:::o;7955:::-;8013:7;8044:1;8040;:5;;;;:::i;:::-;8033:12;;7955:98;;;;:::o;3834:671::-;3981:1;3965:18;;:4;:18;;;3957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4058:1;4044:16;;:2;:16;;;4036:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4113:38;4134:4;4140:2;4144:6;4113:20;:38::i;:::-;4164:19;4186:9;:15;4196:4;4186:15;;;;;;;;;;;;;;;;4164:37;;4235:6;4220:11;:21;;4212:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4352:6;4338:11;:20;4320:9;:15;4330:4;4320:15;;;;;;;;;;;;;;;:38;;;;4397:6;4380:9;:13;4390:2;4380:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;4436:2;4421:26;;4430:4;4421:26;;;4440:6;4421:26;;;;;;:::i;:::-;;;;;;;;4460:37;4480:4;4486:2;4490:6;4460:19;:37::i;:::-;3946:559;3834:671;;;:::o;6368:125::-;;;;:::o;6501:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:474::-;5273:6;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5205:474;;;;;:::o;5685:109::-;5735:7;5764:24;5782:5;5764:24;:::i;:::-;5753:35;;5685:109;;;:::o;5800:148::-;5886:37;5917:5;5886:37;:::i;:::-;5879:5;5876:48;5866:76;;5938:1;5935;5928:12;5866:76;5800:148;:::o;5954:165::-;6013:5;6051:6;6038:20;6029:29;;6067:46;6107:5;6067:46;:::i;:::-;5954:165;;;;:::o;6125:355::-;6197:6;6246:2;6234:9;6225:7;6221:23;6217:32;6214:119;;;6252:79;;:::i;:::-;6214:119;6372:1;6397:66;6455:7;6446:6;6435:9;6431:22;6397:66;:::i;:::-;6387:76;;6343:130;6125:355;;;;:::o;6486:329::-;6545:6;6594:2;6582:9;6573:7;6569:23;6565:32;6562:119;;;6600:79;;:::i;:::-;6562:119;6720:1;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6691:117;6486:329;;;;:::o;6821:474::-;6889:6;6897;6946:2;6934:9;6925:7;6921:23;6917:32;6914:119;;;6952:79;;:::i;:::-;6914:119;7072:1;7097:53;7142:7;7133:6;7122:9;7118:22;7097:53;:::i;:::-;7087:63;;7043:117;7199:2;7225:53;7270:7;7261:6;7250:9;7246:22;7225:53;:::i;:::-;7215:63;;7170:118;6821:474;;;;;:::o;7301:329::-;7360:6;7409:2;7397:9;7388:7;7384:23;7380:32;7377:119;;;7415:79;;:::i;:::-;7377:119;7535:1;7560:53;7605:7;7596:6;7585:9;7581:22;7560:53;:::i;:::-;7550:63;;7506:117;7301:329;;;;:::o;7636:180::-;7684:77;7681:1;7674:88;7781:4;7778:1;7771:15;7805:4;7802:1;7795:15;7822:320;7866:6;7903:1;7897:4;7893:12;7883:22;;7950:1;7944:4;7940:12;7971:18;7961:81;;8027:4;8019:6;8015:17;8005:27;;7961:81;8089:2;8081:6;8078:14;8058:18;8055:38;8052:84;;8108:18;;:::i;:::-;8052:84;7873:269;7822:320;;;:::o;8148:182::-;8288:34;8284:1;8276:6;8272:14;8265:58;8148:182;:::o;8336:366::-;8478:3;8499:67;8563:2;8558:3;8499:67;:::i;:::-;8492:74;;8575:93;8664:3;8575:93;:::i;:::-;8693:2;8688:3;8684:12;8677:19;;8336:366;;;:::o;8708:419::-;8874:4;8912:2;8901:9;8897:18;8889:26;;8961:9;8955:4;8951:20;8947:1;8936:9;8932:17;8925:47;8989:131;9115:4;8989:131;:::i;:::-;8981:139;;8708:419;;;:::o;9133:143::-;9190:5;9221:6;9215:13;9206:22;;9237:33;9264:5;9237:33;:::i;:::-;9133:143;;;;:::o;9282:351::-;9352:6;9401:2;9389:9;9380:7;9376:23;9372:32;9369:119;;;9407:79;;:::i;:::-;9369:119;9527:1;9552:64;9608:7;9599:6;9588:9;9584:22;9552:64;:::i;:::-;9542:74;;9498:128;9282:351;;;;:::o;9639:332::-;9760:4;9798:2;9787:9;9783:18;9775:26;;9811:71;9879:1;9868:9;9864:17;9855:6;9811:71;:::i;:::-;9892:72;9960:2;9949:9;9945:18;9936:6;9892:72;:::i;:::-;9639:332;;;;;:::o;9977:180::-;10025:77;10022:1;10015:88;10122:4;10119:1;10112:15;10146:4;10143:1;10136:15;10163:191;10203:3;10222:20;10240:1;10222:20;:::i;:::-;10217:25;;10256:20;10274:1;10256:20;:::i;:::-;10251:25;;10299:1;10296;10292:9;10285:16;;10320:3;10317:1;10314:10;10311:36;;;10327:18;;:::i;:::-;10311:36;10163:191;;;;:::o;10360:233::-;10500:34;10496:1;10488:6;10484:14;10477:58;10569:16;10564:2;10556:6;10552:15;10545:41;10360:233;:::o;10599:366::-;10741:3;10762:67;10826:2;10821:3;10762:67;:::i;:::-;10755:74;;10838:93;10927:3;10838:93;:::i;:::-;10956:2;10951:3;10947:12;10940:19;;10599:366;;;:::o;10971:419::-;11137:4;11175:2;11164:9;11160:18;11152:26;;11224:9;11218:4;11214:20;11210:1;11199:9;11195:17;11188:47;11252:131;11378:4;11252:131;:::i;:::-;11244:139;;10971:419;;;:::o;11396:143::-;11453:5;11484:6;11478:13;11469:22;;11500:33;11527:5;11500:33;:::i;:::-;11396:143;;;;:::o;11545:351::-;11615:6;11664:2;11652:9;11643:7;11639:23;11635:32;11632:119;;;11670:79;;:::i;:::-;11632:119;11790:1;11815:64;11871:7;11862:6;11851:9;11847:22;11815:64;:::i;:::-;11805:74;;11761:128;11545:351;;;;:::o;11902:332::-;12023:4;12061:2;12050:9;12046:18;12038:26;;12074:71;12142:1;12131:9;12127:17;12118:6;12074:71;:::i;:::-;12155:72;12223:2;12212:9;12208:18;12199:6;12155:72;:::i;:::-;11902:332;;;;;:::o;12240:116::-;12310:21;12325:5;12310:21;:::i;:::-;12303:5;12300:32;12290:60;;12346:1;12343;12336:12;12290:60;12240:116;:::o;12362:137::-;12416:5;12447:6;12441:13;12432:22;;12463:30;12487:5;12463:30;:::i;:::-;12362:137;;;;:::o;12505:345::-;12572:6;12621:2;12609:9;12600:7;12596:23;12592:32;12589:119;;;12627:79;;:::i;:::-;12589:119;12747:1;12772:61;12825:7;12816:6;12805:9;12801:22;12772:61;:::i;:::-;12762:71;;12718:125;12505:345;;;;:::o;12856:224::-;12996:34;12992:1;12984:6;12980:14;12973:58;13065:7;13060:2;13052:6;13048:15;13041:32;12856:224;:::o;13086:366::-;13228:3;13249:67;13313:2;13308:3;13249:67;:::i;:::-;13242:74;;13325:93;13414:3;13325:93;:::i;:::-;13443:2;13438:3;13434:12;13427:19;;13086:366;;;:::o;13458:419::-;13624:4;13662:2;13651:9;13647:18;13639:26;;13711:9;13705:4;13701:20;13697:1;13686:9;13682:17;13675:47;13739:131;13865:4;13739:131;:::i;:::-;13731:139;;13458:419;;;:::o;13883:180::-;13931:77;13928:1;13921:88;14028:4;14025:1;14018:15;14052:4;14049:1;14042:15;14069:180;14117:77;14114:1;14107:88;14214:4;14211:1;14204:15;14238:4;14235:1;14228:15;14255:85;14300:7;14329:5;14318:16;;14255:85;;;:::o;14346:60::-;14374:3;14395:5;14388:12;;14346:60;;;:::o;14412:158::-;14470:9;14503:61;14521:42;14530:32;14556:5;14530:32;:::i;:::-;14521:42;:::i;:::-;14503:61;:::i;:::-;14490:74;;14412:158;;;:::o;14576:147::-;14671:45;14710:5;14671:45;:::i;:::-;14666:3;14659:58;14576:147;;:::o;14729:114::-;14796:6;14830:5;14824:12;14814:22;;14729:114;;;:::o;14849:184::-;14948:11;14982:6;14977:3;14970:19;15022:4;15017:3;15013:14;14998:29;;14849:184;;;;:::o;15039:132::-;15106:4;15129:3;15121:11;;15159:4;15154:3;15150:14;15142:22;;15039:132;;;:::o;15177:108::-;15254:24;15272:5;15254:24;:::i;:::-;15249:3;15242:37;15177:108;;:::o;15291:179::-;15360:10;15381:46;15423:3;15415:6;15381:46;:::i;:::-;15459:4;15454:3;15450:14;15436:28;;15291:179;;;;:::o;15476:113::-;15546:4;15578;15573:3;15569:14;15561:22;;15476:113;;;:::o;15625:732::-;15744:3;15773:54;15821:5;15773:54;:::i;:::-;15843:86;15922:6;15917:3;15843:86;:::i;:::-;15836:93;;15953:56;16003:5;15953:56;:::i;:::-;16032:7;16063:1;16048:284;16073:6;16070:1;16067:13;16048:284;;;16149:6;16143:13;16176:63;16235:3;16220:13;16176:63;:::i;:::-;16169:70;;16262:60;16315:6;16262:60;:::i;:::-;16252:70;;16108:224;16095:1;16092;16088:9;16083:14;;16048:284;;;16052:14;16348:3;16341:10;;15749:608;;;15625:732;;;;:::o;16363:831::-;16626:4;16664:3;16653:9;16649:19;16641:27;;16678:71;16746:1;16735:9;16731:17;16722:6;16678:71;:::i;:::-;16759:80;16835:2;16824:9;16820:18;16811:6;16759:80;:::i;:::-;16886:9;16880:4;16876:20;16871:2;16860:9;16856:18;16849:48;16914:108;17017:4;17008:6;16914:108;:::i;:::-;16906:116;;17032:72;17100:2;17089:9;17085:18;17076:6;17032:72;:::i;:::-;17114:73;17182:3;17171:9;17167:19;17158:6;17114:73;:::i;:::-;16363:831;;;;;;;;:::o;17200:225::-;17340:34;17336:1;17328:6;17324:14;17317:58;17409:8;17404:2;17396:6;17392:15;17385:33;17200:225;:::o;17431:366::-;17573:3;17594:67;17658:2;17653:3;17594:67;:::i;:::-;17587:74;;17670:93;17759:3;17670:93;:::i;:::-;17788:2;17783:3;17779:12;17772:19;;17431:366;;;:::o;17803:419::-;17969:4;18007:2;17996:9;17992:18;17984:26;;18056:9;18050:4;18046:20;18042:1;18031:9;18027:17;18020:47;18084:131;18210:4;18084:131;:::i;:::-;18076:139;;17803:419;;;:::o;18228:243::-;18368:34;18364:1;18356:6;18352:14;18345:58;18437:26;18432:2;18424:6;18420:15;18413:51;18228:243;:::o;18477:366::-;18619:3;18640:67;18704:2;18699:3;18640:67;:::i;:::-;18633:74;;18716:93;18805:3;18716:93;:::i;:::-;18834:2;18829:3;18825:12;18818:19;;18477:366;;;:::o;18849:419::-;19015:4;19053:2;19042:9;19038:18;19030:26;;19102:9;19096:4;19092:20;19088:1;19077:9;19073:17;19066:47;19130:131;19256:4;19130:131;:::i;:::-;19122:139;;18849:419;;;:::o;19274:240::-;19414:34;19410:1;19402:6;19398:14;19391:58;19483:23;19478:2;19470:6;19466:15;19459:48;19274:240;:::o;19520:366::-;19662:3;19683:67;19747:2;19742:3;19683:67;:::i;:::-;19676:74;;19759:93;19848:3;19759:93;:::i;:::-;19877:2;19872:3;19868:12;19861:19;;19520:366;;;:::o;19892:419::-;20058:4;20096:2;20085:9;20081:18;20073:26;;20145:9;20139:4;20135:20;20131:1;20120:9;20116:17;20109:47;20173:131;20299:4;20173:131;:::i;:::-;20165:139;;19892:419;;;:::o;20317:223::-;20457:34;20453:1;20445:6;20441:14;20434:58;20526:6;20521:2;20513:6;20509:15;20502:31;20317:223;:::o;20546:366::-;20688:3;20709:67;20773:2;20768:3;20709:67;:::i;:::-;20702:74;;20785:93;20874:3;20785:93;:::i;:::-;20903:2;20898:3;20894:12;20887:19;;20546:366;;;:::o;20918:419::-;21084:4;21122:2;21111:9;21107:18;21099:26;;21171:9;21165:4;21161:20;21157:1;21146:9;21142:17;21135:47;21199:131;21325:4;21199:131;:::i;:::-;21191:139;;20918:419;;;:::o;21343:221::-;21483:34;21479:1;21471:6;21467:14;21460:58;21552:4;21547:2;21539:6;21535:15;21528:29;21343:221;:::o;21570:366::-;21712:3;21733:67;21797:2;21792:3;21733:67;:::i;:::-;21726:74;;21809:93;21898:3;21809:93;:::i;:::-;21927:2;21922:3;21918:12;21911:19;;21570:366;;;:::o;21942:419::-;22108:4;22146:2;22135:9;22131:18;22123:26;;22195:9;22189:4;22185:20;22181:1;22170:9;22166:17;22159:47;22223:131;22349:4;22223:131;:::i;:::-;22215:139;;21942:419;;;:::o;22367:179::-;22507:31;22503:1;22495:6;22491:14;22484:55;22367:179;:::o;22552:366::-;22694:3;22715:67;22779:2;22774:3;22715:67;:::i;:::-;22708:74;;22791:93;22880:3;22791:93;:::i;:::-;22909:2;22904:3;22900:12;22893:19;;22552:366;;;:::o;22924:419::-;23090:4;23128:2;23117:9;23113:18;23105:26;;23177:9;23171:4;23167:20;23163:1;23152:9;23148:17;23141:47;23205:131;23331:4;23205:131;:::i;:::-;23197:139;;22924:419;;;:::o;23349:230::-;23489:34;23485:1;23477:6;23473:14;23466:58;23558:13;23553:2;23545:6;23541:15;23534:38;23349:230;:::o;23585:366::-;23727:3;23748:67;23812:2;23807:3;23748:67;:::i;:::-;23741:74;;23824:93;23913:3;23824:93;:::i;:::-;23942:2;23937:3;23933:12;23926:19;;23585:366;;;:::o;23957:419::-;24123:4;24161:2;24150:9;24146:18;24138:26;;24210:9;24204:4;24200:20;24196:1;24185:9;24181:17;24174:47;24238:131;24364:4;24238:131;:::i;:::-;24230:139;;23957:419;;;:::o;24382:228::-;24522:34;24518:1;24510:6;24506:14;24499:58;24591:11;24586:2;24578:6;24574:15;24567:36;24382:228;:::o;24616:366::-;24758:3;24779:67;24843:2;24838:3;24779:67;:::i;:::-;24772:74;;24855:93;24944:3;24855:93;:::i;:::-;24973:2;24968:3;24964:12;24957:19;;24616:366;;;:::o;24988:419::-;25154:4;25192:2;25181:9;25177:18;25169:26;;25241:9;25235:4;25231:20;25227:1;25216:9;25212:17;25205:47;25269:131;25395:4;25269:131;:::i;:::-;25261:139;;24988:419;;;:::o;25413:229::-;25553:34;25549:1;25541:6;25537:14;25530:58;25622:12;25617:2;25609:6;25605:15;25598:37;25413:229;:::o;25648:366::-;25790:3;25811:67;25875:2;25870:3;25811:67;:::i;:::-;25804:74;;25887:93;25976:3;25887:93;:::i;:::-;26005:2;26000:3;25996:12;25989:19;;25648:366;;;:::o;26020:419::-;26186:4;26224:2;26213:9;26209:18;26201:26;;26273:9;26267:4;26263:20;26259:1;26248:9;26244:17;26237:47;26301:131;26427:4;26301:131;:::i;:::-;26293:139;;26020:419;;;:::o;26445:181::-;26585:33;26581:1;26573:6;26569:14;26562:57;26445:181;:::o;26632:366::-;26774:3;26795:67;26859:2;26854:3;26795:67;:::i;:::-;26788:74;;26871:93;26960:3;26871:93;:::i;:::-;26989:2;26984:3;26980:12;26973:19;;26632:366;;;:::o;27004:419::-;27170:4;27208:2;27197:9;27193:18;27185:26;;27257:9;27251:4;27247:20;27243:1;27232:9;27228:17;27221:47;27285:131;27411:4;27285:131;:::i;:::-;27277:139;;27004:419;;;:::o;27429:194::-;27469:4;27489:20;27507:1;27489:20;:::i;:::-;27484:25;;27523:20;27541:1;27523:20;:::i;:::-;27518:25;;27567:1;27564;27560:9;27552:17;;27591:1;27585:4;27582:11;27579:37;;;27596:18;;:::i;:::-;27579:37;27429:194;;;;:::o;27629:410::-;27669:7;27692:20;27710:1;27692:20;:::i;:::-;27687:25;;27726:20;27744:1;27726:20;:::i;:::-;27721:25;;27781:1;27778;27774:9;27803:30;27821:11;27803:30;:::i;:::-;27792:41;;27982:1;27973:7;27969:15;27966:1;27963:22;27943:1;27936:9;27916:83;27893:139;;28012:18;;:::i;:::-;27893:139;27677:362;27629:410;;;;:::o;28045:180::-;28093:77;28090:1;28083:88;28190:4;28187:1;28180:15;28214:4;28211:1;28204:15;28231:185;28271:1;28288:20;28306:1;28288:20;:::i;:::-;28283:25;;28322:20;28340:1;28322:20;:::i;:::-;28317:25;;28361:1;28351:35;;28366:18;;:::i;:::-;28351:35;28408:1;28405;28401:9;28396:14;;28231:185;;;;:::o;28422:224::-;28562:34;28558:1;28550:6;28546:14;28539:58;28631:7;28626:2;28618:6;28614:15;28607:32;28422:224;:::o;28652:366::-;28794:3;28815:67;28879:2;28874:3;28815:67;:::i;:::-;28808:74;;28891:93;28980:3;28891:93;:::i;:::-;29009:2;29004:3;29000:12;28993:19;;28652:366;;;:::o;29024:419::-;29190:4;29228:2;29217:9;29213:18;29205:26;;29277:9;29271:4;29267:20;29263:1;29252:9;29248:17;29241:47;29305:131;29431:4;29305:131;:::i;:::-;29297:139;;29024:419;;;:::o;29449:222::-;29589:34;29585:1;29577:6;29573:14;29566:58;29658:5;29653:2;29645:6;29641:15;29634:30;29449:222;:::o;29677:366::-;29819:3;29840:67;29904:2;29899:3;29840:67;:::i;:::-;29833:74;;29916:93;30005:3;29916:93;:::i;:::-;30034:2;30029:3;30025:12;30018:19;;29677:366;;;:::o;30049:419::-;30215:4;30253:2;30242:9;30238:18;30230:26;;30302:9;30296:4;30292:20;30288:1;30277:9;30273:17;30266:47;30330:131;30456:4;30330:131;:::i;:::-;30322:139;;30049:419;;;:::o;30474:225::-;30614:34;30610:1;30602:6;30598:14;30591:58;30683:8;30678:2;30670:6;30666:15;30659:33;30474:225;:::o;30705:366::-;30847:3;30868:67;30932:2;30927:3;30868:67;:::i;:::-;30861:74;;30944:93;31033:3;30944:93;:::i;:::-;31062:2;31057:3;31053:12;31046:19;;30705:366;;;:::o;31077:419::-;31243:4;31281:2;31270:9;31266:18;31258:26;;31330:9;31324:4;31320:20;31316:1;31305:9;31301:17;31294:47;31358:131;31484:4;31358:131;:::i;:::-;31350:139;;31077:419;;;:::o

Swarm Source

ipfs://fb55cbeb38fe5bdc0bb9fd4fe31349a631d573dc60a60b65d63d21f27ffe2496

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.