ETH Price: $2,205.22 (-2.15%)

Token

GAMEGEN AI (GAME)
 

Overview

Max Total Supply

10,000,000 GAME

Holders

281

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
kuberto.eth
Balance
1,940.295124647887250555 GAME

Value
$0.00
0xda89c70f2c946abdf2e195266a3a8579C694c421
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GameGenToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-21
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller must be the owner");
        _;
    }

    function transferOwner(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner shouldn't be zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function ownershipRenounce() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract GameGenToken is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _IsLimitFree;
    mapping(address => uint256) private _BlockedAddress;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;

    // Social Media and Website details
    string public constant website = "https://gamegen.net/";
    string public constant twitter = "https://x.com/GameGenAI";
    string public constant telegram = "https://t.me/GameGenGateway";
    string public constant tokenImage = "https://ipfs.io/ipfs/QmUtDrqNEEy4ZiPiiM3iCgGzBJZBzR6npURJDcrBoTyDK8";

    uint256 public buyTax = 45;
    uint256 public sellTax = 70;
    uint256 public transferTax = 70;

    uint256 private constant _totalSupply = 10000000 * 10**_decimals; // 10 million tokens
    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = 40000;
    uint256 private maxSwap = onePercent*5/10;

function updateMaxSwap(uint256 newMaxSwapPercent) external onlyOwner {
        require(newMaxSwapPercent > 0 && newMaxSwapPercent <= 100, "Invalid percentage");
        maxSwap = (_totalSupply * newMaxSwapPercent) / 10000; // Allows for 2 decimal places
    }

    string private constant _name = "GAMEGEN AI";
    string private constant _symbol = "GAME";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public DevAddress;
    address immutable public OperationAddress;
    address immutable public MarketingAddress;

    bool private launch = false;

    constructor() {
        OperationAddress = 0x369d97C3A230b88882C205A9dB36Cffdb776600C;   
        DevAddress = 0xE42a9Fb6cCD7D022a9B28ae09d5C477064825B9F;        
        MarketingAddress = 0x5d28811a1efB9624Dc09E96d158fDA4c5eC36FEd;     
        _balance[msg.sender] = _totalSupply;
        _IsLimitFree[DevAddress] = 1;
        _IsLimitFree[OperationAddress] = 1;
        _IsLimitFree[MarketingAddress] = 1;
        _IsLimitFree[msg.sender] = 1;
        _IsLimitFree[address(this)] = 1;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

    function getWebsite() external pure returns (string memory) {
        return website;
    }

    function getTwitter() external pure returns (string memory) {
        return twitter;
    }

    function getTelegram() external pure returns (string memory) {
        return telegram;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function startTrading() external onlyOwner {
        require(!launch,"trading already opened");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        launch = true;
    }

    function _ExcludedWallet(address wallet) external onlyOwner {
        _IsLimitFree[wallet] = 1;
    }

    function _RemoveExcludedWallet(address wallet) external onlyOwner {
        _IsLimitFree[wallet] = 0;
    }

    function DecreaseTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= buyTax && newSellTax <= sellTax, "Tax cannot be increased");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function setTransferTax(uint256 newTransferTax) external onlyOwner {
        require(newTransferTax <= 100, "Transfer tax cannot exceed 100%");
        transferTax = newTransferTax;
    }

    function blacklistAddresses(address[] calldata accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            require(accounts[i] != address(this) && accounts[i] != uniswapV2Pair && accounts[i] != address(uniswapV2Router), "Invalid address");
            _BlockedAddress[accounts[i]] = 1;
        }
    }

    function removeFromBlacklist(address[] calldata accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _BlockedAddress[accounts[i]] = 0;
        }
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(_BlockedAddress[from] == 0, "Address is blacklisted");

        uint256 _tax = 0;
        if (_IsLimitFree[from] == 0 && _IsLimitFree[to] == 0)
        {
            require(launch, "Trading not started yet");
            
            if (from == uniswapV2Pair) {
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = balanceOf(address(this));
                if (tokensToSwap > minimumSwapAmount) { 
                    uint256 mxSw = maxSwap;
                    if (tokensToSwap > amount) tokensToSwap = amount;
                    if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                    swapTokensForEth(tokensToSwap);
                }
                _tax = sellTax;
            } else {
                _tax = transferTax;
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function transferContractTokens(address recipient, uint256 amount) external onlyOwner {
        require(balanceOf(address(this)) >= amount, "Insufficient tokens in contract");
        _transfer(address(this), recipient, amount);
    }

    function Weth() external onlyOwner {
        bool success;
        (success, ) = owner().call{value: address(this).balance}("");
    } 

    function ManualSwap(uint256 percent) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        uint256 amtswap = (percent*contractBalance)/100;
        swapTokensForEth(amtswap);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 devTax = address(this).balance * 45 / 100;    
        uint256 operationTax = address(this).balance * 45 / 100;
        uint256 marketingTax = address(this).balance * 10 / 100;

        (bool success,) = DevAddress.call{value: devTax}("");
        require(success, "Dev transfer failed");
        (success,) = OperationAddress.call{value: operationTax}("");
        require(success, "Operation transfer failed");
        (success,) = MarketingAddress.call{value: marketingTax}("");
        require(success, "Marketing transfer failed");
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"DecreaseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MarketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OperationAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Weth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_ExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"blacklistAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTelegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTwitter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getWebsite","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownershipRenounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTransferTax","type":"uint256"}],"name":"setTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenImage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferContractTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"twitter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSwapPercent","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052602d60055560466006556046600755600a600560646012600a62000029919062000611565b6298968062000039919062000662565b620000459190620006dc565b62000051919062000662565b6200005d9190620006dc565b6008556000600a60146101000a81548160ff0219169083151502179055503480156200008857600080fd5b5060006200009b6200046f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073369d97c3a230b88882c205a9db36cffdb776600c73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505073e42a9fb6ccd7d022a9b28ae09d5c477064825b9f73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050735d28811a1efb9624dc09e96d158fda4c5ec36fed73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a62000221919062000611565b6298968062000231919062000662565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060c05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003e36200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000442919062000611565b6298968062000452919062000662565b60405162000461919062000725565b60405180910390a362000742565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050557808604811115620004dd57620004dc62000477565b5b6001851615620004ed5780820291505b8081029050620004fd85620004a6565b9450620004bd565b94509492505050565b600082620005205760019050620005f3565b81620005305760009050620005f3565b816001811462000549576002811462000554576200058a565b6001915050620005f3565b60ff84111562000569576200056862000477565b5b8360020a91508482111562000583576200058262000477565b5b50620005f3565b5060208310610133831016604e8410600b8410161715620005c45782820a905083811115620005be57620005bd62000477565b5b620005f3565b620005d38484846001620004b3565b92509050818404811115620005ed57620005ec62000477565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200061e82620005fa565b91506200062b8362000604565b92506200065a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050e565b905092915050565b60006200066f82620005fa565b91506200067c83620005fa565b92508282026200068c81620005fa565b91508282048414831517620006a657620006a562000477565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006e982620005fa565b9150620006f683620005fa565b925082620007095762000708620006ad565b5b828204905092915050565b6200071f81620005fa565b82525050565b60006020820190506200073c600083018462000714565b92915050565b60805160a05160c051614274620007876000396000818161119c0152612acc01526000818161186c0152612a00015260008181611890015261293601526142746000f3fe60806040526004361061021e5760003560e01c806377a54eb811610123578063abfaeee0116100ab578063cc1776d31161006f578063cc1776d314610784578063d7f73858146107af578063dd62ed3e146107d8578063df51aa4914610815578063f175e6a91461084057610225565b8063abfaeee0146106c3578063ad311001146106ee578063beb0a41614610705578063c0267af314610730578063c1aef4f21461075957610225565b806389daf799116100f257806389daf799146105de5780638b525903146106075780638da5cb5b1461063057806395d89b411461065b578063a9059cbb1461068657610225565b806377a54eb8146105345780638124f7ac1461055d57806384e2d5781461058857806389a4c1a0146105b357610225565b80633936e8b9116101a65780634f7041a5116101755780634f7041a5146104515780634fb2e45d1461047c578063552f555a146104a557806356ca8a41146104ce57806370a08231146104f757610225565b80633936e8b9146103a757806347ecb665146103d257806349bd5a5e146103fd5780634e23803f1461042857610225565b806323b872dd116101ed57806323b872dd146102e6578063293230b8146103235780632dd0fc9d1461033a578063313ce56714610365578063349849a31461039057610225565b806306fdde031461022a578063095ea7b314610255578063150074a31461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61086b565b60405161024c9190612e71565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612f31565b6108a8565b6040516102899190612f8c565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612fa7565b6108c6565b005b3480156102c757600080fd5b506102d06109e8565b6040516102dd9190612fe3565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612ffe565b610a0b565b60405161031a9190612f8c565b60405180910390f35b34801561032f57600080fd5b50610338610b2b565b005b34801561034657600080fd5b5061034f611047565b60405161035c9190612e71565b60405180910390f35b34801561037157600080fd5b5061037a611084565b604051610387919061306d565b60405180910390f35b34801561039c57600080fd5b506103a561108d565b005b3480156103b357600080fd5b506103bc61119a565b6040516103c99190613097565b60405180910390f35b3480156103de57600080fd5b506103e76111be565b6040516103f49190612e71565b60405180910390f35b34801561040957600080fd5b506104126111f7565b60405161041f9190613097565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a91906130b2565b61121d565b005b34801561045d57600080fd5b506104666112fa565b6040516104739190612fe3565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e91906130b2565b611300565b005b3480156104b157600080fd5b506104cc60048036038101906104c79190612f31565b6113a1565b005b3480156104da57600080fd5b506104f560048036038101906104f09190612fa7565b611490565b005b34801561050357600080fd5b5061051e600480360381019061051991906130b2565b61155c565b60405161052b9190612fe3565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613144565b6115a5565b005b34801561056957600080fd5b50610572611864565b60405161057f9190612fe3565b60405180910390f35b34801561059457600080fd5b5061059d61186a565b6040516105aa9190613097565b60405180910390f35b3480156105bf57600080fd5b506105c861188e565b6040516105d59190613097565b60405180910390f35b3480156105ea57600080fd5b5061060560048036038101906106009190613144565b6118b2565b005b34801561061357600080fd5b5061062e60048036038101906106299190612fa7565b6119d9565b005b34801561063c57600080fd5b50610645611abc565b6040516106529190613097565b60405180910390f35b34801561066757600080fd5b50610670611ae5565b60405161067d9190612e71565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190612f31565b611b22565b6040516106ba9190612f8c565b60405180910390f35b3480156106cf57600080fd5b506106d8611b40565b6040516106e59190612e71565b60405180910390f35b3480156106fa57600080fd5b50610703611b79565b005b34801561071157600080fd5b5061071a611ccc565b6040516107279190612e71565b60405180910390f35b34801561073c57600080fd5b5061075760048036038101906107529190613191565b611d05565b005b34801561076557600080fd5b5061076e611dff565b60405161077b9190612e71565b60405180910390f35b34801561079057600080fd5b50610799611e1b565b6040516107a69190612fe3565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d191906130b2565b611e21565b005b3480156107e457600080fd5b506107ff60048036038101906107fa91906131d1565b611efe565b60405161080c9190612fe3565b60405180910390f35b34801561082157600080fd5b5061082a611f85565b6040516108379190612e71565b60405180910390f35b34801561084c57600080fd5b50610855611fc2565b6040516108629190612e71565b60405180910390f35b60606040518060400160405280600a81526020017f47414d4547454e20414900000000000000000000000000000000000000000000815250905090565b60006108bc6108b5611fff565b8484612007565b6001905092915050565b6108ce611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290613283565b60405180910390fd5b60008111801561096c575060648111155b6109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a2906132ef565b60405180910390fd5b612710816012600a6109bd9190613471565b629896806109cb91906134bc565b6109d591906134bc565b6109df919061352d565b60088190555050565b60006012600a6109f89190613471565b62989680610a0691906134bc565b905090565b6000610a188484846121d0565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a63611fff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b1f5782811015610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b01906135d0565b60405180910390fd5b610b1e85610b16611fff565b858403612007565b5b60019150509392505050565b610b33611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790613283565b60405180910390fd5b600a60149054906101000a900460ff1615610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c079061363c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190613671565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da39190613671565b6040518363ffffffff1660e01b8152600401610dc092919061369e565b6020604051808303816000875af1158015610ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e039190613671565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e8b30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e789190613471565b62989680610e8691906134bc565b612007565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ed43061155c565b600080610edf611abc565b426040518863ffffffff1660e01b8152600401610f019695949392919061370c565b60606040518083038185885af1158015610f1f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f449190613782565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fe69291906137d5565b6020604051808303816000875af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611029919061382a565b506001600a60146101000a81548160ff021916908315150217905550565b60606040518060400160405280601b81526020017f68747470733a2f2f742e6d652f47616d6547656e476174657761790000000000815250905090565b60006012905090565b611095611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111990613283565b60405180910390fd5b600061112c611abc565b73ffffffffffffffffffffffffffffffffffffffff164760405161114f90613888565b60006040518083038185875af1925050503d806000811461118c576040519150601f19603f3d011682016040523d82523d6000602084013e611191565b606091505b50508091505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040518060400160405280601b81526020017f68747470733a2f2f742e6d652f47616d6547656e47617465776179000000000081525081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611225611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990613283565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60055481565b611308611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613283565b60405180910390fd5b61139e81612570565b50565b6113a9611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90613283565b60405180910390fd5b806114403061155c565b1015611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906138e9565b60405180910390fd5b61148c3083836121d0565b5050565b611498611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613283565b60405180910390fd5b60006115303061155c565b905060006064828461154291906134bc565b61154c919061352d565b90506115578161269c565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115ad611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163190613283565b60405180910390fd5b60005b8282905081101561185f573073ffffffffffffffffffffffffffffffffffffffff1683838381811061167257611671613909565b5b905060200201602081019061168791906130b2565b73ffffffffffffffffffffffffffffffffffffffff16141580156117205750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106116f2576116f1613909565b5b905060200201602081019061170791906130b2565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156117a15750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061177357611772613909565b5b905060200201602081019061178891906130b2565b73ffffffffffffffffffffffffffffffffffffffff1614155b6117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790613984565b60405180910390fd5b6001600460008585858181106117f9576117f8613909565b5b905060200201602081019061180e91906130b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080611857906139a4565b91505061163d565b505050565b60075481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6118ba611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613283565b60405180910390fd5b60005b828290508110156119d45760006004600085858581811061196e5761196d613909565b5b905060200201602081019061198391906130b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806119cc906139a4565b91505061194a565b505050565b6119e1611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590613283565b60405180910390fd5b6064811115611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa990613a38565b60405180910390fd5b8060078190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f47414d4500000000000000000000000000000000000000000000000000000000815250905090565b6000611b36611b2f611fff565b84846121d0565b6001905092915050565b6040518060400160405280601781526020017f68747470733a2f2f782e636f6d2f47616d6547656e414900000000000000000081525081565b611b81611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613283565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280601481526020017f68747470733a2f2f67616d6567656e2e6e65742f00000000000000000000000081525081565b611d0d611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190613283565b60405180910390fd5b6005548211158015611dae57506006548111155b611ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de490613aa4565b60405180910390fd5b81600581905550806006819055505050565b6040518060800160405280604381526020016141fc6043913981565b60065481565b611e29611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead90613283565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60606040518060400160405280601481526020017f68747470733a2f2f67616d6567656e2e6e65742f000000000000000000000000815250905090565b60606040518060400160405280601781526020017f68747470733a2f2f782e636f6d2f47616d6547656e4149000000000000000000815250905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90613b36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dc90613bc8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121c39190612fe3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690613c5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a590613cec565b60405180910390fd5b600081116122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e890613d7e565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236a90613dea565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561240257506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561255e57600a60149054906101000a900460ff16612456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244d90613e56565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124b557600554905061255d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125565760006125153061155c565b9050619c4081111561254b576000600854905083821115612534578391505b80821115612540578091505b6125498261269c565b505b60065491505061255c565b60075490505b5b5b61256a84848484612b9e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d690613ee8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600267ffffffffffffffff8111156126b9576126b8613f08565b5b6040519080825280602002602001820160405280156126e75781602001602082028036833780820191505090505b50905030816000815181106126ff576126fe613909565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ca9190613671565b816001815181106127de576127dd613909565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061284530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612007565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128a9959493929190613ff5565b600060405180830381600087803b1580156128c357600080fd5b505af11580156128d7573d6000803e3d6000fd5b5050505060006064602d476128ec91906134bc565b6128f6919061352d565b905060006064602d4761290991906134bc565b612913919061352d565b905060006064600a4761292691906134bc565b612930919061352d565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168460405161297890613888565b60006040518083038185875af1925050503d80600081146129b5576040519150601f19603f3d011682016040523d82523d6000602084013e6129ba565b606091505b50509050806129fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f59061409b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1683604051612a4290613888565b60006040518083038185875af1925050503d8060008114612a7f576040519150601f19603f3d011682016040523d82523d6000602084013e612a84565b606091505b50508091505080612aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac190614107565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1682604051612b0e90613888565b60006040518083038185875af1925050503d8060008114612b4b576040519150601f19603f3d011682016040523d82523d6000602084013e612b50565b606091505b50508091505080612b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8d90614173565b60405180910390fd5b505050505050565b600060648284612bae91906134bc565b612bb8919061352d565b905060008184612bc89190614193565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c159190614193565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca391906141c7565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3191906141c7565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd19190612fe3565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e1b578082015181840152602081019050612e00565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e4382612de1565b612e4d8185612dec565b9350612e5d818560208601612dfd565b612e6681612e27565b840191505092915050565b60006020820190508181036000830152612e8b8184612e38565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ec882612e9d565b9050919050565b612ed881612ebd565b8114612ee357600080fd5b50565b600081359050612ef581612ecf565b92915050565b6000819050919050565b612f0e81612efb565b8114612f1957600080fd5b50565b600081359050612f2b81612f05565b92915050565b60008060408385031215612f4857612f47612e93565b5b6000612f5685828601612ee6565b9250506020612f6785828601612f1c565b9150509250929050565b60008115159050919050565b612f8681612f71565b82525050565b6000602082019050612fa16000830184612f7d565b92915050565b600060208284031215612fbd57612fbc612e93565b5b6000612fcb84828501612f1c565b91505092915050565b612fdd81612efb565b82525050565b6000602082019050612ff86000830184612fd4565b92915050565b60008060006060848603121561301757613016612e93565b5b600061302586828701612ee6565b935050602061303686828701612ee6565b925050604061304786828701612f1c565b9150509250925092565b600060ff82169050919050565b61306781613051565b82525050565b6000602082019050613082600083018461305e565b92915050565b61309181612ebd565b82525050565b60006020820190506130ac6000830184613088565b92915050565b6000602082840312156130c8576130c7612e93565b5b60006130d684828501612ee6565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613104576131036130df565b5b8235905067ffffffffffffffff811115613121576131206130e4565b5b60208301915083602082028301111561313d5761313c6130e9565b5b9250929050565b6000806020838503121561315b5761315a612e93565b5b600083013567ffffffffffffffff81111561317957613178612e98565b5b613185858286016130ee565b92509250509250929050565b600080604083850312156131a8576131a7612e93565b5b60006131b685828601612f1c565b92505060206131c785828601612f1c565b9150509250929050565b600080604083850312156131e8576131e7612e93565b5b60006131f685828601612ee6565b925050602061320785828601612ee6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206d75737420626520746865206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061326d602183612dec565b915061327882613211565b604082019050919050565b6000602082019050818103600083015261329c81613260565b9050919050565b7f496e76616c69642070657263656e746167650000000000000000000000000000600082015250565b60006132d9601283612dec565b91506132e4826132a3565b602082019050919050565b60006020820190508181036000830152613308816132cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613395578086048111156133715761337061330f565b5b60018516156133805780820291505b808102905061338e8561333e565b9450613355565b94509492505050565b6000826133ae576001905061346a565b816133bc576000905061346a565b81600181146133d257600281146133dc5761340b565b600191505061346a565b60ff8411156133ee576133ed61330f565b5b8360020a9150848211156134055761340461330f565b5b5061346a565b5060208310610133831016604e8410600b84101617156134405782820a90508381111561343b5761343a61330f565b5b61346a565b61344d848484600161334b565b925090508184048111156134645761346361330f565b5b81810290505b9392505050565b600061347c82612efb565b915061348783613051565b92506134b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461339e565b905092915050565b60006134c782612efb565b91506134d283612efb565b92508282026134e081612efb565b915082820484148315176134f7576134f661330f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061353882612efb565b915061354383612efb565b925082613553576135526134fe565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135ba602883612dec565b91506135c58261355e565b604082019050919050565b600060208201905081810360008301526135e9816135ad565b9050919050565b7f74726164696e6720616c7265616479206f70656e656400000000000000000000600082015250565b6000613626601683612dec565b9150613631826135f0565b602082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b60008151905061366b81612ecf565b92915050565b60006020828403121561368757613686612e93565b5b60006136958482850161365c565b91505092915050565b60006040820190506136b36000830185613088565b6136c06020830184613088565b9392505050565b6000819050919050565b6000819050919050565b60006136f66136f16136ec846136c7565b6136d1565b612efb565b9050919050565b613706816136db565b82525050565b600060c0820190506137216000830189613088565b61372e6020830188612fd4565b61373b60408301876136fd565b61374860608301866136fd565b6137556080830185613088565b61376260a0830184612fd4565b979650505050505050565b60008151905061377c81612f05565b92915050565b60008060006060848603121561379b5761379a612e93565b5b60006137a98682870161376d565b93505060206137ba8682870161376d565b92505060406137cb8682870161376d565b9150509250925092565b60006040820190506137ea6000830185613088565b6137f76020830184612fd4565b9392505050565b61380781612f71565b811461381257600080fd5b50565b600081519050613824816137fe565b92915050565b6000602082840312156138405761383f612e93565b5b600061384e84828501613815565b91505092915050565b600081905092915050565b50565b6000613872600083613857565b915061387d82613862565b600082019050919050565b600061389382613865565b9150819050919050565b7f496e73756666696369656e7420746f6b656e7320696e20636f6e747261637400600082015250565b60006138d3601f83612dec565b91506138de8261389d565b602082019050919050565b60006020820190508181036000830152613902816138c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b600061396e600f83612dec565b915061397982613938565b602082019050919050565b6000602082019050818103600083015261399d81613961565b9050919050565b60006139af82612efb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139e1576139e061330f565b5b600182019050919050565b7f5472616e73666572207461782063616e6e6f7420657863656564203130302500600082015250565b6000613a22601f83612dec565b9150613a2d826139ec565b602082019050919050565b60006020820190508181036000830152613a5181613a15565b9050919050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b6000613a8e601783612dec565b9150613a9982613a58565b602082019050919050565b60006020820190508181036000830152613abd81613a81565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b20602483612dec565b9150613b2b82613ac4565b604082019050919050565b60006020820190508181036000830152613b4f81613b13565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bb2602283612dec565b9150613bbd82613b56565b604082019050919050565b60006020820190508181036000830152613be181613ba5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c44602583612dec565b9150613c4f82613be8565b604082019050919050565b60006020820190508181036000830152613c7381613c37565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cd6602383612dec565b9150613ce182613c7a565b604082019050919050565b60006020820190508181036000830152613d0581613cc9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d68602983612dec565b9150613d7382613d0c565b604082019050919050565b60006020820190508181036000830152613d9781613d5b565b9050919050565b7f4164647265737320697320626c61636b6c697374656400000000000000000000600082015250565b6000613dd4601683612dec565b9150613ddf82613d9e565b602082019050919050565b60006020820190508181036000830152613e0381613dc7565b9050919050565b7f54726164696e67206e6f74207374617274656420796574000000000000000000600082015250565b6000613e40601783612dec565b9150613e4b82613e0a565b602082019050919050565b60006020820190508181036000830152613e6f81613e33565b9050919050565b7f4f776e61626c653a206e6577206f776e65722073686f756c646e27742062652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b6000613ed2602c83612dec565b9150613edd82613e76565b604082019050919050565b60006020820190508181036000830152613f0181613ec5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f6c81612ebd565b82525050565b6000613f7e8383613f63565b60208301905092915050565b6000602082019050919050565b6000613fa282613f37565b613fac8185613f42565b9350613fb783613f53565b8060005b83811015613fe8578151613fcf8882613f72565b9750613fda83613f8a565b925050600181019050613fbb565b5085935050505092915050565b600060a08201905061400a6000830188612fd4565b61401760208301876136fd565b81810360408301526140298186613f97565b90506140386060830185613088565b6140456080830184612fd4565b9695505050505050565b7f446576207472616e73666572206661696c656400000000000000000000000000600082015250565b6000614085601383612dec565b91506140908261404f565b602082019050919050565b600060208201905081810360008301526140b481614078565b9050919050565b7f4f7065726174696f6e207472616e73666572206661696c656400000000000000600082015250565b60006140f1601983612dec565b91506140fc826140bb565b602082019050919050565b60006020820190508181036000830152614120816140e4565b9050919050565b7f4d61726b6574696e67207472616e73666572206661696c656400000000000000600082015250565b600061415d601983612dec565b915061416882614127565b602082019050919050565b6000602082019050818103600083015261418c81614150565b9050919050565b600061419e82612efb565b91506141a983612efb565b92508282039050818111156141c1576141c061330f565b5b92915050565b60006141d282612efb565b91506141dd83612efb565b92508282019050808211156141f5576141f461330f565b5b9291505056fe68747470733a2f2f697066732e696f2f697066732f516d55744472714e454579345a695069694d33694367477a424a5a427a52366e7055524a446372426f5479444b38a2646970667358221220b6013368146681d935147412f8e20bf0bf4414425b5d940d2c39cb21f96a29ed64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806377a54eb811610123578063abfaeee0116100ab578063cc1776d31161006f578063cc1776d314610784578063d7f73858146107af578063dd62ed3e146107d8578063df51aa4914610815578063f175e6a91461084057610225565b8063abfaeee0146106c3578063ad311001146106ee578063beb0a41614610705578063c0267af314610730578063c1aef4f21461075957610225565b806389daf799116100f257806389daf799146105de5780638b525903146106075780638da5cb5b1461063057806395d89b411461065b578063a9059cbb1461068657610225565b806377a54eb8146105345780638124f7ac1461055d57806384e2d5781461058857806389a4c1a0146105b357610225565b80633936e8b9116101a65780634f7041a5116101755780634f7041a5146104515780634fb2e45d1461047c578063552f555a146104a557806356ca8a41146104ce57806370a08231146104f757610225565b80633936e8b9146103a757806347ecb665146103d257806349bd5a5e146103fd5780634e23803f1461042857610225565b806323b872dd116101ed57806323b872dd146102e6578063293230b8146103235780632dd0fc9d1461033a578063313ce56714610365578063349849a31461039057610225565b806306fdde031461022a578063095ea7b314610255578063150074a31461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61086b565b60405161024c9190612e71565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612f31565b6108a8565b6040516102899190612f8c565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612fa7565b6108c6565b005b3480156102c757600080fd5b506102d06109e8565b6040516102dd9190612fe3565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190612ffe565b610a0b565b60405161031a9190612f8c565b60405180910390f35b34801561032f57600080fd5b50610338610b2b565b005b34801561034657600080fd5b5061034f611047565b60405161035c9190612e71565b60405180910390f35b34801561037157600080fd5b5061037a611084565b604051610387919061306d565b60405180910390f35b34801561039c57600080fd5b506103a561108d565b005b3480156103b357600080fd5b506103bc61119a565b6040516103c99190613097565b60405180910390f35b3480156103de57600080fd5b506103e76111be565b6040516103f49190612e71565b60405180910390f35b34801561040957600080fd5b506104126111f7565b60405161041f9190613097565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a91906130b2565b61121d565b005b34801561045d57600080fd5b506104666112fa565b6040516104739190612fe3565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e91906130b2565b611300565b005b3480156104b157600080fd5b506104cc60048036038101906104c79190612f31565b6113a1565b005b3480156104da57600080fd5b506104f560048036038101906104f09190612fa7565b611490565b005b34801561050357600080fd5b5061051e600480360381019061051991906130b2565b61155c565b60405161052b9190612fe3565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613144565b6115a5565b005b34801561056957600080fd5b50610572611864565b60405161057f9190612fe3565b60405180910390f35b34801561059457600080fd5b5061059d61186a565b6040516105aa9190613097565b60405180910390f35b3480156105bf57600080fd5b506105c861188e565b6040516105d59190613097565b60405180910390f35b3480156105ea57600080fd5b5061060560048036038101906106009190613144565b6118b2565b005b34801561061357600080fd5b5061062e60048036038101906106299190612fa7565b6119d9565b005b34801561063c57600080fd5b50610645611abc565b6040516106529190613097565b60405180910390f35b34801561066757600080fd5b50610670611ae5565b60405161067d9190612e71565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190612f31565b611b22565b6040516106ba9190612f8c565b60405180910390f35b3480156106cf57600080fd5b506106d8611b40565b6040516106e59190612e71565b60405180910390f35b3480156106fa57600080fd5b50610703611b79565b005b34801561071157600080fd5b5061071a611ccc565b6040516107279190612e71565b60405180910390f35b34801561073c57600080fd5b5061075760048036038101906107529190613191565b611d05565b005b34801561076557600080fd5b5061076e611dff565b60405161077b9190612e71565b60405180910390f35b34801561079057600080fd5b50610799611e1b565b6040516107a69190612fe3565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d191906130b2565b611e21565b005b3480156107e457600080fd5b506107ff60048036038101906107fa91906131d1565b611efe565b60405161080c9190612fe3565b60405180910390f35b34801561082157600080fd5b5061082a611f85565b6040516108379190612e71565b60405180910390f35b34801561084c57600080fd5b50610855611fc2565b6040516108629190612e71565b60405180910390f35b60606040518060400160405280600a81526020017f47414d4547454e20414900000000000000000000000000000000000000000000815250905090565b60006108bc6108b5611fff565b8484612007565b6001905092915050565b6108ce611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290613283565b60405180910390fd5b60008111801561096c575060648111155b6109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a2906132ef565b60405180910390fd5b612710816012600a6109bd9190613471565b629896806109cb91906134bc565b6109d591906134bc565b6109df919061352d565b60088190555050565b60006012600a6109f89190613471565b62989680610a0691906134bc565b905090565b6000610a188484846121d0565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a63611fff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b1f5782811015610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b01906135d0565b60405180910390fd5b610b1e85610b16611fff565b858403612007565b5b60019150509392505050565b610b33611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790613283565b60405180910390fd5b600a60149054906101000a900460ff1615610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c079061363c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190613671565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da39190613671565b6040518363ffffffff1660e01b8152600401610dc092919061369e565b6020604051808303816000875af1158015610ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e039190613671565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e8b30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e789190613471565b62989680610e8691906134bc565b612007565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ed43061155c565b600080610edf611abc565b426040518863ffffffff1660e01b8152600401610f019695949392919061370c565b60606040518083038185885af1158015610f1f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f449190613782565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fe69291906137d5565b6020604051808303816000875af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611029919061382a565b506001600a60146101000a81548160ff021916908315150217905550565b60606040518060400160405280601b81526020017f68747470733a2f2f742e6d652f47616d6547656e476174657761790000000000815250905090565b60006012905090565b611095611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111990613283565b60405180910390fd5b600061112c611abc565b73ffffffffffffffffffffffffffffffffffffffff164760405161114f90613888565b60006040518083038185875af1925050503d806000811461118c576040519150601f19603f3d011682016040523d82523d6000602084013e611191565b606091505b50508091505050565b7f0000000000000000000000005d28811a1efb9624dc09e96d158fda4c5ec36fed81565b6040518060400160405280601b81526020017f68747470733a2f2f742e6d652f47616d6547656e47617465776179000000000081525081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611225611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990613283565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60055481565b611308611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613283565b60405180910390fd5b61139e81612570565b50565b6113a9611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90613283565b60405180910390fd5b806114403061155c565b1015611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906138e9565b60405180910390fd5b61148c3083836121d0565b5050565b611498611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613283565b60405180910390fd5b60006115303061155c565b905060006064828461154291906134bc565b61154c919061352d565b90506115578161269c565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115ad611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163190613283565b60405180910390fd5b60005b8282905081101561185f573073ffffffffffffffffffffffffffffffffffffffff1683838381811061167257611671613909565b5b905060200201602081019061168791906130b2565b73ffffffffffffffffffffffffffffffffffffffff16141580156117205750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106116f2576116f1613909565b5b905060200201602081019061170791906130b2565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156117a15750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683838381811061177357611772613909565b5b905060200201602081019061178891906130b2565b73ffffffffffffffffffffffffffffffffffffffff1614155b6117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790613984565b60405180910390fd5b6001600460008585858181106117f9576117f8613909565b5b905060200201602081019061180e91906130b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080611857906139a4565b91505061163d565b505050565b60075481565b7f000000000000000000000000369d97c3a230b88882c205a9db36cffdb776600c81565b7f000000000000000000000000e42a9fb6ccd7d022a9b28ae09d5c477064825b9f81565b6118ba611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613283565b60405180910390fd5b60005b828290508110156119d45760006004600085858581811061196e5761196d613909565b5b905060200201602081019061198391906130b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806119cc906139a4565b91505061194a565b505050565b6119e1611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590613283565b60405180910390fd5b6064811115611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa990613a38565b60405180910390fd5b8060078190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f47414d4500000000000000000000000000000000000000000000000000000000815250905090565b6000611b36611b2f611fff565b84846121d0565b6001905092915050565b6040518060400160405280601781526020017f68747470733a2f2f782e636f6d2f47616d6547656e414900000000000000000081525081565b611b81611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613283565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280601481526020017f68747470733a2f2f67616d6567656e2e6e65742f00000000000000000000000081525081565b611d0d611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190613283565b60405180910390fd5b6005548211158015611dae57506006548111155b611ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de490613aa4565b60405180910390fd5b81600581905550806006819055505050565b6040518060800160405280604381526020016141fc6043913981565b60065481565b611e29611fff565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead90613283565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60606040518060400160405280601481526020017f68747470733a2f2f67616d6567656e2e6e65742f000000000000000000000000815250905090565b60606040518060400160405280601781526020017f68747470733a2f2f782e636f6d2f47616d6547656e4149000000000000000000815250905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90613b36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dc90613bc8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121c39190612fe3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690613c5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a590613cec565b60405180910390fd5b600081116122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e890613d7e565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236a90613dea565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561240257506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561255e57600a60149054906101000a900460ff16612456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244d90613e56565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036124b557600554905061255d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125565760006125153061155c565b9050619c4081111561254b576000600854905083821115612534578391505b80821115612540578091505b6125498261269c565b505b60065491505061255c565b60075490505b5b5b61256a84848484612b9e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d690613ee8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600267ffffffffffffffff8111156126b9576126b8613f08565b5b6040519080825280602002602001820160405280156126e75781602001602082028036833780820191505090505b50905030816000815181106126ff576126fe613909565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ca9190613671565b816001815181106127de576127dd613909565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061284530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612007565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128a9959493929190613ff5565b600060405180830381600087803b1580156128c357600080fd5b505af11580156128d7573d6000803e3d6000fd5b5050505060006064602d476128ec91906134bc565b6128f6919061352d565b905060006064602d4761290991906134bc565b612913919061352d565b905060006064600a4761292691906134bc565b612930919061352d565b905060007f000000000000000000000000e42a9fb6ccd7d022a9b28ae09d5c477064825b9f73ffffffffffffffffffffffffffffffffffffffff168460405161297890613888565b60006040518083038185875af1925050503d80600081146129b5576040519150601f19603f3d011682016040523d82523d6000602084013e6129ba565b606091505b50509050806129fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f59061409b565b60405180910390fd5b7f000000000000000000000000369d97c3a230b88882c205a9db36cffdb776600c73ffffffffffffffffffffffffffffffffffffffff1683604051612a4290613888565b60006040518083038185875af1925050503d8060008114612a7f576040519150601f19603f3d011682016040523d82523d6000602084013e612a84565b606091505b50508091505080612aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac190614107565b60405180910390fd5b7f0000000000000000000000005d28811a1efb9624dc09e96d158fda4c5ec36fed73ffffffffffffffffffffffffffffffffffffffff1682604051612b0e90613888565b60006040518083038185875af1925050503d8060008114612b4b576040519150601f19603f3d011682016040523d82523d6000602084013e612b50565b606091505b50508091505080612b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8d90614173565b60405180910390fd5b505050505050565b600060648284612bae91906134bc565b612bb8919061352d565b905060008184612bc89190614193565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c159190614193565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca391906141c7565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3191906141c7565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd19190612fe3565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e1b578082015181840152602081019050612e00565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e4382612de1565b612e4d8185612dec565b9350612e5d818560208601612dfd565b612e6681612e27565b840191505092915050565b60006020820190508181036000830152612e8b8184612e38565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ec882612e9d565b9050919050565b612ed881612ebd565b8114612ee357600080fd5b50565b600081359050612ef581612ecf565b92915050565b6000819050919050565b612f0e81612efb565b8114612f1957600080fd5b50565b600081359050612f2b81612f05565b92915050565b60008060408385031215612f4857612f47612e93565b5b6000612f5685828601612ee6565b9250506020612f6785828601612f1c565b9150509250929050565b60008115159050919050565b612f8681612f71565b82525050565b6000602082019050612fa16000830184612f7d565b92915050565b600060208284031215612fbd57612fbc612e93565b5b6000612fcb84828501612f1c565b91505092915050565b612fdd81612efb565b82525050565b6000602082019050612ff86000830184612fd4565b92915050565b60008060006060848603121561301757613016612e93565b5b600061302586828701612ee6565b935050602061303686828701612ee6565b925050604061304786828701612f1c565b9150509250925092565b600060ff82169050919050565b61306781613051565b82525050565b6000602082019050613082600083018461305e565b92915050565b61309181612ebd565b82525050565b60006020820190506130ac6000830184613088565b92915050565b6000602082840312156130c8576130c7612e93565b5b60006130d684828501612ee6565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613104576131036130df565b5b8235905067ffffffffffffffff811115613121576131206130e4565b5b60208301915083602082028301111561313d5761313c6130e9565b5b9250929050565b6000806020838503121561315b5761315a612e93565b5b600083013567ffffffffffffffff81111561317957613178612e98565b5b613185858286016130ee565b92509250509250929050565b600080604083850312156131a8576131a7612e93565b5b60006131b685828601612f1c565b92505060206131c785828601612f1c565b9150509250929050565b600080604083850312156131e8576131e7612e93565b5b60006131f685828601612ee6565b925050602061320785828601612ee6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206d75737420626520746865206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061326d602183612dec565b915061327882613211565b604082019050919050565b6000602082019050818103600083015261329c81613260565b9050919050565b7f496e76616c69642070657263656e746167650000000000000000000000000000600082015250565b60006132d9601283612dec565b91506132e4826132a3565b602082019050919050565b60006020820190508181036000830152613308816132cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613395578086048111156133715761337061330f565b5b60018516156133805780820291505b808102905061338e8561333e565b9450613355565b94509492505050565b6000826133ae576001905061346a565b816133bc576000905061346a565b81600181146133d257600281146133dc5761340b565b600191505061346a565b60ff8411156133ee576133ed61330f565b5b8360020a9150848211156134055761340461330f565b5b5061346a565b5060208310610133831016604e8410600b84101617156134405782820a90508381111561343b5761343a61330f565b5b61346a565b61344d848484600161334b565b925090508184048111156134645761346361330f565b5b81810290505b9392505050565b600061347c82612efb565b915061348783613051565b92506134b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461339e565b905092915050565b60006134c782612efb565b91506134d283612efb565b92508282026134e081612efb565b915082820484148315176134f7576134f661330f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061353882612efb565b915061354383612efb565b925082613553576135526134fe565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135ba602883612dec565b91506135c58261355e565b604082019050919050565b600060208201905081810360008301526135e9816135ad565b9050919050565b7f74726164696e6720616c7265616479206f70656e656400000000000000000000600082015250565b6000613626601683612dec565b9150613631826135f0565b602082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b60008151905061366b81612ecf565b92915050565b60006020828403121561368757613686612e93565b5b60006136958482850161365c565b91505092915050565b60006040820190506136b36000830185613088565b6136c06020830184613088565b9392505050565b6000819050919050565b6000819050919050565b60006136f66136f16136ec846136c7565b6136d1565b612efb565b9050919050565b613706816136db565b82525050565b600060c0820190506137216000830189613088565b61372e6020830188612fd4565b61373b60408301876136fd565b61374860608301866136fd565b6137556080830185613088565b61376260a0830184612fd4565b979650505050505050565b60008151905061377c81612f05565b92915050565b60008060006060848603121561379b5761379a612e93565b5b60006137a98682870161376d565b93505060206137ba8682870161376d565b92505060406137cb8682870161376d565b9150509250925092565b60006040820190506137ea6000830185613088565b6137f76020830184612fd4565b9392505050565b61380781612f71565b811461381257600080fd5b50565b600081519050613824816137fe565b92915050565b6000602082840312156138405761383f612e93565b5b600061384e84828501613815565b91505092915050565b600081905092915050565b50565b6000613872600083613857565b915061387d82613862565b600082019050919050565b600061389382613865565b9150819050919050565b7f496e73756666696369656e7420746f6b656e7320696e20636f6e747261637400600082015250565b60006138d3601f83612dec565b91506138de8261389d565b602082019050919050565b60006020820190508181036000830152613902816138c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b600061396e600f83612dec565b915061397982613938565b602082019050919050565b6000602082019050818103600083015261399d81613961565b9050919050565b60006139af82612efb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139e1576139e061330f565b5b600182019050919050565b7f5472616e73666572207461782063616e6e6f7420657863656564203130302500600082015250565b6000613a22601f83612dec565b9150613a2d826139ec565b602082019050919050565b60006020820190508181036000830152613a5181613a15565b9050919050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b6000613a8e601783612dec565b9150613a9982613a58565b602082019050919050565b60006020820190508181036000830152613abd81613a81565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b20602483612dec565b9150613b2b82613ac4565b604082019050919050565b60006020820190508181036000830152613b4f81613b13565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bb2602283612dec565b9150613bbd82613b56565b604082019050919050565b60006020820190508181036000830152613be181613ba5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c44602583612dec565b9150613c4f82613be8565b604082019050919050565b60006020820190508181036000830152613c7381613c37565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cd6602383612dec565b9150613ce182613c7a565b604082019050919050565b60006020820190508181036000830152613d0581613cc9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d68602983612dec565b9150613d7382613d0c565b604082019050919050565b60006020820190508181036000830152613d9781613d5b565b9050919050565b7f4164647265737320697320626c61636b6c697374656400000000000000000000600082015250565b6000613dd4601683612dec565b9150613ddf82613d9e565b602082019050919050565b60006020820190508181036000830152613e0381613dc7565b9050919050565b7f54726164696e67206e6f74207374617274656420796574000000000000000000600082015250565b6000613e40601783612dec565b9150613e4b82613e0a565b602082019050919050565b60006020820190508181036000830152613e6f81613e33565b9050919050565b7f4f776e61626c653a206e6577206f776e65722073686f756c646e27742062652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b6000613ed2602c83612dec565b9150613edd82613e76565b604082019050919050565b60006020820190508181036000830152613f0181613ec5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f6c81612ebd565b82525050565b6000613f7e8383613f63565b60208301905092915050565b6000602082019050919050565b6000613fa282613f37565b613fac8185613f42565b9350613fb783613f53565b8060005b83811015613fe8578151613fcf8882613f72565b9750613fda83613f8a565b925050600181019050613fbb565b5085935050505092915050565b600060a08201905061400a6000830188612fd4565b61401760208301876136fd565b81810360408301526140298186613f97565b90506140386060830185613088565b6140456080830184612fd4565b9695505050505050565b7f446576207472616e73666572206661696c656400000000000000000000000000600082015250565b6000614085601383612dec565b91506140908261404f565b602082019050919050565b600060208201905081810360008301526140b481614078565b9050919050565b7f4f7065726174696f6e207472616e73666572206661696c656400000000000000600082015250565b60006140f1601983612dec565b91506140fc826140bb565b602082019050919050565b60006020820190508181036000830152614120816140e4565b9050919050565b7f4d61726b6574696e67207472616e73666572206661696c656400000000000000600082015250565b600061415d601983612dec565b915061416882614127565b602082019050919050565b6000602082019050818103600083015261418c81614150565b9050919050565b600061419e82612efb565b91506141a983612efb565b92508282039050818111156141c1576141c061330f565b5b92915050565b60006141d282612efb565b91506141dd83612efb565b92508282019050808211156141f5576141f461330f565b5b9291505056fe68747470733a2f2f697066732e696f2f697066732f516d55744472714e454579345a695069694d33694367477a424a5a427a52366e7055524a446372426f5479444b38a2646970667358221220b6013368146681d935147412f8e20bf0bf4414425b5d940d2c39cb21f96a29ed64736f6c63430008130033

Deployed Bytecode Sourcemap

2693:9812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5008:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5845:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3800:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5285:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6014:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7248:645;;;;;;;;;;;;;:::i;:::-;;6802:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11048:137;;;;;;;;;;;;;:::i;:::-;;4344:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3251:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4219:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7901:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3435:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1407:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10803:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11194:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5393:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8573:345;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3502:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4296:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4254:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8926:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8375:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1192:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5099:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5519:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3186:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1763:148;;;;;;;;;;;;;:::i;:::-;;3124:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8129:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3321:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3468:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8012:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5694:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6701;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5008:83;5045:13;5078:5;;;;;;;;;;;;;;;;;5071:12;;5008:83;:::o;5845:161::-;5920:4;5937:39;5946:12;:10;:12::i;:::-;5960:7;5969:6;5937:8;:39::i;:::-;5994:4;5987:11;;5845:161;;;;:::o;3800:262::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3908:1:::1;3888:17;:21;:49;;;;;3934:3;3913:17;:24;;3888:49;3880:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;4018:5;3997:17;3072:2;3593;:13;;;;:::i;:::-;3582:8;:24;;;;:::i;:::-;3982:32;;;;:::i;:::-;3981:42;;;;:::i;:::-;3971:7;:52;;;;3800:262:::0;:::o;5285:100::-;5338:7;3072:2;3593;:13;;;;:::i;:::-;3582:8;:24;;;;:::i;:::-;5358:19;;5285:100;:::o;6014:578::-;6112:4;6129:36;6139:6;6147:9;6158:6;6129:9;:36::i;:::-;6178:24;6205:11;:19;6217:6;6205:19;;;;;;;;;;;;;;;:33;6225:12;:10;:12::i;:::-;6205:33;;;;;;;;;;;;;;;;6178:60;;6272:17;6252:16;:37;6249:314;;6353:6;6333:16;:26;;6307:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;6479:57;6488:6;6496:12;:10;:12::i;:::-;6529:6;6510:16;:25;6479:8;:57::i;:::-;6249:314;6580:4;6573:11;;;6014:578;;;;;:::o;7248:645::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7311:6:::1;;;;;;;;;;;7310:7;7302:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7391:42;7354:15;;:80;;;;;;;;;;;;;;;;;;7479:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7461:55;;;7525:4;7532:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7461:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7445:13;;:110;;;;;;;;;;;;;;;;;;7566:63;7583:4;7598:15;;;;;;;;;;;3072:2;3593;:13;;;;:::i;:::-;3582:8;:24;;;;:::i;:::-;7566:8;:63::i;:::-;7650:15;;;;;;;;;;;:31;;;7689:21;7720:4;7726:24;7744:4;7726:9;:24::i;:::-;7751:1;7753::::0;7755:7:::1;:5;:7::i;:::-;7763:15;7650:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7797:13;;;;;;;;;;;7790:29;;;7828:15;;;;;;;;;;;7846:14;7790:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7881:4;7872:6;;:13;;;;;;;;;;;;;;;;;;7248:645::o:0;6802:95::-;6848:13;6881:8;;;;;;;;;;;;;;;;;6874:15;;6802:95;:::o;5194:83::-;5235:5;3072:2;5253:16;;5194:83;:::o;11048:137::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11094:12:::1;11131:7;:5;:7::i;:::-;:12;;11151:21;11131:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:60;;;;;11083:102;11048:137::o:0;4344:41::-;;;:::o;3251:63::-;;;;;;;;;;;;;;;;;;;:::o;4219:28::-;;;;;;;;;;;;;:::o;7901:103::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7995:1:::1;7972:12;:20;7985:6;7972:20;;;;;;;;;;;;;;;:24;;;;7901:103:::0;:::o;3435:26::-;;;;:::o;1407:105::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1476:28:::1;1495:8;1476:18;:28::i;:::-;1407:105:::0;:::o;10803:237::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10936:6:::1;10908:24;10926:4;10908:9;:24::i;:::-;:34;;10900:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10989:43;11007:4;11014:9;11025:6;10989:9;:43::i;:::-;10803:237:::0;;:::o;11194:219::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11261:23:::1;11287:24;11305:4;11287:9;:24::i;:::-;11261:50;;11322:15;11366:3;11349:15;11341:7;:23;;;;:::i;:::-;11340:29;;;;:::i;:::-;11322:47;;11380:25;11397:7;11380:16;:25::i;:::-;11250:163;;11194:219:::0;:::o;5393:118::-;5459:7;5486:8;:17;5495:7;5486:17;;;;;;;;;;;;;;;;5479:24;;5393:118;;;:::o;8573:345::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8665:9:::1;8660:251;8684:8;;:15;;8680:1;:19;8660:251;;;8752:4;8729:28;;:8;;8738:1;8729:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:28;;;;:60;;;;;8776:13;;;;;;;;;;;8761:28;;:8;;8770:1;8761:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:28;;;;8729:60;:103;;;;;8816:15;;;;;;;;;;;8793:39;;:8;;8802:1;8793:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:39;;;;8729:103;8721:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;8898:1;8867:15;:28;8883:8;;8892:1;8883:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8867:28;;;;;;;;;;;;;;;:32;;;;8701:3;;;;;:::i;:::-;;;;8660:251;;;;8573:345:::0;;:::o;3502:31::-;;;;:::o;4296:41::-;;;:::o;4254:35::-;;;:::o;8926:200::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9019:9:::1;9014:105;9038:8;;:15;;9034:1;:19;9014:105;;;9106:1;9075:15;:28;9091:8;;9100:1;9091:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9075:28;;;;;;;;;;;;;;;:32;;;;9055:3;;;;;:::i;:::-;;;;9014:105;;;;8926:200:::0;;:::o;8375:190::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8479:3:::1;8461:14;:21;;8453:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8543:14;8529:11;:28;;;;8375:190:::0;:::o;1192:79::-;1230:7;1257:6;;;;;;;;;;;1250:13;;1192:79;:::o;5099:87::-;5138:13;5171:7;;;;;;;;;;;;;;;;;5164:14;;5099:87;:::o;5519:167::-;5597:4;5614:42;5624:12;:10;:12::i;:::-;5638:9;5649:6;5614:9;:42::i;:::-;5674:4;5667:11;;5519:167;;;;:::o;3186:58::-;;;;;;;;;;;;;;;;;;;:::o;1763:148::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1870:1:::1;1833:40;;1854:6;::::0;::::1;;;;;;;;1833:40;;;;;;;;;;;;1901:1;1884:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1763:148::o:0;3124:55::-;;;;;;;;;;;;;;;;;;;:::o;8129:238::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8240:6:::1;;8227:9;:19;;:44;;;;;8264:7;;8250:10;:21;;8227:44;8219:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8319:9;8310:6;:18;;;;8349:10;8339:7;:20;;;;8129:238:::0;;:::o;3321:105::-;;;;;;;;;;;;;;;;;;;:::o;3468:27::-;;;;:::o;8012:109::-;1329:12;:10;:12::i;:::-;1319:22;;:6;;;;;;;;;;:22;;;1311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8112:1:::1;8089:12;:20;8102:6;8089:20;;;;;;;;;;;;;;;:24;;;;8012:109:::0;:::o;5694:143::-;5775:7;5802:11;:18;5814:5;5802:18;;;;;;;;;;;;;;;:27;5821:7;5802:27;;;;;;;;;;;;;;;;5795:34;;5694:143;;;;:::o;6600:93::-;6645:13;6678:7;;;;;;;;;;;;;;;;;6671:14;;6600:93;:::o;6701:::-;6746:13;6779:7;;;;;;;;;;;;;;;;;6772:14;;6701:93;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;6905:335::-;7015:1;6998:19;;:5;:19;;;6990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7096:1;7077:21;;:7;:21;;;7069:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7178:6;7148:11;:18;7160:5;7148:18;;;;;;;;;;;;;;;:27;7167:7;7148:27;;;;;;;;;;;;;;;:36;;;;7216:7;7200:32;;7209:5;7200:32;;;7225:6;7200:32;;;;;;:::i;:::-;;;;;;;;6905:335;;;:::o;9576:1219::-;9680:1;9664:18;;:4;:18;;;9656:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9757:1;9743:16;;:2;:16;;;9735:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9827:1;9818:6;:10;9810:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9918:1;9893:15;:21;9909:4;9893:21;;;;;;;;;;;;;;;;:26;9885:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:12;10012:1;9990:12;:18;10003:4;9990:18;;;;;;;;;;;;;;;;:23;:48;;;;;10037:1;10017:12;:16;10030:2;10017:16;;;;;;;;;;;;;;;;:21;9990:48;9986:753;;;10072:6;;;;;;;;;;;10064:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10147:13;;;;;;;;;;;10139:21;;:4;:21;;;10135:593;;10188:6;;10181:13;;10135:593;;;10226:13;;;;;;;;;;;10220:19;;:2;:19;;;10216:512;;10260:20;10283:24;10301:4;10283:9;:24::i;:::-;10260:47;;3742:5;10330:12;:32;10326:295;;;10388:12;10403:7;;10388:22;;10452:6;10437:12;:21;10433:48;;;10475:6;10460:21;;10433:48;10523:4;10508:12;:19;10504:44;;;10544:4;10529:19;;10504:44;10571:30;10588:12;10571:16;:30::i;:::-;10364:257;10326:295;10646:7;;10639:14;;10241:428;10216:512;;;10701:11;;10694:18;;10216:512;10135:593;9986:753;10749:38;10764:4;10770:2;10774:6;10782:4;10749:14;:38::i;:::-;9645:1150;9576:1219;;;:::o;1520:235::-;1614:1;1594:22;;:8;:22;;;1586:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;1710:8;1681:38;;1702:6;;;;;;;;;;1681:38;;;;;;;;;;;;1739:8;1730:6;;:17;;;;;;;;;;;;;;;;;;1520:235;:::o;11421:1044::-;11487:21;11525:1;11511:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11487:40;;11556:4;11538;11543:1;11538:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11582:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11572:4;11577:1;11572:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;11615:62;11632:4;11647:15;;;;;;;;;;;11665:11;11615:8;:62::i;:::-;11688:15;;;;;;;;;;;:66;;;11769:11;11795:1;11811:4;11838;11858:15;11688:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11905:14;11951:3;11946:2;11922:21;:26;;;;:::i;:::-;:32;;;;:::i;:::-;11905:49;;11969:20;12021:3;12016:2;11992:21;:26;;;;:::i;:::-;:32;;;;:::i;:::-;11969:55;;12035:20;12087:3;12082:2;12058:21;:26;;;;:::i;:::-;:32;;;;:::i;:::-;12035:55;;12104:12;12121:10;:15;;12144:6;12121:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12103:52;;;12174:7;12166:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12229:16;:21;;12258:12;12229:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12216:59;;;;;12294:7;12286:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12355:16;:21;;12384:12;12355:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:59;;;;;12420:7;12412:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11476:989;;;;;11421:1044;:::o;9134:434::-;9233:17;9271:3;9263:4;9254:6;:13;;;;:::i;:::-;9253:21;;;;:::i;:::-;9233:41;;9285:22;9319:9;9310:6;:18;;;;:::i;:::-;9285:43;;9375:6;9358:8;:14;9367:4;9358:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9341:8;:14;9350:4;9341:14;;;;;;;;;;;;;;;:40;;;;9422:14;9407:8;:12;9416:2;9407:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;9392:8;:12;9401:2;9392:12;;;;;;;;;;;;;;;:44;;;;9499:9;9473:8;:23;9490:4;9473:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;9447:8;:23;9464:4;9447:23;;;;;;;;;;;;;;;:61;;;;9541:2;9526:34;;9535:4;9526:34;;;9545:14;9526:34;;;;;;:::i;:::-;;;;;;;;9222:346;;9134:434;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:117;6107:1;6104;6097:12;6121:117;6230:1;6227;6220:12;6261:568;6334:8;6344:6;6394:3;6387:4;6379:6;6375:17;6371:27;6361:122;;6402:79;;:::i;:::-;6361:122;6515:6;6502:20;6492:30;;6545:18;6537:6;6534:30;6531:117;;;6567:79;;:::i;:::-;6531:117;6681:4;6673:6;6669:17;6657:29;;6735:3;6727:4;6719:6;6715:17;6705:8;6701:32;6698:41;6695:128;;;6742:79;;:::i;:::-;6695:128;6261:568;;;;;:::o;6835:559::-;6921:6;6929;6978:2;6966:9;6957:7;6953:23;6949:32;6946:119;;;6984:79;;:::i;:::-;6946:119;7132:1;7121:9;7117:17;7104:31;7162:18;7154:6;7151:30;7148:117;;;7184:79;;:::i;:::-;7148:117;7297:80;7369:7;7360:6;7349:9;7345:22;7297:80;:::i;:::-;7279:98;;;;7075:312;6835:559;;;;;:::o;7400:474::-;7468:6;7476;7525:2;7513:9;7504:7;7500:23;7496:32;7493:119;;;7531:79;;:::i;:::-;7493:119;7651:1;7676:53;7721:7;7712:6;7701:9;7697:22;7676:53;:::i;:::-;7666:63;;7622:117;7778:2;7804:53;7849:7;7840:6;7829:9;7825:22;7804:53;:::i;:::-;7794:63;;7749:118;7400:474;;;;;:::o;7880:::-;7948:6;7956;8005:2;7993:9;7984:7;7980:23;7976:32;7973:119;;;8011:79;;:::i;:::-;7973:119;8131:1;8156:53;8201:7;8192:6;8181:9;8177:22;8156:53;:::i;:::-;8146:63;;8102:117;8258:2;8284:53;8329:7;8320:6;8309:9;8305:22;8284:53;:::i;:::-;8274:63;;8229:118;7880:474;;;;;:::o;8360:220::-;8500:34;8496:1;8488:6;8484:14;8477:58;8569:3;8564:2;8556:6;8552:15;8545:28;8360:220;:::o;8586:366::-;8728:3;8749:67;8813:2;8808:3;8749:67;:::i;:::-;8742:74;;8825:93;8914:3;8825:93;:::i;:::-;8943:2;8938:3;8934:12;8927:19;;8586:366;;;:::o;8958:419::-;9124:4;9162:2;9151:9;9147:18;9139:26;;9211:9;9205:4;9201:20;9197:1;9186:9;9182:17;9175:47;9239:131;9365:4;9239:131;:::i;:::-;9231:139;;8958:419;;;:::o;9383:168::-;9523:20;9519:1;9511:6;9507:14;9500:44;9383:168;:::o;9557:366::-;9699:3;9720:67;9784:2;9779:3;9720:67;:::i;:::-;9713:74;;9796:93;9885:3;9796:93;:::i;:::-;9914:2;9909:3;9905:12;9898:19;;9557:366;;;:::o;9929:419::-;10095:4;10133:2;10122:9;10118:18;10110:26;;10182:9;10176:4;10172:20;10168:1;10157:9;10153:17;10146:47;10210:131;10336:4;10210:131;:::i;:::-;10202:139;;9929:419;;;:::o;10354:180::-;10402:77;10399:1;10392:88;10499:4;10496:1;10489:15;10523:4;10520:1;10513:15;10540:102;10582:8;10629:5;10626:1;10622:13;10601:34;;10540:102;;;:::o;10648:848::-;10709:5;10716:4;10740:6;10731:15;;10764:5;10755:14;;10778:712;10799:1;10789:8;10786:15;10778:712;;;10894:4;10889:3;10885:14;10879:4;10876:24;10873:50;;;10903:18;;:::i;:::-;10873:50;10953:1;10943:8;10939:16;10936:451;;;11368:4;11361:5;11357:16;11348:25;;10936:451;11418:4;11412;11408:15;11400:23;;11448:32;11471:8;11448:32;:::i;:::-;11436:44;;10778:712;;;10648:848;;;;;;;:::o;11502:1073::-;11556:5;11747:8;11737:40;;11768:1;11759:10;;11770:5;;11737:40;11796:4;11786:36;;11813:1;11804:10;;11815:5;;11786:36;11882:4;11930:1;11925:27;;;;11966:1;11961:191;;;;11875:277;;11925:27;11943:1;11934:10;;11945:5;;;11961:191;12006:3;11996:8;11993:17;11990:43;;;12013:18;;:::i;:::-;11990:43;12062:8;12059:1;12055:16;12046:25;;12097:3;12090:5;12087:14;12084:40;;;12104:18;;:::i;:::-;12084:40;12137:5;;;11875:277;;12261:2;12251:8;12248:16;12242:3;12236:4;12233:13;12229:36;12211:2;12201:8;12198:16;12193:2;12187:4;12184:12;12180:35;12164:111;12161:246;;;12317:8;12311:4;12307:19;12298:28;;12352:3;12345:5;12342:14;12339:40;;;12359:18;;:::i;:::-;12339:40;12392:5;;12161:246;12432:42;12470:3;12460:8;12454:4;12451:1;12432:42;:::i;:::-;12417:57;;;;12506:4;12501:3;12497:14;12490:5;12487:25;12484:51;;;12515:18;;:::i;:::-;12484:51;12564:4;12557:5;12553:16;12544:25;;11502:1073;;;;;;:::o;12581:281::-;12639:5;12663:23;12681:4;12663:23;:::i;:::-;12655:31;;12707:25;12723:8;12707:25;:::i;:::-;12695:37;;12751:104;12788:66;12778:8;12772:4;12751:104;:::i;:::-;12742:113;;12581:281;;;;:::o;12868:410::-;12908:7;12931:20;12949:1;12931:20;:::i;:::-;12926:25;;12965:20;12983:1;12965:20;:::i;:::-;12960:25;;13020:1;13017;13013:9;13042:30;13060:11;13042:30;:::i;:::-;13031:41;;13221:1;13212:7;13208:15;13205:1;13202:22;13182:1;13175:9;13155:83;13132:139;;13251:18;;:::i;:::-;13132:139;12916:362;12868:410;;;;:::o;13284:180::-;13332:77;13329:1;13322:88;13429:4;13426:1;13419:15;13453:4;13450:1;13443:15;13470:185;13510:1;13527:20;13545:1;13527:20;:::i;:::-;13522:25;;13561:20;13579:1;13561:20;:::i;:::-;13556:25;;13600:1;13590:35;;13605:18;;:::i;:::-;13590:35;13647:1;13644;13640:9;13635:14;;13470:185;;;;:::o;13661:227::-;13801:34;13797:1;13789:6;13785:14;13778:58;13870:10;13865:2;13857:6;13853:15;13846:35;13661:227;:::o;13894:366::-;14036:3;14057:67;14121:2;14116:3;14057:67;:::i;:::-;14050:74;;14133:93;14222:3;14133:93;:::i;:::-;14251:2;14246:3;14242:12;14235:19;;13894:366;;;:::o;14266:419::-;14432:4;14470:2;14459:9;14455:18;14447:26;;14519:9;14513:4;14509:20;14505:1;14494:9;14490:17;14483:47;14547:131;14673:4;14547:131;:::i;:::-;14539:139;;14266:419;;;:::o;14691:172::-;14831:24;14827:1;14819:6;14815:14;14808:48;14691:172;:::o;14869:366::-;15011:3;15032:67;15096:2;15091:3;15032:67;:::i;:::-;15025:74;;15108:93;15197:3;15108:93;:::i;:::-;15226:2;15221:3;15217:12;15210:19;;14869:366;;;:::o;15241:419::-;15407:4;15445:2;15434:9;15430:18;15422:26;;15494:9;15488:4;15484:20;15480:1;15469:9;15465:17;15458:47;15522:131;15648:4;15522:131;:::i;:::-;15514:139;;15241:419;;;:::o;15666:143::-;15723:5;15754:6;15748:13;15739:22;;15770:33;15797:5;15770:33;:::i;:::-;15666:143;;;;:::o;15815:351::-;15885:6;15934:2;15922:9;15913:7;15909:23;15905:32;15902:119;;;15940:79;;:::i;:::-;15902:119;16060:1;16085:64;16141:7;16132:6;16121:9;16117:22;16085:64;:::i;:::-;16075:74;;16031:128;15815:351;;;;:::o;16172:332::-;16293:4;16331:2;16320:9;16316:18;16308:26;;16344:71;16412:1;16401:9;16397:17;16388:6;16344:71;:::i;:::-;16425:72;16493:2;16482:9;16478:18;16469:6;16425:72;:::i;:::-;16172:332;;;;;:::o;16510:85::-;16555:7;16584:5;16573:16;;16510:85;;;:::o;16601:60::-;16629:3;16650:5;16643:12;;16601:60;;;:::o;16667:158::-;16725:9;16758:61;16776:42;16785:32;16811:5;16785:32;:::i;:::-;16776:42;:::i;:::-;16758:61;:::i;:::-;16745:74;;16667:158;;;:::o;16831:147::-;16926:45;16965:5;16926:45;:::i;:::-;16921:3;16914:58;16831:147;;:::o;16984:807::-;17233:4;17271:3;17260:9;17256:19;17248:27;;17285:71;17353:1;17342:9;17338:17;17329:6;17285:71;:::i;:::-;17366:72;17434:2;17423:9;17419:18;17410:6;17366:72;:::i;:::-;17448:80;17524:2;17513:9;17509:18;17500:6;17448:80;:::i;:::-;17538;17614:2;17603:9;17599:18;17590:6;17538:80;:::i;:::-;17628:73;17696:3;17685:9;17681:19;17672:6;17628:73;:::i;:::-;17711;17779:3;17768:9;17764:19;17755:6;17711:73;:::i;:::-;16984:807;;;;;;;;;:::o;17797:143::-;17854:5;17885:6;17879:13;17870:22;;17901:33;17928:5;17901:33;:::i;:::-;17797:143;;;;:::o;17946:663::-;18034:6;18042;18050;18099:2;18087:9;18078:7;18074:23;18070:32;18067:119;;;18105:79;;:::i;:::-;18067:119;18225:1;18250:64;18306:7;18297:6;18286:9;18282:22;18250:64;:::i;:::-;18240:74;;18196:128;18363:2;18389:64;18445:7;18436:6;18425:9;18421:22;18389:64;:::i;:::-;18379:74;;18334:129;18502:2;18528:64;18584:7;18575:6;18564:9;18560:22;18528:64;:::i;:::-;18518:74;;18473:129;17946:663;;;;;:::o;18615:332::-;18736:4;18774:2;18763:9;18759:18;18751:26;;18787:71;18855:1;18844:9;18840:17;18831:6;18787:71;:::i;:::-;18868:72;18936:2;18925:9;18921:18;18912:6;18868:72;:::i;:::-;18615:332;;;;;:::o;18953:116::-;19023:21;19038:5;19023:21;:::i;:::-;19016:5;19013:32;19003:60;;19059:1;19056;19049:12;19003:60;18953:116;:::o;19075:137::-;19129:5;19160:6;19154:13;19145:22;;19176:30;19200:5;19176:30;:::i;:::-;19075:137;;;;:::o;19218:345::-;19285:6;19334:2;19322:9;19313:7;19309:23;19305:32;19302:119;;;19340:79;;:::i;:::-;19302:119;19460:1;19485:61;19538:7;19529:6;19518:9;19514:22;19485:61;:::i;:::-;19475:71;;19431:125;19218:345;;;;:::o;19569:147::-;19670:11;19707:3;19692:18;;19569:147;;;;:::o;19722:114::-;;:::o;19842:398::-;20001:3;20022:83;20103:1;20098:3;20022:83;:::i;:::-;20015:90;;20114:93;20203:3;20114:93;:::i;:::-;20232:1;20227:3;20223:11;20216:18;;19842:398;;;:::o;20246:379::-;20430:3;20452:147;20595:3;20452:147;:::i;:::-;20445:154;;20616:3;20609:10;;20246:379;;;:::o;20631:181::-;20771:33;20767:1;20759:6;20755:14;20748:57;20631:181;:::o;20818:366::-;20960:3;20981:67;21045:2;21040:3;20981:67;:::i;:::-;20974:74;;21057:93;21146:3;21057:93;:::i;:::-;21175:2;21170:3;21166:12;21159:19;;20818:366;;;:::o;21190:419::-;21356:4;21394:2;21383:9;21379:18;21371:26;;21443:9;21437:4;21433:20;21429:1;21418:9;21414:17;21407:47;21471:131;21597:4;21471:131;:::i;:::-;21463:139;;21190:419;;;:::o;21615:180::-;21663:77;21660:1;21653:88;21760:4;21757:1;21750:15;21784:4;21781:1;21774:15;21801:165;21941:17;21937:1;21929:6;21925:14;21918:41;21801:165;:::o;21972:366::-;22114:3;22135:67;22199:2;22194:3;22135:67;:::i;:::-;22128:74;;22211:93;22300:3;22211:93;:::i;:::-;22329:2;22324:3;22320:12;22313:19;;21972:366;;;:::o;22344:419::-;22510:4;22548:2;22537:9;22533:18;22525:26;;22597:9;22591:4;22587:20;22583:1;22572:9;22568:17;22561:47;22625:131;22751:4;22625:131;:::i;:::-;22617:139;;22344:419;;;:::o;22769:233::-;22808:3;22831:24;22849:5;22831:24;:::i;:::-;22822:33;;22877:66;22870:5;22867:77;22864:103;;22947:18;;:::i;:::-;22864:103;22994:1;22987:5;22983:13;22976:20;;22769:233;;;:::o;23008:181::-;23148:33;23144:1;23136:6;23132:14;23125:57;23008:181;:::o;23195:366::-;23337:3;23358:67;23422:2;23417:3;23358:67;:::i;:::-;23351:74;;23434:93;23523:3;23434:93;:::i;:::-;23552:2;23547:3;23543:12;23536:19;;23195:366;;;:::o;23567:419::-;23733:4;23771:2;23760:9;23756:18;23748:26;;23820:9;23814:4;23810:20;23806:1;23795:9;23791:17;23784:47;23848:131;23974:4;23848:131;:::i;:::-;23840:139;;23567:419;;;:::o;23992:173::-;24132:25;24128:1;24120:6;24116:14;24109:49;23992:173;:::o;24171:366::-;24313:3;24334:67;24398:2;24393:3;24334:67;:::i;:::-;24327:74;;24410:93;24499:3;24410:93;:::i;:::-;24528:2;24523:3;24519:12;24512:19;;24171:366;;;:::o;24543:419::-;24709:4;24747:2;24736:9;24732:18;24724:26;;24796:9;24790:4;24786:20;24782:1;24771:9;24767:17;24760:47;24824:131;24950:4;24824:131;:::i;:::-;24816:139;;24543:419;;;:::o;24968:223::-;25108:34;25104:1;25096:6;25092:14;25085:58;25177:6;25172:2;25164:6;25160:15;25153:31;24968:223;:::o;25197:366::-;25339:3;25360:67;25424:2;25419:3;25360:67;:::i;:::-;25353:74;;25436:93;25525:3;25436:93;:::i;:::-;25554:2;25549:3;25545:12;25538:19;;25197:366;;;:::o;25569:419::-;25735:4;25773:2;25762:9;25758:18;25750:26;;25822:9;25816:4;25812:20;25808:1;25797:9;25793:17;25786:47;25850:131;25976:4;25850:131;:::i;:::-;25842:139;;25569:419;;;:::o;25994:221::-;26134:34;26130:1;26122:6;26118:14;26111:58;26203:4;26198:2;26190:6;26186:15;26179:29;25994:221;:::o;26221:366::-;26363:3;26384:67;26448:2;26443:3;26384:67;:::i;:::-;26377:74;;26460:93;26549:3;26460:93;:::i;:::-;26578:2;26573:3;26569:12;26562:19;;26221:366;;;:::o;26593:419::-;26759:4;26797:2;26786:9;26782:18;26774:26;;26846:9;26840:4;26836:20;26832:1;26821:9;26817:17;26810:47;26874:131;27000:4;26874:131;:::i;:::-;26866:139;;26593:419;;;:::o;27018:224::-;27158:34;27154:1;27146:6;27142:14;27135:58;27227:7;27222:2;27214:6;27210:15;27203:32;27018:224;:::o;27248:366::-;27390:3;27411:67;27475:2;27470:3;27411:67;:::i;:::-;27404:74;;27487:93;27576:3;27487:93;:::i;:::-;27605:2;27600:3;27596:12;27589:19;;27248:366;;;:::o;27620:419::-;27786:4;27824:2;27813:9;27809:18;27801:26;;27873:9;27867:4;27863:20;27859:1;27848:9;27844:17;27837:47;27901:131;28027:4;27901:131;:::i;:::-;27893:139;;27620:419;;;:::o;28045:222::-;28185:34;28181:1;28173:6;28169:14;28162:58;28254:5;28249:2;28241:6;28237:15;28230:30;28045:222;:::o;28273:366::-;28415:3;28436:67;28500:2;28495:3;28436:67;:::i;:::-;28429:74;;28512:93;28601:3;28512:93;:::i;:::-;28630:2;28625:3;28621:12;28614:19;;28273:366;;;:::o;28645:419::-;28811:4;28849:2;28838:9;28834:18;28826:26;;28898:9;28892:4;28888:20;28884:1;28873:9;28869:17;28862:47;28926:131;29052:4;28926:131;:::i;:::-;28918:139;;28645:419;;;:::o;29070:228::-;29210:34;29206:1;29198:6;29194:14;29187:58;29279:11;29274:2;29266:6;29262:15;29255:36;29070:228;:::o;29304:366::-;29446:3;29467:67;29531:2;29526:3;29467:67;:::i;:::-;29460:74;;29543:93;29632:3;29543:93;:::i;:::-;29661:2;29656:3;29652:12;29645:19;;29304:366;;;:::o;29676:419::-;29842:4;29880:2;29869:9;29865:18;29857:26;;29929:9;29923:4;29919:20;29915:1;29904:9;29900:17;29893:47;29957:131;30083:4;29957:131;:::i;:::-;29949:139;;29676:419;;;:::o;30101:172::-;30241:24;30237:1;30229:6;30225:14;30218:48;30101:172;:::o;30279:366::-;30421:3;30442:67;30506:2;30501:3;30442:67;:::i;:::-;30435:74;;30518:93;30607:3;30518:93;:::i;:::-;30636:2;30631:3;30627:12;30620:19;;30279:366;;;:::o;30651:419::-;30817:4;30855:2;30844:9;30840:18;30832:26;;30904:9;30898:4;30894:20;30890:1;30879:9;30875:17;30868:47;30932:131;31058:4;30932:131;:::i;:::-;30924:139;;30651:419;;;:::o;31076:173::-;31216:25;31212:1;31204:6;31200:14;31193:49;31076:173;:::o;31255:366::-;31397:3;31418:67;31482:2;31477:3;31418:67;:::i;:::-;31411:74;;31494:93;31583:3;31494:93;:::i;:::-;31612:2;31607:3;31603:12;31596:19;;31255:366;;;:::o;31627:419::-;31793:4;31831:2;31820:9;31816:18;31808:26;;31880:9;31874:4;31870:20;31866:1;31855:9;31851:17;31844:47;31908:131;32034:4;31908:131;:::i;:::-;31900:139;;31627:419;;;:::o;32052:231::-;32192:34;32188:1;32180:6;32176:14;32169:58;32261:14;32256:2;32248:6;32244:15;32237:39;32052:231;:::o;32289:366::-;32431:3;32452:67;32516:2;32511:3;32452:67;:::i;:::-;32445:74;;32528:93;32617:3;32528:93;:::i;:::-;32646:2;32641:3;32637:12;32630:19;;32289:366;;;:::o;32661:419::-;32827:4;32865:2;32854:9;32850:18;32842:26;;32914:9;32908:4;32904:20;32900:1;32889:9;32885:17;32878:47;32942:131;33068:4;32942:131;:::i;:::-;32934:139;;32661:419;;;:::o;33086:180::-;33134:77;33131:1;33124:88;33231:4;33228:1;33221:15;33255:4;33252:1;33245:15;33272:114;33339:6;33373:5;33367:12;33357:22;;33272:114;;;:::o;33392:184::-;33491:11;33525:6;33520:3;33513:19;33565:4;33560:3;33556:14;33541:29;;33392:184;;;;:::o;33582:132::-;33649:4;33672:3;33664:11;;33702:4;33697:3;33693:14;33685:22;;33582:132;;;:::o;33720:108::-;33797:24;33815:5;33797:24;:::i;:::-;33792:3;33785:37;33720:108;;:::o;33834:179::-;33903:10;33924:46;33966:3;33958:6;33924:46;:::i;:::-;34002:4;33997:3;33993:14;33979:28;;33834:179;;;;:::o;34019:113::-;34089:4;34121;34116:3;34112:14;34104:22;;34019:113;;;:::o;34168:732::-;34287:3;34316:54;34364:5;34316:54;:::i;:::-;34386:86;34465:6;34460:3;34386:86;:::i;:::-;34379:93;;34496:56;34546:5;34496:56;:::i;:::-;34575:7;34606:1;34591:284;34616:6;34613:1;34610:13;34591:284;;;34692:6;34686:13;34719:63;34778:3;34763:13;34719:63;:::i;:::-;34712:70;;34805:60;34858:6;34805:60;:::i;:::-;34795:70;;34651:224;34638:1;34635;34631:9;34626:14;;34591:284;;;34595:14;34891:3;34884:10;;34292:608;;;34168:732;;;;:::o;34906:831::-;35169:4;35207:3;35196:9;35192:19;35184:27;;35221:71;35289:1;35278:9;35274:17;35265:6;35221:71;:::i;:::-;35302:80;35378:2;35367:9;35363:18;35354:6;35302:80;:::i;:::-;35429:9;35423:4;35419:20;35414:2;35403:9;35399:18;35392:48;35457:108;35560:4;35551:6;35457:108;:::i;:::-;35449:116;;35575:72;35643:2;35632:9;35628:18;35619:6;35575:72;:::i;:::-;35657:73;35725:3;35714:9;35710:19;35701:6;35657:73;:::i;:::-;34906:831;;;;;;;;:::o;35743:169::-;35883:21;35879:1;35871:6;35867:14;35860:45;35743:169;:::o;35918:366::-;36060:3;36081:67;36145:2;36140:3;36081:67;:::i;:::-;36074:74;;36157:93;36246:3;36157:93;:::i;:::-;36275:2;36270:3;36266:12;36259:19;;35918:366;;;:::o;36290:419::-;36456:4;36494:2;36483:9;36479:18;36471:26;;36543:9;36537:4;36533:20;36529:1;36518:9;36514:17;36507:47;36571:131;36697:4;36571:131;:::i;:::-;36563:139;;36290:419;;;:::o;36715:175::-;36855:27;36851:1;36843:6;36839:14;36832:51;36715:175;:::o;36896:366::-;37038:3;37059:67;37123:2;37118:3;37059:67;:::i;:::-;37052:74;;37135:93;37224:3;37135:93;:::i;:::-;37253:2;37248:3;37244:12;37237:19;;36896:366;;;:::o;37268:419::-;37434:4;37472:2;37461:9;37457:18;37449:26;;37521:9;37515:4;37511:20;37507:1;37496:9;37492:17;37485:47;37549:131;37675:4;37549:131;:::i;:::-;37541:139;;37268:419;;;:::o;37693:175::-;37833:27;37829:1;37821:6;37817:14;37810:51;37693:175;:::o;37874:366::-;38016:3;38037:67;38101:2;38096:3;38037:67;:::i;:::-;38030:74;;38113:93;38202:3;38113:93;:::i;:::-;38231:2;38226:3;38222:12;38215:19;;37874:366;;;:::o;38246:419::-;38412:4;38450:2;38439:9;38435:18;38427:26;;38499:9;38493:4;38489:20;38485:1;38474:9;38470:17;38463:47;38527:131;38653:4;38527:131;:::i;:::-;38519:139;;38246:419;;;:::o;38671:194::-;38711:4;38731:20;38749:1;38731:20;:::i;:::-;38726:25;;38765:20;38783:1;38765:20;:::i;:::-;38760:25;;38809:1;38806;38802:9;38794:17;;38833:1;38827:4;38824:11;38821:37;;;38838:18;;:::i;:::-;38821:37;38671:194;;;;:::o;38871:191::-;38911:3;38930:20;38948:1;38930:20;:::i;:::-;38925:25;;38964:20;38982:1;38964:20;:::i;:::-;38959:25;;39007:1;39004;39000:9;38993:16;;39028:3;39025:1;39022:10;39019:36;;;39035:18;;:::i;:::-;39019:36;38871:191;;;;:::o

Swarm Source

ipfs://b6013368146681d935147412f8e20bf0bf4414425b5d940d2c39cb21f96a29ed
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.