Contract 0xc088383965bd8fdd0e41138e9a52b9a0f7f02939

Contract Overview

Balance:
0 BTT
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe5d5082379a39f689560efc69fae13212f65e3341dea8e7b9f0b494a7db61c810x60c06040104255292022-08-08 21:31:35180 days 23 hrs ago0xdc881a3b81bfa408c474bec5a6e2bcb334220ca8 IN  Create: Bridge0 BTT1,237.1853
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bridge

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at testnet.bttcscan.com on 2022-08-08
*/

// SPDX-License-Identifier: MIT
// File: contracts/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File: contracts/Bridge.sol



pragma solidity ^0.8.0;


contract Bridge {
    string public site = "https://tmm.exchange";
    string public telegram = "https://t.me/TakeMyMoneyExchange";
    string public email = "[email protected]";
    uint8 public feePercent = 3; // Комиссия
    uint256 public minFee = 2000000; // Минимальная комиссия за мост в TRX
    uint8 public referralBonusPercent = 25; // Реферальный бонус от прибыли сервиса
    bool public isDeprecated; // В случае устаревания контракта
    uint256 public totalOrders;
    mapping(uint256 => Order) public orders;
    mapping(address => address) public referrals;
    address public owner;
    address public service;
    IERC20 public immutable trxToken;
    IERC20 public immutable tmmToken;

    event Created(uint256 indexed id, address indexed from, string to, uint256 amountIn, uint256 amountOut, uint256 timestamp); // TODO Нужно время или оно будет в самом событии?
    event Pending(uint256 indexed id, address indexed from);
    event Success(uint256 indexed id, address indexed from, string tronHash);
    event Failed(uint256 indexed id, address indexed from, string message);
    event Canceled(uint256 indexed id, address indexed from);
    event Airdrop(address indexed to, uint256 amount, string message);

    enum Status {CREATED, PENDING, SUCCESS, FAILED, CANCELED}
    struct Order {
        address from; // BTTC address
        string to; // TRON address
        uint256 amountIn; // TRX in
        uint256 amountOut; // TRX out
        uint256 timestamp;
        Status status;
        string tronHash;
        string message;
    }

    constructor(address _trxAddress, address _tmmToken) {
        trxToken = IERC20(_trxAddress);
        tmmToken = IERC20(_tmmToken);
        owner = msg.sender;
    }

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

    modifier onlyService() {
        require(msg.sender == owner || msg.sender == service, "Ownable: caller is not the service");
        _;
    }

    modifier notDeprecated() {
        require(!isDeprecated, "Bridge: contract is deprecated");
        _;
    }

    function create(string calldata tronAddress, uint256 trxAmount) public notDeprecated returns (bool) {
        require(trxAmount > minFee, "Bridge: fee exceeds transfer amount");
        trxToken.transferFrom(msg.sender, address(this), trxAmount);
        uint256 out = getOutAmount(trxAmount);

        orders[totalOrders] = Order(
            msg.sender,
            tronAddress,
            trxAmount,
            out,
            block.timestamp,
            Status.CREATED,
            "",
            ""
        );

        emit Created(
            totalOrders,
            msg.sender,
            tronAddress,
            trxAmount,
            out,
            block.timestamp
        );

        totalOrders++;
        return true;
    }

    function create(string calldata tronAddress, uint256 trxAmount, address referral) public notDeprecated returns (bool) {
        if (referrals[msg.sender] == address(0) && referral != msg.sender) {
            referrals[msg.sender] = referral;
        }
        create(tronAddress, trxAmount);
        return true;
    }

    function pending(uint256 orderId) external onlyService returns (bool) {
        require(orders[orderId].status == Status.CREATED, "Bridge: status should be CREATED");
        orders[orderId].status = Status.PENDING;
        emit Pending(
            orderId,
            orders[orderId].from
        );
        return true;
    }

    function pending(uint256 orderId, string calldata tronHash) external onlyService returns (bool) {
        require(orders[orderId].status == Status.PENDING, "Bridge: status should be PENDING");
        orders[orderId].tronHash = tronHash;
        return true;
    }

    function success(uint256 orderId) external onlyService returns (bool) {
        require(orders[orderId].status == Status.PENDING, "Bridge: status should be PENDING");
        orders[orderId].status = Status.SUCCESS;
        emit Success(
            orderId,
            orders[orderId].from,
            orders[orderId].tronHash
        );

        uint256 airdropAmount = orders[orderId].amountIn * 100;
        airdrop(orders[orderId].from, airdropAmount);
        airdrop(referrals[orders[orderId].from], getPercent(airdropAmount, referralBonusPercent));
        return true;
    }

    function failed(uint256 orderId, string calldata message) external onlyService returns (bool) {
        require(orders[orderId].status == Status.CREATED || orders[orderId].status == Status.PENDING, "Bridge: status should be CREATED or PENDING");
        orders[orderId].status = Status.FAILED;
        orders[orderId].message = message;
        emit Failed(
            orderId,
            orders[orderId].from,
            message
        );
        return true;
    }

    function cancelOrder(uint256 orderId, address confirmSenderAddress) external onlyOwner returns (bool) {
        require(orders[orderId].from == confirmSenderAddress, "Bridge: address is incorrect");
        require(orders[orderId].status != Status.SUCCESS, "Bridge: status should not be SUCCESS");
        orders[orderId].status = Status.CANCELED;
        emit Canceled(
            orderId,
            orders[orderId].from
        );
        trxToken.transfer(orders[orderId].from, orders[orderId].amountIn - minFee);
        return true;
    }

    function getPercent(uint256 amount, uint8 percent) public pure returns (uint256) {
        return amount / 100 * percent;
    }

    function getOutAmount(uint256 trxAmountIn) public view returns (uint256) {
        uint256 fee = getPercent(trxAmountIn, feePercent);
        if (fee < minFee) {
            fee = minFee;
        }
        return trxAmountIn - fee;
    }

    function setServiceAddress(address serviceAddress) external onlyOwner returns (bool) {
        service = serviceAddress;
        return true;
    }

    function setDeprecated(bool deprecated) external onlyOwner returns (bool) {
        isDeprecated = deprecated;
        return true;
    }

    function setFeePercent(uint8 percent) external onlyOwner returns (bool) {
        feePercent = percent;
        return true;
    }

    function setMinFee(uint256 fee) external onlyOwner returns (bool) {
        minFee = fee;
        return true;
    }

    function setSite(string calldata url) external onlyOwner returns (bool) {
        site = url;
        return true;
    }

    function setTelegram(string calldata url) external onlyOwner returns (bool) {
        telegram = url;
        return true;
    }

    function setEmail(string calldata url) external onlyOwner returns (bool) {
        email = url;
        return true;
    }

    function setReferralBonusPercent(uint8 percent) external onlyOwner returns (bool) {
        referralBonusPercent = percent;
        return true;
    }

    function getBttBalance() public view returns (uint256 balance) {
        balance = address(this).balance;
    }

    function getTrxBalance() public view returns (uint256 balance) {
        balance = trxToken.balanceOf(address(this));
    }

    function getAirdropBalance() public view returns (uint256 balance) {
        balance = tmmToken.balanceOf(address(this));
    }

    function withdrawToken(address contractAddress) public onlyOwner returns (bool) {
        IERC20 token = IERC20(contractAddress);
        token.transfer(owner, token.balanceOf(address(this)));
        return true;
    }

    function withdrawBtt() public onlyOwner returns (bool) {
        payable(owner).transfer(address(this).balance);
        return true;
    }

    function setStatus(uint256 orderId, Status status, address confirmSenderAddress) external onlyOwner returns (bool) {
        require(orders[orderId].from == confirmSenderAddress, "Bridge: address is incorrect");
        orders[orderId].status = status;
        return true;
    }

    function setTronHash(uint256 orderId, string calldata tronHash, address confirmSenderAddress) external onlyOwner returns (bool) {
        require(orders[orderId].from == confirmSenderAddress, "Bridge: address is incorrect");
        orders[orderId].tronHash = tronHash;
        return true;
    }

    function airdrop(address to, uint256 amount) public onlyService returns (bool) {
        uint256 balance = tmmToken.balanceOf(address(this));
        if (balance >= amount && to != address(0)) {
            tmmToken.transfer(to, amount);
            emit Airdrop(to, amount, site);
        }
        return true;
    }

    function pay() external payable {}

    // Для получение перевода на адрес
    receive() external payable {}

    // При вызове неизвестной функции
    fallback() external payable {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_trxAddress","type":"address"},{"internalType":"address","name":"_tmmToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"Airdrop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"}],"name":"Canceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"to","type":"string"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"}],"name":"Pending","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"tronHash","type":"string"}],"name":"Success","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"confirmSenderAddress","type":"address"}],"name":"cancelOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tronAddress","type":"string"},{"internalType":"uint256","name":"trxAmount","type":"uint256"},{"internalType":"address","name":"referral","type":"address"}],"name":"create","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"tronAddress","type":"string"},{"internalType":"uint256","name":"trxAmount","type":"uint256"}],"name":"create","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"email","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"string","name":"message","type":"string"}],"name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feePercent","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAirdropBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBttBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"trxAmountIn","type":"uint256"}],"name":"getOutAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"percent","type":"uint8"}],"name":"getPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTrxBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isDeprecated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"string","name":"to","type":"string"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"enum Bridge.Status","name":"status","type":"uint8"},{"internalType":"string","name":"tronHash","type":"string"},{"internalType":"string","name":"message","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"string","name":"tronHash","type":"string"}],"name":"pending","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"pending","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"referralBonusPercent","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrals","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"service","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"deprecated","type":"bool"}],"name":"setDeprecated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"url","type":"string"}],"name":"setEmail","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"percent","type":"uint8"}],"name":"setFeePercent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setMinFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"percent","type":"uint8"}],"name":"setReferralBonusPercent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceAddress","type":"address"}],"name":"setServiceAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"url","type":"string"}],"name":"setSite","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"enum Bridge.Status","name":"status","type":"uint8"},{"internalType":"address","name":"confirmSenderAddress","type":"address"}],"name":"setStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"url","type":"string"}],"name":"setTelegram","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"string","name":"tronHash","type":"string"},{"internalType":"address","name":"confirmSenderAddress","type":"address"}],"name":"setTronHash","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"site","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"success","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tmmToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalOrders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trxToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawBtt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"withdrawToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280601481526020017f68747470733a2f2f746d6d2e65786368616e6765000000000000000000000000815250600090816200004a919062000475565b506040518060400160405280602081526020017f68747470733a2f2f742e6d652f54616b654d794d6f6e657945786368616e67658152506001908162000091919062000475565b506040518060400160405280601481526020017f737570706f727440746d6d2e65786368616e676500000000000000000000000081525060029081620000d8919062000475565b5060038060006101000a81548160ff021916908360ff160217905550621e84806004556019600560006101000a81548160ff021916908360ff1602179055503480156200012457600080fd5b5060405162004c9f38038062004c9f83398181016040528101906200014a9190620005c6565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200060d565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027d57607f821691505b60208210810362000293576200029262000235565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002be565b620003098683620002be565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000356620003506200034a8462000321565b6200032b565b62000321565b9050919050565b6000819050919050565b620003728362000335565b6200038a62000381826200035d565b848454620002cb565b825550505050565b600090565b620003a162000392565b620003ae81848462000367565b505050565b5b81811015620003d657620003ca60008262000397565b600181019050620003b4565b5050565b601f8211156200042557620003ef8162000299565b620003fa84620002ae565b810160208510156200040a578190505b620004226200041985620002ae565b830182620003b3565b50505b505050565b600082821c905092915050565b60006200044a600019846008026200042a565b1980831691505092915050565b600062000465838362000437565b9150826002028217905092915050565b6200048082620001fb565b67ffffffffffffffff8111156200049c576200049b62000206565b5b620004a8825462000264565b620004b5828285620003da565b600060209050601f831160018114620004ed5760008415620004d8578287015190505b620004e4858262000457565b86555062000554565b601f198416620004fd8662000299565b60005b82811015620005275784890151825560018201915060208501945060208101905062000500565b8683101562000547578489015162000543601f89168262000437565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200058e8262000561565b9050919050565b620005a08162000581565b8114620005ac57600080fd5b50565b600081519050620005c08162000595565b92915050565b60008060408385031215620005e057620005df6200055c565b5b6000620005f085828601620005af565b92505060206200060385828601620005af565b9150509250929050565b60805160a0516146426200065d60003960008181610b3601528181611e2c0152818161251701526125f50152600081816114e20152818161189301528181611d2a015261271701526146426000f3fe60806040526004361061023f5760003560e01c8063820e93f51161012e578063ba8de1b4116100ab578063e0d370ac1161006f578063e0d370ac14610977578063e8e81fe4146109a2578063e9715de9146109df578063f483817614610a0a578063f6e3964014610a4757610246565b8063ba8de1b41461086a578063c7178230146108a7578063cc6182b6146108d2578063d598d4c91461090f578063d848dee71461093a57610246565b80639444beea116100f25780639444beea146107445780639a2754f41461076f5780639ca423b3146107ac578063a85c38ef146107e9578063af6e62381461082d57610246565b8063820e93f514610637578063888ea24314610662578063894760691461069f5780638ba4cc3c146106dc5780638da5cb5b1461071957610246565b806336a55494116101bc578063625ffa4c11610180578063625ffa4c1461053c5780637323a7d31461057957806373bdb72d146105b65780637d89b2aa146105e15780637fd6f15c1461060c57610246565b806336a554941461042f57806346f81a871461046c57806347ecb665146104a95780634d2e13bf146104d457806358cfaee31461051157610246565b806324ec75901161020357806324ec759014610310578063282b065a1461033b57806329fa50f91461037857806331ac9920146103b55780633588f61c146103f257610246565b80630448e936146102485780630937fb57146102855780631b9265b8146102b05780631d834409146102ba5780631f3daec7146102e557610246565b3661024657005b005b34801561025457600080fd5b5061026f600480360381019061026a9190613230565b610a84565b60405161027c9190613298565b60405180910390f35b34801561029157600080fd5b5061029a610b32565b6040516102a791906132cc565b60405180910390f35b6102b8610bd3565b005b3480156102c657600080fd5b506102cf610bd5565b6040516102dc91906132cc565b60405180910390f35b3480156102f157600080fd5b506102fa610bdb565b6040516103079190613298565b60405180910390f35b34801561031c57600080fd5b50610325610cdd565b60405161033291906132cc565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190613230565b610ce3565b60405161036f9190613298565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a9190613313565b610d91565b6040516103ac9190613298565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190613373565b61104e565b6040516103e99190613298565b60405180910390f35b3480156103fe57600080fd5b5061041960048036038101906104149190613313565b6110f0565b6040516104269190613298565b60405180910390f35b34801561043b57600080fd5b50610456600480360381019061045191906133fe565b611295565b6040516104639190613298565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613472565b61144a565b6040516104a09190613298565b60405180910390f35b3480156104b557600080fd5b506104be6117bf565b6040516104cb919061356b565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190613373565b61184d565b60405161050891906132cc565b60405180910390f35b34801561051d57600080fd5b5061052661188f565b60405161053391906132cc565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e91906135b2565b611930565b6040516105709190613298565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190613605565b611aaf565b6040516105ad9190613298565b60405180910390f35b3480156105c257600080fd5b506105cb611e2a565b6040516105d891906136a4565b60405180910390f35b3480156105ed57600080fd5b506105f6611e4e565b60405161060391906132cc565b60405180910390f35b34801561061857600080fd5b50610621611e56565b60405161062e91906136db565b60405180910390f35b34801561064357600080fd5b5061064c611e69565b604051610659919061356b565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190613373565b611ef7565b6040516106969190613298565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c191906136f6565b61226e565b6040516106d39190613298565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe9190613723565b612429565b6040516107109190613298565b60405180910390f35b34801561072557600080fd5b5061072e6126ef565b60405161073b9190613772565b60405180910390f35b34801561075057600080fd5b50610759612715565b60405161076691906136a4565b60405180910390f35b34801561077b57600080fd5b50610796600480360381019061079191906137b9565b612739565b6040516107a391906132cc565b60405180910390f35b3480156107b857600080fd5b506107d360048036038101906107ce91906136f6565b61275e565b6040516107e09190613772565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b9190613373565b612791565b604051610824989796959493929190613870565b60405180910390f35b34801561083957600080fd5b50610854600480360381019061084f9190613373565b61299e565b6040516108619190613298565b60405180910390f35b34801561087657600080fd5b50610891600480360381019061088c9190613903565b612bd4565b60405161089e9190613298565b60405180910390f35b3480156108b357600080fd5b506108bc612d3c565b6040516108c99190613298565b60405180910390f35b3480156108de57600080fd5b506108f960048036038101906108f49190613977565b612d4f565b6040516109069190613298565b60405180910390f35b34801561091b57600080fd5b50610924612e05565b6040516109319190613772565b60405180910390f35b34801561094657600080fd5b50610961600480360381019061095c91906139d0565b612e2b565b60405161096e9190613298565b60405180910390f35b34801561098357600080fd5b5061098c612ee0565b604051610999919061356b565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190613230565b612f6e565b6040516109d69190613298565b60405180910390f35b3480156109eb57600080fd5b506109f461301c565b604051610a0191906136db565b60405180910390f35b348015610a1657600080fd5b50610a316004803603810190610a2c9190613977565b61302f565b604051610a3e9190613298565b60405180910390f35b348015610a5357600080fd5b50610a6e6004803603810190610a6991906136f6565b6130e5565b604051610a7b9190613298565b60405180910390f35b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90613a49565b60405180910390fd5b828260009182610b27929190613ca5565b506001905092915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b8d9190613772565b602060405180830381865afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190613d8a565b905090565b565b60065481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490613a49565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cd5573d6000803e3d6000fd5b506001905090565b60045481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c90613a49565b60405180910390fd5b828260029182610d86929190613ca5565b506001905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e3c5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290613e29565b60405180910390fd5b60006004811115610e8f57610e8e6137f9565b5b6007600086815260200190815260200160002060050160009054906101000a900460ff166004811115610ec557610ec46137f9565b5b1480610f18575060016004811115610ee057610edf6137f9565b5b6007600086815260200190815260200160002060050160009054906101000a900460ff166004811115610f1657610f156137f9565b5b145b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90613ebb565b60405180910390fd5b60036007600086815260200190815260200160002060050160006101000a81548160ff02191690836004811115610f9157610f906137f9565b5b02179055508282600760008781526020019081526020016000206007019182610fbb929190613ca5565b506007600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16847f923474ea2d0908325f82c147046061f911d9b5795bc85fa4c2044de2eb3e6af4858560405161103b929190613f17565b60405180910390a3600190509392505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790613a49565b60405180910390fd5b8160048190555060019050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061119b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190613e29565b60405180910390fd5b600160048111156111ee576111ed6137f9565b5b6007600086815260200190815260200160002060050160009054906101000a900460ff166004811115611224576112236137f9565b5b14611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613f87565b60405180910390fd5b8282600760008781526020019081526020016000206006019182611289929190613ca5565b50600190509392505050565b6000600560019054906101000a900460ff16156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90613ff3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156113ae57503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114325781600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61143d85858561144a565b5060019050949350505050565b6000600560019054906101000a900460ff161561149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390613ff3565b60405180910390fd5b60045482116114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d790614085565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161153d939291906140a5565b6020604051808303816000875af115801561155c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158091906140f1565b50600061158c8361184d565b90506040518061010001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200184815260200182815260200142815260200160006004811115611626576116256137f9565b5b81526020016040518060200160405280600081525081526020016040518060200160405280600081525081525060076000600654815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816116c4919061411e565b5060408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff0219169083600481111561170e5761170d6137f9565b5b021790555060c0820151816006019081611728919061411e565b5060e082015181600701908161173e919061411e565b509050503373ffffffffffffffffffffffffffffffffffffffff166006547ff3170e7d3e8e49a6ebf98507a065cbc446be0fc345ec0a11aa7dd47b43ca9a0d87878786426040516117939594939291906141f0565b60405180910390a3600660008154809291906117ae9061426d565b919050555060019150509392505050565b600180546117cc90613ad2565b80601f01602080910402602001604051908101604052809291908181526020018280546117f890613ad2565b80156118455780601f1061181a57610100808354040283529160200191611845565b820191906000526020600020905b81548152906001019060200180831161182857829003601f168201915b505050505081565b60008061186983600360009054906101000a900460ff16612739565b905060045481101561187b5760045490505b808361188791906142b5565b915050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118ea9190613772565b602060405180830381865afa158015611907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192b9190613d8a565b905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613a49565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166007600086815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5d90614335565b60405180910390fd5b826007600086815260200190815260200160002060050160006101000a81548160ff02191690836004811115611a9f57611a9e6137f9565b5b0217905550600190509392505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3890613a49565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166007600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90614335565b60405180910390fd5b60026004811115611bf957611bf86137f9565b5b6007600085815260200190815260200160002060050160009054906101000a900460ff166004811115611c2f57611c2e6137f9565b5b03611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c66906143c7565b60405180910390fd5b60046007600085815260200190815260200160002060050160006101000a81548160ff02191690836004811115611ca957611ca86137f9565b5b02179055506007600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16837fba05e869a56a216a7344a605ccad13464848815ad8bdf8d93ad788963a3cfdac60405160405180910390a37f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6007600086815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004546007600088815260200190815260200160002060020154611dbf91906142b5565b6040518363ffffffff1660e01b8152600401611ddc9291906143e7565b6020604051808303816000875af1158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f91906140f1565b506001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600047905090565b600360009054906101000a900460ff1681565b60028054611e7690613ad2565b80601f0160208091040260200160405190810160405280929190818152602001828054611ea290613ad2565b8015611eef5780601f10611ec457610100808354040283529160200191611eef565b820191906000526020600020905b815481529060010190602001808311611ed257829003601f168201915b505050505081565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611fa25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613e29565b60405180910390fd5b60016004811115611ff557611ff46137f9565b5b6007600084815260200190815260200160002060050160009054906101000a900460ff16600481111561202b5761202a6137f9565b5b1461206b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206290613f87565b60405180910390fd5b60026007600084815260200190815260200160002060050160006101000a81548160ff021916908360048111156120a5576120a46137f9565b5b02179055506007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16827fc013c91bdc665de3f74a735ba64fe91f98f5b80a226262d4b8a48cd0748dae966007600086815260200190815260200160002060060160405161213c9190614494565b60405180910390a360006064600760008581526020019081526020016000206002015461216991906144b6565b90506121ab6007600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612429565b50612263600860006007600087815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661225e83600560009054906101000a900460ff16612739565b612429565b506001915050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f790613a49565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161237d9190613772565b602060405180830381865afa15801561239a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123be9190613d8a565b6040518363ffffffff1660e01b81526004016123db9291906143e7565b6020604051808303816000875af11580156123fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241e91906140f1565b506001915050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806124d45750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250a90613e29565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161256e9190613772565b602060405180830381865afa15801561258b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125af9190613d8a565b90508281101580156125ee5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126e4577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff1660e01b815260040161264e9291906143e7565b6020604051808303816000875af115801561266d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269191906140f1565b508373ffffffffffffffffffffffffffffffffffffffff167fdacbe5d5df5bc8e1a2894b1091247c21806b87678d265cad10fb63690bc5565f8460006040516126db929190614510565b60405180910390a25b600191505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008160ff1660648461274c919061456f565b61275691906144b6565b905092915050565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546127da90613ad2565b80601f016020809104026020016040519081016040528092919081815260200182805461280690613ad2565b80156128535780601f1061282857610100808354040283529160200191612853565b820191906000526020600020905b81548152906001019060200180831161283657829003601f168201915b5050505050908060020154908060030154908060040154908060050160009054906101000a900460ff169080600601805461288d90613ad2565b80601f01602080910402602001604051908101604052809291908181526020018280546128b990613ad2565b80156129065780601f106128db57610100808354040283529160200191612906565b820191906000526020600020905b8154815290600101906020018083116128e957829003601f168201915b50505050509080600701805461291b90613ad2565b80601f016020809104026020016040519081016040528092919081815260200182805461294790613ad2565b80156129945780601f1061296957610100808354040283529160200191612994565b820191906000526020600020905b81548152906001019060200180831161297757829003601f168201915b5050505050905088565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a495750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7f90613e29565b60405180910390fd5b60006004811115612a9c57612a9b6137f9565b5b6007600084815260200190815260200160002060050160009054906101000a900460ff166004811115612ad257612ad16137f9565b5b14612b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b09906145ec565b60405180910390fd5b60016007600084815260200190815260200160002060050160006101000a81548160ff02191690836004811115612b4c57612b4b6137f9565b5b02179055506007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16827fadeed14ac865f3255adaf565c36c372429a5a6aa044bc04d34453e5b79e7cfd660405160405180910390a360019050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5d90613a49565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166007600087815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0190614335565b60405180910390fd5b8383600760008881526020019081526020016000206006019182612d2f929190613ca5565b5060019050949350505050565b600560019054906101000a900460ff1681565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd890613a49565b60405180910390fd5b81600560006101000a81548160ff021916908360ff16021790555060019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb490613a49565b60405180910390fd5b81600560016101000a81548160ff02191690831515021790555060019050919050565b60008054612eed90613ad2565b80601f0160208091040260200160405190810160405280929190818152602001828054612f1990613ad2565b8015612f665780601f10612f3b57610100808354040283529160200191612f66565b820191906000526020600020905b815481529060010190602001808311612f4957829003601f168201915b505050505081565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff790613a49565b60405180910390fd5b828260019182613011929190613ca5565b506001905092915050565b600560009054906101000a900460ff1681565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146130c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b890613a49565b60405180910390fd5b81600360006101000a81548160ff021916908360ff16021790555060019050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316e90613a49565b60405180910390fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126131f0576131ef6131cb565b5b8235905067ffffffffffffffff81111561320d5761320c6131d0565b5b602083019150836001820283011115613229576132286131d5565b5b9250929050565b60008060208385031215613247576132466131c1565b5b600083013567ffffffffffffffff811115613265576132646131c6565b5b613271858286016131da565b92509250509250929050565b60008115159050919050565b6132928161327d565b82525050565b60006020820190506132ad6000830184613289565b92915050565b6000819050919050565b6132c6816132b3565b82525050565b60006020820190506132e160008301846132bd565b92915050565b6132f0816132b3565b81146132fb57600080fd5b50565b60008135905061330d816132e7565b92915050565b60008060006040848603121561332c5761332b6131c1565b5b600061333a868287016132fe565b935050602084013567ffffffffffffffff81111561335b5761335a6131c6565b5b613367868287016131da565b92509250509250925092565b600060208284031215613389576133886131c1565b5b6000613397848285016132fe565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133cb826133a0565b9050919050565b6133db816133c0565b81146133e657600080fd5b50565b6000813590506133f8816133d2565b92915050565b60008060008060608587031215613418576134176131c1565b5b600085013567ffffffffffffffff811115613436576134356131c6565b5b613442878288016131da565b94509450506020613455878288016132fe565b9250506040613466878288016133e9565b91505092959194509250565b60008060006040848603121561348b5761348a6131c1565b5b600084013567ffffffffffffffff8111156134a9576134a86131c6565b5b6134b5868287016131da565b935093505060206134c8868287016132fe565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b8381101561350c5780820151818401526020810190506134f1565b8381111561351b576000848401525b50505050565b6000601f19601f8301169050919050565b600061353d826134d2565b61354781856134dd565b93506135578185602086016134ee565b61356081613521565b840191505092915050565b600060208201905081810360008301526135858184613532565b905092915050565b6005811061359a57600080fd5b50565b6000813590506135ac8161358d565b92915050565b6000806000606084860312156135cb576135ca6131c1565b5b60006135d9868287016132fe565b93505060206135ea8682870161359d565b92505060406135fb868287016133e9565b9150509250925092565b6000806040838503121561361c5761361b6131c1565b5b600061362a858286016132fe565b925050602061363b858286016133e9565b9150509250929050565b6000819050919050565b600061366a613665613660846133a0565b613645565b6133a0565b9050919050565b600061367c8261364f565b9050919050565b600061368e82613671565b9050919050565b61369e81613683565b82525050565b60006020820190506136b96000830184613695565b92915050565b600060ff82169050919050565b6136d5816136bf565b82525050565b60006020820190506136f060008301846136cc565b92915050565b60006020828403121561370c5761370b6131c1565b5b600061371a848285016133e9565b91505092915050565b6000806040838503121561373a576137396131c1565b5b6000613748858286016133e9565b9250506020613759858286016132fe565b9150509250929050565b61376c816133c0565b82525050565b60006020820190506137876000830184613763565b92915050565b613796816136bf565b81146137a157600080fd5b50565b6000813590506137b38161378d565b92915050565b600080604083850312156137d0576137cf6131c1565b5b60006137de858286016132fe565b92505060206137ef858286016137a4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60058110613839576138386137f9565b5b50565b600081905061384a82613828565b919050565b600061385a8261383c565b9050919050565b61386a8161384f565b82525050565b600061010082019050613886600083018b613763565b8181036020830152613898818a613532565b90506138a760408301896132bd565b6138b460608301886132bd565b6138c160808301876132bd565b6138ce60a0830186613861565b81810360c08301526138e08185613532565b905081810360e08301526138f48184613532565b90509998505050505050505050565b6000806000806060858703121561391d5761391c6131c1565b5b600061392b878288016132fe565b945050602085013567ffffffffffffffff81111561394c5761394b6131c6565b5b613958878288016131da565b9350935050604061396b878288016133e9565b91505092959194509250565b60006020828403121561398d5761398c6131c1565b5b600061399b848285016137a4565b91505092915050565b6139ad8161327d565b81146139b857600080fd5b50565b6000813590506139ca816139a4565b92915050565b6000602082840312156139e6576139e56131c1565b5b60006139f4848285016139bb565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a336020836134dd565b9150613a3e826139fd565b602082019050919050565b60006020820190508181036000830152613a6281613a26565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613aea57607f821691505b602082108103613afd57613afc613aa3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613b657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613b28565b613b6f8683613b28565b95508019841693508086168417925050509392505050565b6000613ba2613b9d613b98846132b3565b613645565b6132b3565b9050919050565b6000819050919050565b613bbc83613b87565b613bd0613bc882613ba9565b848454613b35565b825550505050565b600090565b613be5613bd8565b613bf0818484613bb3565b505050565b5b81811015613c1457613c09600082613bdd565b600181019050613bf6565b5050565b601f821115613c5957613c2a81613b03565b613c3384613b18565b81016020851015613c42578190505b613c56613c4e85613b18565b830182613bf5565b50505b505050565b600082821c905092915050565b6000613c7c60001984600802613c5e565b1980831691505092915050565b6000613c958383613c6b565b9150826002028217905092915050565b613caf8383613a69565b67ffffffffffffffff811115613cc857613cc7613a74565b5b613cd28254613ad2565b613cdd828285613c18565b6000601f831160018114613d0c5760008415613cfa578287013590505b613d048582613c89565b865550613d6c565b601f198416613d1a86613b03565b60005b82811015613d4257848901358255600182019150602085019450602081019050613d1d565b86831015613d5f5784890135613d5b601f891682613c6b565b8355505b6001600288020188555050505b50505050505050565b600081519050613d84816132e7565b92915050565b600060208284031215613da057613d9f6131c1565b5b6000613dae84828501613d75565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f742074686520736572766960008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e136022836134dd565b9150613e1e82613db7565b604082019050919050565b60006020820190508181036000830152613e4281613e06565b9050919050565b7f4272696467653a207374617475732073686f756c64206265204352454154454460008201527f206f722050454e44494e47000000000000000000000000000000000000000000602082015250565b6000613ea5602b836134dd565b9150613eb082613e49565b604082019050919050565b60006020820190508181036000830152613ed481613e98565b9050919050565b82818337600083830152505050565b6000613ef683856134dd565b9350613f03838584613edb565b613f0c83613521565b840190509392505050565b60006020820190508181036000830152613f32818486613eea565b90509392505050565b7f4272696467653a207374617475732073686f756c642062652050454e44494e47600082015250565b6000613f716020836134dd565b9150613f7c82613f3b565b602082019050919050565b60006020820190508181036000830152613fa081613f64565b9050919050565b7f4272696467653a20636f6e747261637420697320646570726563617465640000600082015250565b6000613fdd601e836134dd565b9150613fe882613fa7565b602082019050919050565b6000602082019050818103600083015261400c81613fd0565b9050919050565b7f4272696467653a206665652065786365656473207472616e7366657220616d6f60008201527f756e740000000000000000000000000000000000000000000000000000000000602082015250565b600061406f6023836134dd565b915061407a82614013565b604082019050919050565b6000602082019050818103600083015261409e81614062565b9050919050565b60006060820190506140ba6000830186613763565b6140c76020830185613763565b6140d460408301846132bd565b949350505050565b6000815190506140eb816139a4565b92915050565b600060208284031215614107576141066131c1565b5b6000614115848285016140dc565b91505092915050565b614127826134d2565b67ffffffffffffffff8111156141405761413f613a74565b5b61414a8254613ad2565b614155828285613c18565b600060209050601f8311600181146141885760008415614176578287015190505b6141808582613c89565b8655506141e8565b601f19841661419686613b03565b60005b828110156141be57848901518255600182019150602085019450602081019050614199565b868310156141db57848901516141d7601f891682613c6b565b8355505b6001600288020188555050505b505050505050565b6000608082019050818103600083015261420b818789613eea565b905061421a60208301866132bd565b61422760408301856132bd565b61423460608301846132bd565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614278826132b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036142aa576142a961423e565b5b600182019050919050565b60006142c0826132b3565b91506142cb836132b3565b9250828210156142de576142dd61423e565b5b828203905092915050565b7f4272696467653a206164647265737320697320696e636f727265637400000000600082015250565b600061431f601c836134dd565b915061432a826142e9565b602082019050919050565b6000602082019050818103600083015261434e81614312565b9050919050565b7f4272696467653a207374617475732073686f756c64206e6f742062652053554360008201527f4345535300000000000000000000000000000000000000000000000000000000602082015250565b60006143b16024836134dd565b91506143bc82614355565b604082019050919050565b600060208201905081810360008301526143e0816143a4565b9050919050565b60006040820190506143fc6000830185613763565b61440960208301846132bd565b9392505050565b6000815461441d81613ad2565b61442781866134dd565b9450600182166000811461444257600181146144585761448b565b60ff19831686528115156020028601935061448b565b61446185613b03565b60005b8381101561448357815481890152600182019150602081019050614464565b808801955050505b50505092915050565b600060208201905081810360008301526144ae8184614410565b905092915050565b60006144c1826132b3565b91506144cc836132b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145055761450461423e565b5b828202905092915050565b600060408201905061452560008301856132bd565b81810360208301526145378184614410565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061457a826132b3565b9150614585836132b3565b92508261459557614594614540565b5b828204905092915050565b7f4272696467653a207374617475732073686f756c642062652043524541544544600082015250565b60006145d66020836134dd565b91506145e1826145a0565b602082019050919050565b60006020820190508181036000830152614605816145c9565b905091905056fea264697066735822122032ffa44ccbcfe85dad5a8308b5f9f65c66e4567cdd58db1c137a3e0b1db6ef2064736f6c634300080f003300000000000000000000000049643791c87902a32f598746815e6adacbef751e0000000000000000000000004d8dc5442440f287677ccb80df13807c2503d495

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

00000000000000000000000049643791c87902a32f598746815e6adacbef751e0000000000000000000000004d8dc5442440f287677ccb80df13807c2503d495

-----Decoded View---------------
Arg [0] : _trxAddress (address): 0x49643791c87902a32f598746815e6adacbef751e
Arg [1] : _tmmToken (address): 0x4d8dc5442440f287677ccb80df13807c2503d495

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000049643791c87902a32f598746815e6adacbef751e
Arg [1] : 0000000000000000000000004d8dc5442440f287677ccb80df13807c2503d495


Deployed ByteCode Sourcemap

2952:9178:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9617:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10435:129;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11885:34;;;:::i;:::-;;3507:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10803:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3196:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9887:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7603:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9490:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6721:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6043:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5262:773;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3025:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8792:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10302:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10953:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8091:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3732:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10181:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3142:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3091:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6997:598;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10572:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11552:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3637:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3693:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8655:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3586:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3540:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;6376:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11244:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3415:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10020:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3664:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9201:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2975:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9748:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3298:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9349:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9043:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9617:123;9683:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9707:3:::1;;9700:4;:10;;;;;;;:::i;:::-;;9728:4;9721:11;;9617:123:::0;;;;:::o;10435:129::-;10485:15;10523:8;:18;;;10550:4;10523:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10513:43;;10435:129;:::o;11885:34::-;:::o;3507:26::-;;;;:::o;10803:142::-;10852:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10877:5:::1;;;;;;;;;;;10869:23;;:46;10893:21;10869:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10933:4;10926:11;;10803:142:::0;:::o;3196:31::-;;;;:::o;9887:125::-;9954:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9979:3:::1;;9971:5;:11;;;;;;;:::i;:::-;;10000:4;9993:11;;9887:125:::0;;;;:::o;7603:480::-;7691:4;5045:5;;;;;;;;;;;5031:19;;:10;:19;;;:44;;;;5068:7;;;;;;;;;;;5054:21;;:10;:21;;;5031:44;5023:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;7742:14:::1;7716:40;;;;;;;;:::i;:::-;;:6;:15;7723:7;7716:15;;;;;;;;;;;:22;;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;:84;;;;7786:14;7760:40;;;;;;;;:::i;:::-;;:6;:15;7767:7;7760:15;;;;;;;;;;;:22;;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;7716:84;7708:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;7884:13;7859:6;:15;7866:7;7859:15;;;;;;;;;;;:22;;;:38;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;7934:7;;7908:6;:15;7915:7;7908:15;;;;;;;;;;;:23;;:33;;;;;;;:::i;:::-;;8000:6;:15;8007:7;8000:15;;;;;;;;;;;:20;;;;;;;;;;;;7957:96;;7978:7;7957:96;8035:7;;7957:96;;;;;;;:::i;:::-;;;;;;;;8071:4;8064:11;;7603:480:::0;;;;;:::o;9490:119::-;9550:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9576:3:::1;9567:6;:12;;;;9597:4;9590:11;;9490:119:::0;;;:::o;6721:268::-;6811:4;5045:5;;;;;;;;;;;5031:19;;:10;:19;;;:44;;;;5068:7;;;;;;;;;;;5054:21;;:10;:21;;;5031:44;5023:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;6862:14:::1;6836:40;;;;;;;;:::i;:::-;;:6;:15;6843:7;6836:15;;;;;;;;;;;:22;;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;6828:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6951:8;;6924:6;:15;6931:7;6924:15;;;;;;;;;;;:24;;:35;;;;;;;:::i;:::-;;6977:4;6970:11;;6721:268:::0;;;;;:::o;6043:325::-;6155:4;5187:12;;;;;;;;;;;5186:13;5178:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6209:1:::1;6176:35;;:9;:21;6186:10;6176:21;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;:61;;;;;6227:10;6215:22;;:8;:22;;;;6176:61;6172:126;;;6278:8;6254:9;:21;6264:10;6254:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6172:126;6308:30;6315:11;;6328:9;6308:6;:30::i;:::-;;6356:4;6349:11;;6043:325:::0;;;;;;:::o;5262:773::-;5356:4;5187:12;;;;;;;;;;;5186:13;5178:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5393:6:::1;;5381:9;:18;5373:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5450:8;:21;;;5472:10;5492:4;5499:9;5450:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5520:11;5534:23;5547:9;5534:12;:23::i;:::-;5520:37;;5592:202;;;;;;;;5612:10;5592:202;;;;;;5637:11;;5592:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5663:9;5592:202;;;;5687:3;5592:202;;;;5705:15;5592:202;;;;5735:14;5592:202;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;::::0;5570:6:::1;:19;5577:11;;5570:19;;;;;;;;;;;:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;5860:10;5812:167;;5834:11;;5812:167;5885:11;;5911:9;5935:3;5953:15;5812:167;;;;;;;;;;:::i;:::-;;;;;;;;5992:11;;:13;;;;;;;;;:::i;:::-;;;;;;6023:4;6016:11;;;5262:773:::0;;;;;:::o;3025:59::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8792:243::-;8856:7;8876:11;8890:35;8901:11;8914:10;;;;;;;;;;;8890;:35::i;:::-;8876:49;;8946:6;;8940:3;:12;8936:57;;;8975:6;;8969:12;;8936:57;9024:3;9010:11;:17;;;;:::i;:::-;9003:24;;;8792:243;;;:::o;10302:125::-;10348:15;10386:8;:18;;;10413:4;10386:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10376:43;;10302:125;:::o;10953:283::-;11062:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11111:20:::1;11087:44;;:6;:15;11094:7;11087:15;;;;;;;;;;;:20;;;;;;;;;;;;:44;;;11079:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11200:6;11175;:15;11182:7;11175:15;;;;;;;;;;;:22;;;:31;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;11224:4;11217:11;;10953:283:::0;;;;;:::o;8091:556::-;8187:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8236:20:::1;8212:44;;:6;:15;8219:7;8212:15;;;;;;;;;;;:20;;;;;;;;;;;;:44;;;8204:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8334:14;8308:40;;;;;;;;:::i;:::-;;:6;:15;8315:7;8308:15;;;;;;;;;;;:22;;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;::::0;8300:89:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8425:15;8400:6;:15;8407:7;8400:15;;;;;;;;;;;:22;;;:40;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;8501:6;:15;8508:7;8501:15;;;;;;;;;;;:20;;;;;;;;;;;;8456:76;;8479:7;8456:76;;;;;;;;;;8543:8;:17;;;8561:6;:15;8568:7;8561:15;;;;;;;;;;;:20;;;;;;;;;;;;8610:6;;8583;:15;8590:7;8583:15;;;;;;;;;;;:24;;;:33;;;;:::i;:::-;8543:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8635:4;8628:11;;8091:556:::0;;;;:::o;3732:32::-;;;:::o;10181:113::-;10227:15;10265:21;10255:31;;10181:113;:::o;3142:27::-;;;;;;;;;;;;;:::o;3091:44::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6997:598::-;7061:4;5045:5;;;;;;;;;;;5031:19;;:10;:19;;;:44;;;;5068:7;;;;;;;;;;;5054:21;;:10;:21;;;5031:44;5023:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;7112:14:::1;7086:40;;;;;;;;:::i;:::-;;:6;:15;7093:7;7086:15;;;;;;;;;;;:22;;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;7078:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7199:14;7174:6;:15;7181:7;7174:15;;;;;;;;;;;:22;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;7273:6;:15;7280:7;7273:15;;;;;;;;;;;:20;;;;;;;;;;;;7229:114;;7251:7;7229:114;7308:6;:15;7315:7;7308:15;;;;;;;;;;;:24;;7229:114;;;;;;:::i;:::-;;;;;;;;7356:21;7407:3;7380:6;:15;7387:7;7380:15;;;;;;;;;;;:24;;;:30;;;;:::i;:::-;7356:54;;7421:44;7429:6;:15;7436:7;7429:15;;;;;;;;;;;:20;;;;;;;;;;;;7451:13;7421:7;:44::i;:::-;;7476:89;7484:9;:31;7494:6;:15;7501:7;7494:15;;;;;;;;;;;:20;;;;;;;;;;;;7484:31;;;;;;;;;;;;;;;;;;;;;;;;;7517:47;7528:13;7543:20;;;;;;;;;;;7517:10;:47::i;:::-;7476:7;:89::i;:::-;;7583:4;7576:11;;;6997:598:::0;;;:::o;10572:223::-;10646:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10663:12:::1;10685:15;10663:38;;10712:5;:14;;;10727:5;;;;;;;;;;;10734;:15;;;10758:4;10734:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10712:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10783:4;10776:11;;;10572:223:::0;;;:::o;11552:325::-;11625:4;5045:5;;;;;;;;;;;5031:19;;:10;:19;;;:44;;;;5068:7;;;;;;;;;;;5054:21;;:10;:21;;;5031:44;5023:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:15:::1;11660:8;:18;;;11687:4;11660:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11642:51;;11719:6;11708:7;:17;;:37;;;;;11743:1;11729:16;;:2;:16;;;;11708:37;11704:144;;;11762:8;:17;;;11780:2;11784:6;11762:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11819:2;11811:25;;;11823:6;11831:4;11811:25;;;;;;;:::i;:::-;;;;;;;;11704:144;11865:4;11858:11;;;11552:325:::0;;;;:::o;3637:20::-;;;;;;;;;;;;;:::o;3693:32::-;;;:::o;8655:129::-;8727:7;8769;8754:22;;8763:3;8754:6;:12;;;;:::i;:::-;:22;;;;:::i;:::-;8747:29;;8655:129;;;;:::o;3586:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;3540:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6376:337::-;6440:4;5045:5;;;;;;;;;;;5031:19;;:10;:19;;;:44;;;;5068:7;;;;;;;;;;;5054:21;;:10;:21;;;5031:44;5023:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;6491:14:::1;6465:40;;;;;;;;:::i;:::-;;:6;:15;6472:7;6465:15;;;;;;;;;;;:22;;;;;;;;;;;;:40;;;;;;;;:::i;:::-;;;6457:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6578:14;6553:6;:15;6560:7;6553:15;;;;;;;;;;;:22;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6652:6;:15;6659:7;6652:15;;;;;;;;;;;:20;;;;;;;;;;;;6608:75;;6630:7;6608:75;;;;;;;;;;6701:4;6694:11;;6376:337:::0;;;:::o;11244:300::-;11366:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11415:20:::1;11391:44;;:6;:15;11398:7;11391:15;;;;;;;;;;;:20;;;;;;;;;;;;:44;;;11383:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11506:8;;11479:6;:15;11486:7;11479:15;;;;;;;;;;;:24;;:35;;;;;;;:::i;:::-;;11532:4;11525:11;;11244:300:::0;;;;;;:::o;3415:24::-;;;;;;;;;;;;;:::o;10020:153::-;10096:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10136:7:::1;10113:20;;:30;;;;;;;;;;;;;;;;;;10161:4;10154:11;;10020:153:::0;;;:::o;3664:22::-;;;;;;;;;;;;;:::o;9201:140::-;9269:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9301:10:::1;9286:12;;:25;;;;;;;;;;;;;;;;;;9329:4;9322:11;;9201:140:::0;;;:::o;2975:43::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9748:131::-;9818:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9846:3:::1;;9835:8;:14;;;;;;;:::i;:::-;;9867:4;9860:11;;9748:131:::0;;;;:::o;3298:38::-;;;;;;;;;;;;;:::o;9349:133::-;9415:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9445:7:::1;9432:10;;:20;;;;;;;;;;;;;;;;;;9470:4;9463:11;;9349:133:::0;;;:::o;9043:150::-;9122:4;4919:5;;;;;;;;;;;4905:19;;:10;:19;;;4897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9149:14:::1;9139:7;;:24;;;;;;;;;;;;;;;;;;9181:4;9174:11;;9043:150:::0;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;717:553;775:8;785:6;835:3;828:4;820:6;816:17;812:27;802:122;;843:79;;:::i;:::-;802:122;956:6;943:20;933:30;;986:18;978:6;975:30;972:117;;;1008:79;;:::i;:::-;972:117;1122:4;1114:6;1110:17;1098:29;;1176:3;1168:4;1160:6;1156:17;1146:8;1142:32;1139:41;1136:128;;;1183:79;;:::i;:::-;1136:128;717:553;;;;;:::o;1276:529::-;1347:6;1355;1404:2;1392:9;1383:7;1379:23;1375:32;1372:119;;;1410:79;;:::i;:::-;1372:119;1558:1;1547:9;1543:17;1530:31;1588:18;1580:6;1577:30;1574:117;;;1610:79;;:::i;:::-;1574:117;1723:65;1780:7;1771:6;1760:9;1756:22;1723:65;:::i;:::-;1705:83;;;;1501:297;1276:529;;;;;:::o;1811:90::-;1845:7;1888:5;1881:13;1874:21;1863:32;;1811:90;;;:::o;1907:109::-;1988:21;2003:5;1988:21;:::i;:::-;1983:3;1976:34;1907:109;;:::o;2022:210::-;2109:4;2147:2;2136:9;2132:18;2124:26;;2160:65;2222:1;2211:9;2207:17;2198:6;2160:65;:::i;:::-;2022:210;;;;:::o;2238:77::-;2275:7;2304:5;2293:16;;2238:77;;;:::o;2321:118::-;2408:24;2426:5;2408:24;:::i;:::-;2403:3;2396:37;2321:118;;:::o;2445:222::-;2538:4;2576:2;2565:9;2561:18;2553:26;;2589:71;2657:1;2646:9;2642:17;2633:6;2589:71;:::i;:::-;2445:222;;;;:::o;2673:122::-;2746:24;2764:5;2746:24;:::i;:::-;2739:5;2736:35;2726:63;;2785:1;2782;2775:12;2726:63;2673:122;:::o;2801:139::-;2847:5;2885:6;2872:20;2863:29;;2901:33;2928:5;2901:33;:::i;:::-;2801:139;;;;:::o;2946:674::-;3026:6;3034;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3372:2;3361:9;3357:18;3344:32;3403:18;3395:6;3392:30;3389:117;;;3425:79;;:::i;:::-;3389:117;3538:65;3595:7;3586:6;3575:9;3571:22;3538:65;:::i;:::-;3520:83;;;;3315:298;2946:674;;;;;:::o;3626:329::-;3685:6;3734:2;3722:9;3713:7;3709:23;3705:32;3702:119;;;3740:79;;:::i;:::-;3702:119;3860:1;3885:53;3930:7;3921:6;3910:9;3906:22;3885:53;:::i;:::-;3875:63;;3831:117;3626:329;;;;:::o;3961:126::-;3998:7;4038:42;4031:5;4027:54;4016:65;;3961:126;;;:::o;4093:96::-;4130:7;4159:24;4177:5;4159:24;:::i;:::-;4148:35;;4093:96;;;:::o;4195:122::-;4268:24;4286:5;4268:24;:::i;:::-;4261:5;4258:35;4248:63;;4307:1;4304;4297:12;4248:63;4195:122;:::o;4323:139::-;4369:5;4407:6;4394:20;4385:29;;4423:33;4450:5;4423:33;:::i;:::-;4323:139;;;;:::o;4468:819::-;4557:6;4565;4573;4581;4630:2;4618:9;4609:7;4605:23;4601:32;4598:119;;;4636:79;;:::i;:::-;4598:119;4784:1;4773:9;4769:17;4756:31;4814:18;4806:6;4803:30;4800:117;;;4836:79;;:::i;:::-;4800:117;4949:65;5006:7;4997:6;4986:9;4982:22;4949:65;:::i;:::-;4931:83;;;;4727:297;5063:2;5089:53;5134:7;5125:6;5114:9;5110:22;5089:53;:::i;:::-;5079:63;;5034:118;5191:2;5217:53;5262:7;5253:6;5242:9;5238:22;5217:53;:::i;:::-;5207:63;;5162:118;4468:819;;;;;;;:::o;5293:674::-;5373:6;5381;5389;5438:2;5426:9;5417:7;5413:23;5409:32;5406:119;;;5444:79;;:::i;:::-;5406:119;5592:1;5581:9;5577:17;5564:31;5622:18;5614:6;5611:30;5608:117;;;5644:79;;:::i;:::-;5608:117;5757:65;5814:7;5805:6;5794:9;5790:22;5757:65;:::i;:::-;5739:83;;;;5535:297;5871:2;5897:53;5942:7;5933:6;5922:9;5918:22;5897:53;:::i;:::-;5887:63;;5842:118;5293:674;;;;;:::o;5973:99::-;6025:6;6059:5;6053:12;6043:22;;5973:99;;;:::o;6078:169::-;6162:11;6196:6;6191:3;6184:19;6236:4;6231:3;6227:14;6212:29;;6078:169;;;;:::o;6253:307::-;6321:1;6331:113;6345:6;6342:1;6339:13;6331:113;;;6430:1;6425:3;6421:11;6415:18;6411:1;6406:3;6402:11;6395:39;6367:2;6364:1;6360:10;6355:15;;6331:113;;;6462:6;6459:1;6456:13;6453:101;;;6542:1;6533:6;6528:3;6524:16;6517:27;6453:101;6302:258;6253:307;;;:::o;6566:102::-;6607:6;6658:2;6654:7;6649:2;6642:5;6638:14;6634:28;6624:38;;6566:102;;;:::o;6674:364::-;6762:3;6790:39;6823:5;6790:39;:::i;:::-;6845:71;6909:6;6904:3;6845:71;:::i;:::-;6838:78;;6925:52;6970:6;6965:3;6958:4;6951:5;6947:16;6925:52;:::i;:::-;7002:29;7024:6;7002:29;:::i;:::-;6997:3;6993:39;6986:46;;6766:272;6674:364;;;;:::o;7044:313::-;7157:4;7195:2;7184:9;7180:18;7172:26;;7244:9;7238:4;7234:20;7230:1;7219:9;7215:17;7208:47;7272:78;7345:4;7336:6;7272:78;:::i;:::-;7264:86;;7044:313;;;;:::o;7363:109::-;7446:1;7439:5;7436:12;7426:40;;7462:1;7459;7452:12;7426:40;7363:109;:::o;7478:159::-;7534:5;7572:6;7559:20;7550:29;;7588:43;7625:5;7588:43;:::i;:::-;7478:159;;;;:::o;7643:639::-;7730:6;7738;7746;7795:2;7783:9;7774:7;7770:23;7766:32;7763:119;;;7801:79;;:::i;:::-;7763:119;7921:1;7946:53;7991:7;7982:6;7971:9;7967:22;7946:53;:::i;:::-;7936:63;;7892:117;8048:2;8074:63;8129:7;8120:6;8109:9;8105:22;8074:63;:::i;:::-;8064:73;;8019:128;8186:2;8212:53;8257:7;8248:6;8237:9;8233:22;8212:53;:::i;:::-;8202:63;;8157:118;7643:639;;;;;:::o;8288:474::-;8356:6;8364;8413:2;8401:9;8392:7;8388:23;8384:32;8381:119;;;8419:79;;:::i;:::-;8381:119;8539:1;8564:53;8609:7;8600:6;8589:9;8585:22;8564:53;:::i;:::-;8554:63;;8510:117;8666:2;8692:53;8737:7;8728:6;8717:9;8713:22;8692:53;:::i;:::-;8682:63;;8637:118;8288:474;;;;;:::o;8768:60::-;8796:3;8817:5;8810:12;;8768:60;;;:::o;8834:142::-;8884:9;8917:53;8935:34;8944:24;8962:5;8944:24;:::i;:::-;8935:34;:::i;:::-;8917:53;:::i;:::-;8904:66;;8834:142;;;:::o;8982:126::-;9032:9;9065:37;9096:5;9065:37;:::i;:::-;9052:50;;8982:126;;;:::o;9114:139::-;9177:9;9210:37;9241:5;9210:37;:::i;:::-;9197:50;;9114:139;;;:::o;9259:157::-;9359:50;9403:5;9359:50;:::i;:::-;9354:3;9347:63;9259:157;;:::o;9422:248::-;9528:4;9566:2;9555:9;9551:18;9543:26;;9579:84;9660:1;9649:9;9645:17;9636:6;9579:84;:::i;:::-;9422:248;;;;:::o;9676:86::-;9711:7;9751:4;9744:5;9740:16;9729:27;;9676:86;;;:::o;9768:112::-;9851:22;9867:5;9851:22;:::i;:::-;9846:3;9839:35;9768:112;;:::o;9886:214::-;9975:4;10013:2;10002:9;9998:18;9990:26;;10026:67;10090:1;10079:9;10075:17;10066:6;10026:67;:::i;:::-;9886:214;;;;:::o;10106:329::-;10165:6;10214:2;10202:9;10193:7;10189:23;10185:32;10182:119;;;10220:79;;:::i;:::-;10182:119;10340:1;10365:53;10410:7;10401:6;10390:9;10386:22;10365:53;:::i;:::-;10355:63;;10311:117;10106:329;;;;:::o;10441:474::-;10509:6;10517;10566:2;10554:9;10545:7;10541:23;10537:32;10534:119;;;10572:79;;:::i;:::-;10534:119;10692:1;10717:53;10762:7;10753:6;10742:9;10738:22;10717:53;:::i;:::-;10707:63;;10663:117;10819:2;10845:53;10890:7;10881:6;10870:9;10866:22;10845:53;:::i;:::-;10835:63;;10790:118;10441:474;;;;;:::o;10921:118::-;11008:24;11026:5;11008:24;:::i;:::-;11003:3;10996:37;10921:118;;:::o;11045:222::-;11138:4;11176:2;11165:9;11161:18;11153:26;;11189:71;11257:1;11246:9;11242:17;11233:6;11189:71;:::i;:::-;11045:222;;;;:::o;11273:118::-;11344:22;11360:5;11344:22;:::i;:::-;11337:5;11334:33;11324:61;;11381:1;11378;11371:12;11324:61;11273:118;:::o;11397:135::-;11441:5;11479:6;11466:20;11457:29;;11495:31;11520:5;11495:31;:::i;:::-;11397:135;;;;:::o;11538:470::-;11604:6;11612;11661:2;11649:9;11640:7;11636:23;11632:32;11629:119;;;11667:79;;:::i;:::-;11629:119;11787:1;11812:53;11857:7;11848:6;11837:9;11833:22;11812:53;:::i;:::-;11802:63;;11758:117;11914:2;11940:51;11983:7;11974:6;11963:9;11959:22;11940:51;:::i;:::-;11930:61;;11885:116;11538:470;;;;;:::o;12014:180::-;12062:77;12059:1;12052:88;12159:4;12156:1;12149:15;12183:4;12180:1;12173:15;12200:115;12283:1;12276:5;12273:12;12263:46;;12289:18;;:::i;:::-;12263:46;12200:115;:::o;12321:131::-;12368:7;12397:5;12386:16;;12403:43;12440:5;12403:43;:::i;:::-;12321:131;;;:::o;12458:::-;12516:9;12549:34;12577:5;12549:34;:::i;:::-;12536:47;;12458:131;;;:::o;12595:147::-;12690:45;12729:5;12690:45;:::i;:::-;12685:3;12678:58;12595:147;;:::o;12748:1286::-;13105:4;13143:3;13132:9;13128:19;13120:27;;13157:71;13225:1;13214:9;13210:17;13201:6;13157:71;:::i;:::-;13275:9;13269:4;13265:20;13260:2;13249:9;13245:18;13238:48;13303:78;13376:4;13367:6;13303:78;:::i;:::-;13295:86;;13391:72;13459:2;13448:9;13444:18;13435:6;13391:72;:::i;:::-;13473;13541:2;13530:9;13526:18;13517:6;13473:72;:::i;:::-;13555:73;13623:3;13612:9;13608:19;13599:6;13555:73;:::i;:::-;13638:81;13714:3;13703:9;13699:19;13690:6;13638:81;:::i;:::-;13767:9;13761:4;13757:20;13751:3;13740:9;13736:19;13729:49;13795:78;13868:4;13859:6;13795:78;:::i;:::-;13787:86;;13921:9;13915:4;13911:20;13905:3;13894:9;13890:19;13883:49;13949:78;14022:4;14013:6;13949:78;:::i;:::-;13941:86;;12748:1286;;;;;;;;;;;:::o;14040:819::-;14129:6;14137;14145;14153;14202:2;14190:9;14181:7;14177:23;14173:32;14170:119;;;14208:79;;:::i;:::-;14170:119;14328:1;14353:53;14398:7;14389:6;14378:9;14374:22;14353:53;:::i;:::-;14343:63;;14299:117;14483:2;14472:9;14468:18;14455:32;14514:18;14506:6;14503:30;14500:117;;;14536:79;;:::i;:::-;14500:117;14649:65;14706:7;14697:6;14686:9;14682:22;14649:65;:::i;:::-;14631:83;;;;14426:298;14763:2;14789:53;14834:7;14825:6;14814:9;14810:22;14789:53;:::i;:::-;14779:63;;14734:118;14040:819;;;;;;;:::o;14865:325::-;14922:6;14971:2;14959:9;14950:7;14946:23;14942:32;14939:119;;;14977:79;;:::i;:::-;14939:119;15097:1;15122:51;15165:7;15156:6;15145:9;15141:22;15122:51;:::i;:::-;15112:61;;15068:115;14865:325;;;;:::o;15196:116::-;15266:21;15281:5;15266:21;:::i;:::-;15259:5;15256:32;15246:60;;15302:1;15299;15292:12;15246:60;15196:116;:::o;15318:133::-;15361:5;15399:6;15386:20;15377:29;;15415:30;15439:5;15415:30;:::i;:::-;15318:133;;;;:::o;15457:323::-;15513:6;15562:2;15550:9;15541:7;15537:23;15533:32;15530:119;;;15568:79;;:::i;:::-;15530:119;15688:1;15713:50;15755:7;15746:6;15735:9;15731:22;15713:50;:::i;:::-;15703:60;;15659:114;15457:323;;;;:::o;15786:182::-;15926:34;15922:1;15914:6;15910:14;15903:58;15786:182;:::o;15974:366::-;16116:3;16137:67;16201:2;16196:3;16137:67;:::i;:::-;16130:74;;16213:93;16302:3;16213:93;:::i;:::-;16331:2;16326:3;16322:12;16315:19;;15974:366;;;:::o;16346:419::-;16512:4;16550:2;16539:9;16535:18;16527:26;;16599:9;16593:4;16589:20;16585:1;16574:9;16570:17;16563:47;16627:131;16753:4;16627:131;:::i;:::-;16619:139;;16346:419;;;:::o;16771:97::-;16830:6;16858:3;16848:13;;16771:97;;;;:::o;16874:180::-;16922:77;16919:1;16912:88;17019:4;17016:1;17009:15;17043:4;17040:1;17033:15;17060:180;17108:77;17105:1;17098:88;17205:4;17202:1;17195:15;17229:4;17226:1;17219:15;17246:320;17290:6;17327:1;17321:4;17317:12;17307:22;;17374:1;17368:4;17364:12;17395:18;17385:81;;17451:4;17443:6;17439:17;17429:27;;17385:81;17513:2;17505:6;17502:14;17482:18;17479:38;17476:84;;17532:18;;:::i;:::-;17476:84;17297:269;17246:320;;;:::o;17572:141::-;17621:4;17644:3;17636:11;;17667:3;17664:1;17657:14;17701:4;17698:1;17688:18;17680:26;;17572:141;;;:::o;17719:93::-;17756:6;17803:2;17798;17791:5;17787:14;17783:23;17773:33;;17719:93;;;:::o;17818:107::-;17862:8;17912:5;17906:4;17902:16;17881:37;;17818:107;;;;:::o;17931:393::-;18000:6;18050:1;18038:10;18034:18;18073:97;18103:66;18092:9;18073:97;:::i;:::-;18191:39;18221:8;18210:9;18191:39;:::i;:::-;18179:51;;18263:4;18259:9;18252:5;18248:21;18239:30;;18312:4;18302:8;18298:19;18291:5;18288:30;18278:40;;18007:317;;17931:393;;;;;:::o;18330:142::-;18380:9;18413:53;18431:34;18440:24;18458:5;18440:24;:::i;:::-;18431:34;:::i;:::-;18413:53;:::i;:::-;18400:66;;18330:142;;;:::o;18478:75::-;18521:3;18542:5;18535:12;;18478:75;;;:::o;18559:269::-;18669:39;18700:7;18669:39;:::i;:::-;18730:91;18779:41;18803:16;18779:41;:::i;:::-;18771:6;18764:4;18758:11;18730:91;:::i;:::-;18724:4;18717:105;18635:193;18559:269;;;:::o;18834:73::-;18879:3;18834:73;:::o;18913:189::-;18990:32;;:::i;:::-;19031:65;19089:6;19081;19075:4;19031:65;:::i;:::-;18966:136;18913:189;;:::o;19108:186::-;19168:120;19185:3;19178:5;19175:14;19168:120;;;19239:39;19276:1;19269:5;19239:39;:::i;:::-;19212:1;19205:5;19201:13;19192:22;;19168:120;;;19108:186;;:::o;19300:543::-;19401:2;19396:3;19393:11;19390:446;;;19435:38;19467:5;19435:38;:::i;:::-;19519:29;19537:10;19519:29;:::i;:::-;19509:8;19505:44;19702:2;19690:10;19687:18;19684:49;;;19723:8;19708:23;;19684:49;19746:80;19802:22;19820:3;19802:22;:::i;:::-;19792:8;19788:37;19775:11;19746:80;:::i;:::-;19405:431;;19390:446;19300:543;;;:::o;19849:117::-;19903:8;19953:5;19947:4;19943:16;19922:37;;19849:117;;;;:::o;19972:169::-;20016:6;20049:51;20097:1;20093:6;20085:5;20082:1;20078:13;20049:51;:::i;:::-;20045:56;20130:4;20124;20120:15;20110:25;;20023:118;19972:169;;;;:::o;20146:295::-;20222:4;20368:29;20393:3;20387:4;20368:29;:::i;:::-;20360:37;;20430:3;20427:1;20423:11;20417:4;20414:21;20406:29;;20146:295;;;;:::o;20446:1403::-;20570:44;20610:3;20605;20570:44;:::i;:::-;20679:18;20671:6;20668:30;20665:56;;;20701:18;;:::i;:::-;20665:56;20745:38;20777:4;20771:11;20745:38;:::i;:::-;20830:67;20890:6;20882;20876:4;20830:67;:::i;:::-;20924:1;20953:2;20945:6;20942:14;20970:1;20965:632;;;;21641:1;21658:6;21655:84;;;21714:9;21709:3;21705:19;21692:33;21683:42;;21655:84;21765:67;21825:6;21818:5;21765:67;:::i;:::-;21759:4;21752:81;21614:229;20935:908;;20965:632;21017:4;21013:9;21005:6;21001:22;21051:37;21083:4;21051:37;:::i;:::-;21110:1;21124:215;21138:7;21135:1;21132:14;21124:215;;;21224:9;21219:3;21215:19;21202:33;21194:6;21187:49;21275:1;21267:6;21263:14;21253:24;;21322:2;21311:9;21307:18;21294:31;;21161:4;21158:1;21154:12;21149:17;;21124:215;;;21367:6;21358:7;21355:19;21352:186;;;21432:9;21427:3;21423:19;21410:33;21475:48;21517:4;21509:6;21505:17;21494:9;21475:48;:::i;:::-;21467:6;21460:64;21375:163;21352:186;21584:1;21580;21572:6;21568:14;21564:22;21558:4;21551:36;20972:625;;;20935:908;;20545:1304;;;20446:1403;;;:::o;21855:143::-;21912:5;21943:6;21937:13;21928:22;;21959:33;21986:5;21959:33;:::i;:::-;21855:143;;;;:::o;22004:351::-;22074:6;22123:2;22111:9;22102:7;22098:23;22094:32;22091:119;;;22129:79;;:::i;:::-;22091:119;22249:1;22274:64;22330:7;22321:6;22310:9;22306:22;22274:64;:::i;:::-;22264:74;;22220:128;22004:351;;;;:::o;22361:221::-;22501:34;22497:1;22489:6;22485:14;22478:58;22570:4;22565:2;22557:6;22553:15;22546:29;22361:221;:::o;22588:366::-;22730:3;22751:67;22815:2;22810:3;22751:67;:::i;:::-;22744:74;;22827:93;22916:3;22827:93;:::i;:::-;22945:2;22940:3;22936:12;22929:19;;22588:366;;;:::o;22960:419::-;23126:4;23164:2;23153:9;23149:18;23141:26;;23213:9;23207:4;23203:20;23199:1;23188:9;23184:17;23177:47;23241:131;23367:4;23241:131;:::i;:::-;23233:139;;22960:419;;;:::o;23385:230::-;23525:34;23521:1;23513:6;23509:14;23502:58;23594:13;23589:2;23581:6;23577:15;23570:38;23385:230;:::o;23621:366::-;23763:3;23784:67;23848:2;23843:3;23784:67;:::i;:::-;23777:74;;23860:93;23949:3;23860:93;:::i;:::-;23978:2;23973:3;23969:12;23962:19;;23621:366;;;:::o;23993:419::-;24159:4;24197:2;24186:9;24182:18;24174:26;;24246:9;24240:4;24236:20;24232:1;24221:9;24217:17;24210:47;24274:131;24400:4;24274:131;:::i;:::-;24266:139;;23993:419;;;:::o;24418:154::-;24502:6;24497:3;24492;24479:30;24564:1;24555:6;24550:3;24546:16;24539:27;24418:154;;;:::o;24602:304::-;24700:3;24721:71;24785:6;24780:3;24721:71;:::i;:::-;24714:78;;24802:43;24838:6;24833:3;24826:5;24802:43;:::i;:::-;24870:29;24892:6;24870:29;:::i;:::-;24865:3;24861:39;24854:46;;24602:304;;;;;:::o;24912:333::-;25035:4;25073:2;25062:9;25058:18;25050:26;;25122:9;25116:4;25112:20;25108:1;25097:9;25093:17;25086:47;25150:88;25233:4;25224:6;25216;25150:88;:::i;:::-;25142:96;;24912:333;;;;;:::o;25251:182::-;25391:34;25387:1;25379:6;25375:14;25368:58;25251:182;:::o;25439:366::-;25581:3;25602:67;25666:2;25661:3;25602:67;:::i;:::-;25595:74;;25678:93;25767:3;25678:93;:::i;:::-;25796:2;25791:3;25787:12;25780:19;;25439:366;;;:::o;25811:419::-;25977:4;26015:2;26004:9;26000:18;25992:26;;26064:9;26058:4;26054:20;26050:1;26039:9;26035:17;26028:47;26092:131;26218:4;26092:131;:::i;:::-;26084:139;;25811:419;;;:::o;26236:180::-;26376:32;26372:1;26364:6;26360:14;26353:56;26236:180;:::o;26422:366::-;26564:3;26585:67;26649:2;26644:3;26585:67;:::i;:::-;26578:74;;26661:93;26750:3;26661:93;:::i;:::-;26779:2;26774:3;26770:12;26763:19;;26422:366;;;:::o;26794:419::-;26960:4;26998:2;26987:9;26983:18;26975:26;;27047:9;27041:4;27037:20;27033:1;27022:9;27018:17;27011:47;27075:131;27201:4;27075:131;:::i;:::-;27067:139;;26794:419;;;:::o;27219:222::-;27359:34;27355:1;27347:6;27343:14;27336:58;27428:5;27423:2;27415:6;27411:15;27404:30;27219:222;:::o;27447:366::-;27589:3;27610:67;27674:2;27669:3;27610:67;:::i;:::-;27603:74;;27686:93;27775:3;27686:93;:::i;:::-;27804:2;27799:3;27795:12;27788:19;;27447:366;;;:::o;27819:419::-;27985:4;28023:2;28012:9;28008:18;28000:26;;28072:9;28066:4;28062:20;28058:1;28047:9;28043:17;28036:47;28100:131;28226:4;28100:131;:::i;:::-;28092:139;;27819:419;;;:::o;28244:442::-;28393:4;28431:2;28420:9;28416:18;28408:26;;28444:71;28512:1;28501:9;28497:17;28488:6;28444:71;:::i;:::-;28525:72;28593:2;28582:9;28578:18;28569:6;28525:72;:::i;:::-;28607;28675:2;28664:9;28660:18;28651:6;28607:72;:::i;:::-;28244:442;;;;;;:::o;28692:137::-;28746:5;28777:6;28771:13;28762:22;;28793:30;28817:5;28793:30;:::i;:::-;28692:137;;;;:::o;28835:345::-;28902:6;28951:2;28939:9;28930:7;28926:23;28922:32;28919:119;;;28957:79;;:::i;:::-;28919:119;29077:1;29102:61;29155:7;29146:6;29135:9;29131:22;29102:61;:::i;:::-;29092:71;;29048:125;28835:345;;;;:::o;29186:1395::-;29303:37;29336:3;29303:37;:::i;:::-;29405:18;29397:6;29394:30;29391:56;;;29427:18;;:::i;:::-;29391:56;29471:38;29503:4;29497:11;29471:38;:::i;:::-;29556:67;29616:6;29608;29602:4;29556:67;:::i;:::-;29650:1;29674:4;29661:17;;29706:2;29698:6;29695:14;29723:1;29718:618;;;;30380:1;30397:6;30394:77;;;30446:9;30441:3;30437:19;30431:26;30422:35;;30394:77;30497:67;30557:6;30550:5;30497:67;:::i;:::-;30491:4;30484:81;30353:222;29688:887;;29718:618;29770:4;29766:9;29758:6;29754:22;29804:37;29836:4;29804:37;:::i;:::-;29863:1;29877:208;29891:7;29888:1;29885:14;29877:208;;;29970:9;29965:3;29961:19;29955:26;29947:6;29940:42;30021:1;30013:6;30009:14;29999:24;;30068:2;30057:9;30053:18;30040:31;;29914:4;29911:1;29907:12;29902:17;;29877:208;;;30113:6;30104:7;30101:19;30098:179;;;30171:9;30166:3;30162:19;30156:26;30214:48;30256:4;30248:6;30244:17;30233:9;30214:48;:::i;:::-;30206:6;30199:64;30121:156;30098:179;30323:1;30319;30311:6;30307:14;30303:22;30297:4;30290:36;29725:611;;;29688:887;;29278:1303;;;29186:1395;;:::o;30587:664::-;30794:4;30832:3;30821:9;30817:19;30809:27;;30882:9;30876:4;30872:20;30868:1;30857:9;30853:17;30846:47;30910:88;30993:4;30984:6;30976;30910:88;:::i;:::-;30902:96;;31008:72;31076:2;31065:9;31061:18;31052:6;31008:72;:::i;:::-;31090;31158:2;31147:9;31143:18;31134:6;31090:72;:::i;:::-;31172;31240:2;31229:9;31225:18;31216:6;31172:72;:::i;:::-;30587:664;;;;;;;;:::o;31257:180::-;31305:77;31302:1;31295:88;31402:4;31399:1;31392:15;31426:4;31423:1;31416:15;31443:233;31482:3;31505:24;31523:5;31505:24;:::i;:::-;31496:33;;31551:66;31544:5;31541:77;31538:103;;31621:18;;:::i;:::-;31538:103;31668:1;31661:5;31657:13;31650:20;;31443:233;;;:::o;31682:191::-;31722:4;31742:20;31760:1;31742:20;:::i;:::-;31737:25;;31776:20;31794:1;31776:20;:::i;:::-;31771:25;;31815:1;31812;31809:8;31806:34;;;31820:18;;:::i;:::-;31806:34;31865:1;31862;31858:9;31850:17;;31682:191;;;;:::o;31879:178::-;32019:30;32015:1;32007:6;32003:14;31996:54;31879:178;:::o;32063:366::-;32205:3;32226:67;32290:2;32285:3;32226:67;:::i;:::-;32219:74;;32302:93;32391:3;32302:93;:::i;:::-;32420:2;32415:3;32411:12;32404:19;;32063:366;;;:::o;32435:419::-;32601:4;32639:2;32628:9;32624:18;32616:26;;32688:9;32682:4;32678:20;32674:1;32663:9;32659:17;32652:47;32716:131;32842:4;32716:131;:::i;:::-;32708:139;;32435:419;;;:::o;32860:223::-;33000:34;32996:1;32988:6;32984:14;32977:58;33069:6;33064:2;33056:6;33052:15;33045:31;32860:223;:::o;33089:366::-;33231:3;33252:67;33316:2;33311:3;33252:67;:::i;:::-;33245:74;;33328:93;33417:3;33328:93;:::i;:::-;33446:2;33441:3;33437:12;33430:19;;33089:366;;;:::o;33461:419::-;33627:4;33665:2;33654:9;33650:18;33642:26;;33714:9;33708:4;33704:20;33700:1;33689:9;33685:17;33678:47;33742:131;33868:4;33742:131;:::i;:::-;33734:139;;33461:419;;;:::o;33886:332::-;34007:4;34045:2;34034:9;34030:18;34022:26;;34058:71;34126:1;34115:9;34111:17;34102:6;34058:71;:::i;:::-;34139:72;34207:2;34196:9;34192:18;34183:6;34139:72;:::i;:::-;33886:332;;;;;:::o;34248:831::-;34333:3;34370:5;34364:12;34399:36;34425:9;34399:36;:::i;:::-;34451:71;34515:6;34510:3;34451:71;:::i;:::-;34444:78;;34553:1;34542:9;34538:17;34569:1;34564:164;;;;34742:1;34737:336;;;;34531:542;;34564:164;34648:4;34644:9;34633;34629:25;34624:3;34617:38;34708:6;34701:14;34694:22;34688:4;34684:33;34679:3;34675:43;34668:50;;34564:164;;34737:336;34804:38;34836:5;34804:38;:::i;:::-;34864:1;34878:154;34892:6;34889:1;34886:13;34878:154;;;34966:7;34960:14;34956:1;34951:3;34947:11;34940:35;35016:1;35007:7;35003:15;34992:26;;34914:4;34911:1;34907:12;34902:17;;34878:154;;;35061:1;35056:3;35052:11;35045:18;;34744:329;;34531:542;;34337:742;;34248:831;;;;:::o;35085:307::-;35195:4;35233:2;35222:9;35218:18;35210:26;;35282:9;35276:4;35272:20;35268:1;35257:9;35253:17;35246:47;35310:75;35380:4;35371:6;35310:75;:::i;:::-;35302:83;;35085:307;;;;:::o;35398:348::-;35438:7;35461:20;35479:1;35461:20;:::i;:::-;35456:25;;35495:20;35513:1;35495:20;:::i;:::-;35490:25;;35683:1;35615:66;35611:74;35608:1;35605:81;35600:1;35593:9;35586:17;35582:105;35579:131;;;35690:18;;:::i;:::-;35579:131;35738:1;35735;35731:9;35720:20;;35398:348;;;;:::o;35752:417::-;35890:4;35928:2;35917:9;35913:18;35905:26;;35941:71;36009:1;35998:9;35994:17;35985:6;35941:71;:::i;:::-;36059:9;36053:4;36049:20;36044:2;36033:9;36029:18;36022:48;36087:75;36157:4;36148:6;36087:75;:::i;:::-;36079:83;;35752:417;;;;;:::o;36175:180::-;36223:77;36220:1;36213:88;36320:4;36317:1;36310:15;36344:4;36341:1;36334:15;36361:185;36401:1;36418:20;36436:1;36418:20;:::i;:::-;36413:25;;36452:20;36470:1;36452:20;:::i;:::-;36447:25;;36491:1;36481:35;;36496:18;;:::i;:::-;36481:35;36538:1;36535;36531:9;36526:14;;36361:185;;;;:::o;36552:182::-;36692:34;36688:1;36680:6;36676:14;36669:58;36552:182;:::o;36740:366::-;36882:3;36903:67;36967:2;36962:3;36903:67;:::i;:::-;36896:74;;36979:93;37068:3;36979:93;:::i;:::-;37097:2;37092:3;37088:12;37081:19;;36740:366;;;:::o;37112:419::-;37278:4;37316:2;37305:9;37301:18;37293:26;;37365:9;37359:4;37355:20;37351:1;37340:9;37336:17;37329:47;37393:131;37519:4;37393:131;:::i;:::-;37385:139;;37112:419;;;:::o

Swarm Source

ipfs://32ffa44ccbcfe85dad5a8308b5f9f65c66e4567cdd58db1c137a3e0b1db6ef20
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading