ETH Price: $3,271.85 (-0.72%)

Token

ORIGENT AI (ORI)
 

Overview

Max Total Supply

100,000,000 ORI

Holders

516 ( -17.408%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH (-75.31%)

Onchain Market Cap

$33,927.00

Circulating Supply Market Cap

$33,248.00

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Origent is a platform at the intersection of artificial intelligence and blockchain technology. Origent AI hosts a decentralized network of autonomous AI agents, designed to carry out complex tasks, make independent decisions, and drive value creation without human intervention.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ORIGENT_AI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-01-07
*/

// SPDX-License-Identifier: MIT
 
pragma solidity 0.8.26;
 
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);
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
 
}
 
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 is not the owner");
        _;
    }
 
    function renounceOwnership() 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(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint 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 ORIGENT_AI is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExemptMax;
    address payable private _destinationFee;
    address private _bondingCurve = 0xc18c0c065E0506356abd591CeF439eB234AbA599;
 
    uint256 private _buyTaxAtStart=20;
    uint256 private _sellTaxAtStart=20;
    uint256 private _fixedPurchaseTax=10;
    uint256 private _fixedSellTax=15;
 
    uint256 private _applyLowerBuyTaxAt=19;
    uint256 private _applyLowerSellTaxAt=20;
    uint256 private _disableSwapBefore=30;
    uint256 private _serviceFee=0;
    uint256 private _overallBuy=0;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    string private constant _name = "ORIGENT AI";
    string private constant _symbol = unicode"ORI";
 
    uint256 public _maxPurchase =  1_000_000 * 10**_decimals;
    uint256 public _maxWalletCapacity =  1_000_000 * 10**_decimals;
    uint256 public _swapTaxTrigger=  100_000 * 10**_decimals;
    uint256 public _maximumTaxSwap= 500_000 * 10**_decimals;
 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    uint256 private totalSell = 0;
    uint256 private finalSellBlock = 0;
 

 
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor(address payable destinationFeeAddress) {
        require(destinationFeeAddress != address(0), "Invalid destination fee address");
        _destinationFee = destinationFeeAddress;  // Set the _destinationFee to the provided address
        _balances[address(this)] = _tTotal * 85 / 100;
        _balances[_destinationFee] = _tTotal * 10 / 100;
        _balances[_msgSender()] = _tTotal * 5 / 100;
        _isExemptMax[owner()] = true;
        _isExemptMax[address(this)] = true;
        _isExemptMax[_destinationFee] = true;
        _isExemptMax[_bondingCurve] = true;
 
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
 
        emit Transfer(address(0), address(this), _tTotal * 85 / 100);
        emit Transfer(address(0), _destinationFee, _tTotal * 10 / 100);
        emit Transfer(address(0), _msgSender(), _tTotal * 5/ 100);
    }
  

 
    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 _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
 
    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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
 
            if(_overallBuy==0){
                taxAmount = amount.mul((_overallBuy>_applyLowerBuyTaxAt)?_fixedPurchaseTax:_buyTaxAtStart).div(100);
            }
            if(_overallBuy>0){
                taxAmount = amount.mul(_serviceFee).div(100);
            }
 
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExemptMax[to] ) {
                require(amount <= _maxPurchase, "Exceeds the _maxPurchase.");
                require(balanceOf(to) + amount <= _maxWalletCapacity, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_overallBuy>_applyLowerBuyTaxAt)?_fixedPurchaseTax:_buyTaxAtStart).div(100);
                _overallBuy++;
            }
 
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_overallBuy>_applyLowerSellTaxAt)?_fixedSellTax:_sellTaxAtStart).div(100);
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _swapTaxTrigger && _overallBuy > _disableSwapBefore) {
                if (block.number > finalSellBlock) {
                    totalSell = 0;
                }
                require(totalSell < 4, "Only 4 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maximumTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                totalSell++;
                finalSellBlock = block.number;
            }
        }
 
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
 
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }
 
    function deactivateLimits() external onlyOwner{
        _maxPurchase = _tTotal;
        _maxWalletCapacity=_tTotal;
 
    }
 
    function sendETHToFee(uint256 amount) private {
        _destinationFee.transfer(amount);
    }
 
    function releaseStuckEther() external {
        require(_msgSender() == _destinationFee);
        payable(_destinationFee).transfer(address(this).balance);
    }
 
    function clearForeignERC20(address _tokenAddr, uint _amount) external {
        require(_msgSender() == _destinationFee);
        IERC20(_tokenAddr).transfer(_destinationFee, _amount);
    }
 
 
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");

        uint256 tokenToLP = _tTotal * 65 / 100;

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenToLP,
            0,
            0,
            owner(),
            block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }
 
    function setCustomTax (uint256 _value) external onlyOwner returns (bool) {
        _fixedPurchaseTax = _value;
        _fixedSellTax = _value;
        require(_value <= 5,"Tax cannot exceed 5");
        return true;
    }
 
    receive() external payable {}
 
    function releaseStuckBalance() external {
        require(_msgSender()==_destinationFee);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function cloggedHalving() external {
        require(_msgSender()==_destinationFee,"Only the destination fee can halve");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
            transfer(_destinationFee, tokenBalance / 2);
        }
    } 

}

/**

Website : https://origent.ai/
App : https://dashboard.origent.ai/
Twitter : https://x.com/OrigentAi
Telegram : https://t.me/origentai


**/

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"destinationFeeAddress","type":"address"}],"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":[],"name":"_maxPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximumTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTaxTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearForeignERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cloggedHalving","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deactivateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"releaseStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setCustomTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c18c0c065e0506356abd591cef439eb234aba59960055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060146006556014600755600a600855600f6009556013600a556014600b55601e600c555f600d555f600e556009600a6100919190610c98565b620f424061009f9190610ce2565b600f556009600a6100b09190610c98565b620f42406100be9190610ce2565b6010556009600a6100cf9190610c98565b620186a06100dd9190610ce2565b6011556009600a6100ee9190610c98565b6207a1206100fc9190610ce2565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f601655348015610146575f80fd5b5060405161404838038061404883398181016040528101906101689190610d81565b5f610177610af960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027890610e06565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460556009600a6102d39190610c98565b6305f5e1006102e29190610ce2565b6102ec9190610ce2565b6102f69190610e51565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506064600a6009600a6103499190610c98565b6305f5e1006103589190610ce2565b6103629190610ce2565b61036c9190610e51565b60015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460056009600a6103e09190610c98565b6305f5e1006103ef9190610ce2565b6103f99190610ce2565b6104039190610e51565b60015f610414610af960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f610464610b0060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d69190610ebc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107809190610ebc565b6040518363ffffffff1660e01b815260040161079d929190610ef6565b6020604051808303815f875af11580156107b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107dd9190610ebc565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016108b9929190610f2c565b6020604051808303815f875af11580156108d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f99190610f88565b503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460556009600a61095b9190610c98565b6305f5e10061096a9190610ce2565b6109749190610ce2565b61097e9190610e51565b60405161098b9190610fb3565b60405180910390a360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6064600a6009600a610a159190610c98565b6305f5e100610a249190610ce2565b610a2e9190610ce2565b610a389190610e51565b604051610a459190610fb3565b60405180910390a3610a5b610af960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460056009600a610abb9190610c98565b6305f5e100610aca9190610ce2565b610ad49190610ce2565b610ade9190610e51565b604051610aeb9190610fb3565b60405180910390a350610fcc565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610ba957808604811115610b8557610b84610b27565b5b6001851615610b945780820291505b8081029050610ba285610b54565b9450610b69565b94509492505050565b5f82610bc15760019050610c7c565b81610bce575f9050610c7c565b8160018114610be45760028114610bee57610c1d565b6001915050610c7c565b60ff841115610c0057610bff610b27565b5b8360020a915084821115610c1757610c16610b27565b5b50610c7c565b5060208310610133831016604e8410600b8410161715610c525782820a905083811115610c4d57610c4c610b27565b5b610c7c565b610c5f8484846001610b60565b92509050818404811115610c7657610c75610b27565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610ca282610c83565b9150610cad83610c8c565b9250610cda7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610bb2565b905092915050565b5f610cec82610c83565b9150610cf783610c83565b9250828202610d0581610c83565b91508282048414831517610d1c57610d1b610b27565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d5082610d27565b9050919050565b610d6081610d46565b8114610d6a575f80fd5b50565b5f81519050610d7b81610d57565b92915050565b5f60208284031215610d9657610d95610d23565b5b5f610da384828501610d6d565b91505092915050565b5f82825260208201905092915050565b7f496e76616c69642064657374696e6174696f6e206665652061646472657373005f82015250565b5f610df0601f83610dac565b9150610dfb82610dbc565b602082019050919050565b5f6020820190508181035f830152610e1d81610de4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e5b82610c83565b9150610e6683610c83565b925082610e7657610e75610e24565b5b828204905092915050565b5f610e8b82610d27565b9050919050565b610e9b81610e81565b8114610ea5575f80fd5b50565b5f81519050610eb681610e92565b92915050565b5f60208284031215610ed157610ed0610d23565b5b5f610ede84828501610ea8565b91505092915050565b610ef081610e81565b82525050565b5f604082019050610f095f830185610ee7565b610f166020830184610ee7565b9392505050565b610f2681610c83565b82525050565b5f604082019050610f3f5f830185610ee7565b610f4c6020830184610f1d565b9392505050565b5f8115159050919050565b610f6781610f53565b8114610f71575f80fd5b50565b5f81519050610f8281610f5e565b92915050565b5f60208284031215610f9d57610f9c610d23565b5b5f610faa84828501610f74565b91505092915050565b5f602082019050610fc65f830184610f1d565b92915050565b61306f80610fd95f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa578063b714e0171161006e578063b714e017146103ed578063b7d307bf14610417578063bb9aee3e14610453578063c9567bf914610469578063dd62ed3e1461047f578063f044b410146104bb5761013f565b8063715018a61461031d5780637af1d185146103335780638da5cb5b1461035d57806395d89b4114610387578063a9059cbb146103b15761013f565b806328453a97116100fc57806328453a9714610225578063313ce5671461023b57806352df2e4d146102655780635ee2c32d1461028d578063708714c2146102b757806370a08231146102e15761013f565b806306fdde0314610143578063095ea7b31461016d57806317271b4a146101a957806318160ddd146101bf57806323b872dd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d1565b6040516101649190612061565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612112565b61050e565b6040516101a0919061216a565b60405180910390f35b3480156101b4575f80fd5b506101bd61052b565b005b3480156101ca575f80fd5b506101d3610611565b6040516101e09190612192565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a91906121ab565b610634565b60405161021c919061216a565b60405180910390f35b348015610230575f80fd5b50610239610708565b005b348015610246575f80fd5b5061024f61079f565b60405161025c9190612216565b60405180910390f35b348015610270575f80fd5b5061028b60048036038101906102869190612112565b6107a7565b005b348015610298575f80fd5b506102a16108a7565b6040516102ae9190612192565b60405180910390f35b3480156102c2575f80fd5b506102cb6108ad565b6040516102d89190612192565b60405180910390f35b3480156102ec575f80fd5b506103076004803603810190610302919061222f565b6108b3565b6040516103149190612192565b60405180910390f35b348015610328575f80fd5b506103316108f9565b005b34801561033e575f80fd5b50610347610a47565b6040516103549190612192565b60405180910390f35b348015610368575f80fd5b50610371610a4d565b60405161037e9190612269565b60405180910390f35b348015610392575f80fd5b5061039b610a74565b6040516103a89190612061565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190612112565b610ab1565b6040516103e4919061216a565b60405180910390f35b3480156103f8575f80fd5b50610401610ace565b60405161040e9190612192565b60405180910390f35b348015610422575f80fd5b5061043d60048036038101906104389190612282565b610ad4565b60405161044a919061216a565b60405180910390f35b34801561045e575f80fd5b50610467610bc4565b005b348015610474575f80fd5b5061047d610c8a565b005b34801561048a575f80fd5b506104a560048036038101906104a091906122ad565b610ed4565b6040516104b29190612192565b60405180910390f35b3480156104c6575f80fd5b506104cf610f56565b005b60606040518060400160405280600a81526020017f4f524947454e5420414900000000000000000000000000000000000000000000815250905090565b5f61052161051a611032565b8484611039565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661056b611032565b73ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b89061235b565b60405180910390fd5b5f6105cb306108b3565b90505f81111561060e5761060c60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028361060791906123d3565b610ab1565b505b50565b5f6009600a6106209190612532565b6305f5e10061062f919061257c565b905090565b5f6106408484846111fc565b6106fd8461064c611032565b6106f8856040518060600160405280602881526020016130126028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106af611032565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611add9092919063ffffffff16565b611039565b600190509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610748611032565b73ffffffffffffffffffffffffffffffffffffffff1614610767575f80fd5b5f610771306108b3565b90505f8111156107855761078481611b3f565b5b5f4790505f81111561079b5761079a81611daa565b5b5050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e7611032565b73ffffffffffffffffffffffffffffffffffffffff1614610806575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610862929190612618565b6020604051808303815f875af115801561087e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a29190612669565b505050565b60125481565b60115481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610901611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610984906126de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4f52490000000000000000000000000000000000000000000000000000000000815250905090565b5f610ac4610abd611032565b84846111fc565b6001905092915050565b600f5481565b5f610add611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b60906126de565b60405180910390fd5b81600881905550816009819055506005821115610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290612746565b60405180910390fd5b60019050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c04611032565b73ffffffffffffffffffffffffffffffffffffffff1614610c23575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c87573d5f803e3d5ffd5b50565b610c92611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d15906126de565b60405180910390fd5b60148054906101000a900460ff1615610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d63906127ae565b60405180910390fd5b5f606460416009600a610d7f9190612532565b6305f5e100610d8e919061257c565b610d98919061257c565b610da291906123d3565b9050610dec3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dd89190612532565b6305f5e100610de7919061257c565b611039565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610e36610a4d565b426040518863ffffffff1660e01b8152600401610e5896959493929190612805565b60606040518083038185885af1158015610e74573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e999190612878565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f5e611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe1906126de565b60405180910390fd5b6009600a610ff89190612532565b6305f5e100611007919061257c565b600f819055506009600a61101b9190612532565b6305f5e10061102a919061257c565b601081905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109e90612938565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c906129c6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111ef9190612192565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612a54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612ae2565b60405180910390fd5b5f811161131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190612b70565b60405180910390fd5b5f611323610a4d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113915750611361610a4d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182d575f600e54036113de576113db60646113cd600a54600e54116113ba576006546113be565b6008545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b5f600e541115611413576114106064611402600d5485611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114bc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561150f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160757600f54821115611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612bd8565b60405180910390fd5b60105482611566856108b3565b6115709190612bf6565b11156115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612c73565b60405180910390fd5b6115ed60646115df600a54600e54116115cc576006546115d0565b6008545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b9050600e5f81548092919061160190612c91565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116d3576116d060646116c2600b54600e54116116af576007546116b3565b6009545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b5f6116dd306108b3565b9050601460159054906101000a900460ff16158015611748575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117605750601460169054906101000a900460ff165b801561176d575060115481115b801561177c5750600c54600e54115b1561182b57601654431115611793575f6015819055505b6004601554106117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90612d22565b60405180910390fd5b6117f56117f0846117eb84601254611ed2565b611ed2565b611b3f565b5f4790505f81111561180b5761180a47611daa565b5b60155f81548092919061181d90612c91565b919050555043601681905550505b505b5f81111561192c576118858160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eea90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119239190612192565b60405180910390a35b61197c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a1f6119d38284611f4790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eea90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ac28486611f4790919063ffffffff16565b604051611acf9190612192565b60405180910390a350505050565b5f838311158290611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b9190612061565b60405180910390fd5b505f8385611b329190612d40565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b7657611b75612d73565b5b604051908082528060200260200182016040528015611ba45781602001602082028036833780820191505090505b50905030815f81518110611bbb57611bba612da0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c839190612de1565b81600181518110611c9757611c96612da0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cfd3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611039565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d5f959493929190612ec3565b5f604051808303815f87803b158015611d76575f80fd5b505af1158015611d88573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e0e573d5f803e3d5ffd5b5050565b5f808303611e22575f9050611e83565b5f8284611e2f919061257c565b9050828482611e3e91906123d3565b14611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7590612f8b565b60405180910390fd5b809150505b92915050565b5f611eca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f90565b905092915050565b5f818311611ee05782611ee2565b815b905092915050565b5f808284611ef89190612bf6565b905083811015611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490612ff3565b60405180910390fd5b8091505092915050565b5f611f8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611add565b905092915050565b5f8083118290611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd9190612061565b60405180910390fd5b505f8385611fe491906123d3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203382611ff1565b61203d8185611ffb565b935061204d81856020860161200b565b61205681612019565b840191505092915050565b5f6020820190508181035f8301526120798184612029565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ae82612085565b9050919050565b6120be816120a4565b81146120c8575f80fd5b50565b5f813590506120d9816120b5565b92915050565b5f819050919050565b6120f1816120df565b81146120fb575f80fd5b50565b5f8135905061210c816120e8565b92915050565b5f806040838503121561212857612127612081565b5b5f612135858286016120cb565b9250506020612146858286016120fe565b9150509250929050565b5f8115159050919050565b61216481612150565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b61218c816120df565b82525050565b5f6020820190506121a55f830184612183565b92915050565b5f805f606084860312156121c2576121c1612081565b5b5f6121cf868287016120cb565b93505060206121e0868287016120cb565b92505060406121f1868287016120fe565b9150509250925092565b5f60ff82169050919050565b612210816121fb565b82525050565b5f6020820190506122295f830184612207565b92915050565b5f6020828403121561224457612243612081565b5b5f612251848285016120cb565b91505092915050565b612263816120a4565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b5f6020828403121561229757612296612081565b5b5f6122a4848285016120fe565b91505092915050565b5f80604083850312156122c3576122c2612081565b5b5f6122d0858286016120cb565b92505060206122e1858286016120cb565b9150509250929050565b7f4f6e6c79207468652064657374696e6174696f6e206665652063616e2068616c5f8201527f7665000000000000000000000000000000000000000000000000000000000000602082015250565b5f612345602283611ffb565b9150612350826122eb565b604082019050919050565b5f6020820190508181035f83015261237281612339565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123dd826120df565b91506123e8836120df565b9250826123f8576123f7612379565b5b828204905092915050565b5f8160011c9050919050565b5f808291508390505b600185111561245857808604811115612434576124336123a6565b5b60018516156124435780820291505b808102905061245185612403565b9450612418565b94509492505050565b5f82612470576001905061252b565b8161247d575f905061252b565b8160018114612493576002811461249d576124cc565b600191505061252b565b60ff8411156124af576124ae6123a6565b5b8360020a9150848211156124c6576124c56123a6565b5b5061252b565b5060208310610133831016604e8410600b84101617156125015782820a9050838111156124fc576124fb6123a6565b5b61252b565b61250e848484600161240f565b92509050818404811115612525576125246123a6565b5b81810290505b9392505050565b5f61253c826120df565b9150612547836121fb565b92506125747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612461565b905092915050565b5f612586826120df565b9150612591836120df565b925082820261259f816120df565b915082820484148315176125b6576125b56123a6565b5b5092915050565b5f819050919050565b5f6125e06125db6125d684612085565b6125bd565b612085565b9050919050565b5f6125f1826125c6565b9050919050565b5f612602826125e7565b9050919050565b612612816125f8565b82525050565b5f60408201905061262b5f830185612609565b6126386020830184612183565b9392505050565b61264881612150565b8114612652575f80fd5b50565b5f815190506126638161263f565b92915050565b5f6020828403121561267e5761267d612081565b5b5f61268b84828501612655565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c8602083611ffb565b91506126d382612694565b602082019050919050565b5f6020820190508181035f8301526126f5816126bc565b9050919050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f612730601383611ffb565b915061273b826126fc565b602082019050919050565b5f6020820190508181035f83015261275d81612724565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612798601783611ffb565b91506127a382612764565b602082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b5f819050919050565b5f6127ef6127ea6127e5846127cc565b6125bd565b6120df565b9050919050565b6127ff816127d5565b82525050565b5f60c0820190506128185f83018961225a565b6128256020830188612183565b61283260408301876127f6565b61283f60608301866127f6565b61284c608083018561225a565b61285960a0830184612183565b979650505050505050565b5f81519050612872816120e8565b92915050565b5f805f6060848603121561288f5761288e612081565b5b5f61289c86828701612864565b93505060206128ad86828701612864565b92505060406128be86828701612864565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612922602483611ffb565b915061292d826128c8565b604082019050919050565b5f6020820190508181035f83015261294f81612916565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129b0602283611ffb565b91506129bb82612956565b604082019050919050565b5f6020820190508181035f8301526129dd816129a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a3e602583611ffb565b9150612a49826129e4565b604082019050919050565b5f6020820190508181035f830152612a6b81612a32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612acc602383611ffb565b9150612ad782612a72565b604082019050919050565b5f6020820190508181035f830152612af981612ac0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b5a602983611ffb565b9150612b6582612b00565b604082019050919050565b5f6020820190508181035f830152612b8781612b4e565b9050919050565b7f4578636565647320746865205f6d617850757263686173652e000000000000005f82015250565b5f612bc2601983611ffb565b9150612bcd82612b8e565b602082019050919050565b5f6020820190508181035f830152612bef81612bb6565b9050919050565b5f612c00826120df565b9150612c0b836120df565b9250828201905080821115612c2357612c226123a6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c5d601a83611ffb565b9150612c6882612c29565b602082019050919050565b5f6020820190508181035f830152612c8a81612c51565b9050919050565b5f612c9b826120df565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ccd57612ccc6123a6565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612d0c601783611ffb565b9150612d1782612cd8565b602082019050919050565b5f6020820190508181035f830152612d3981612d00565b9050919050565b5f612d4a826120df565b9150612d55836120df565b9250828203905081811115612d6d57612d6c6123a6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ddb816120b5565b92915050565b5f60208284031215612df657612df5612081565b5b5f612e0384828501612dcd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e3e816120a4565b82525050565b5f612e4f8383612e35565b60208301905092915050565b5f602082019050919050565b5f612e7182612e0c565b612e7b8185612e16565b9350612e8683612e26565b805f5b83811015612eb6578151612e9d8882612e44565b9750612ea883612e5b565b925050600181019050612e89565b5085935050505092915050565b5f60a082019050612ed65f830188612183565b612ee360208301876127f6565b8181036040830152612ef58186612e67565b9050612f04606083018561225a565b612f116080830184612183565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f75602183611ffb565b9150612f8082612f1b565b604082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fdd601b83611ffb565b9150612fe882612fa9565b602082019050919050565b5f6020820190508181035f83015261300a81612fd1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e6e5216148e9d758f545ae92a29ee83509d0c950af02b4d35a24ea529b4c505964736f6c634300081a0033000000000000000000000000896a9e72dcc8a3afc9062625b388e5dd41f04106

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063715018a6116100aa578063b714e0171161006e578063b714e017146103ed578063b7d307bf14610417578063bb9aee3e14610453578063c9567bf914610469578063dd62ed3e1461047f578063f044b410146104bb5761013f565b8063715018a61461031d5780637af1d185146103335780638da5cb5b1461035d57806395d89b4114610387578063a9059cbb146103b15761013f565b806328453a97116100fc57806328453a9714610225578063313ce5671461023b57806352df2e4d146102655780635ee2c32d1461028d578063708714c2146102b757806370a08231146102e15761013f565b806306fdde0314610143578063095ea7b31461016d57806317271b4a146101a957806318160ddd146101bf57806323b872dd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d1565b6040516101649190612061565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612112565b61050e565b6040516101a0919061216a565b60405180910390f35b3480156101b4575f80fd5b506101bd61052b565b005b3480156101ca575f80fd5b506101d3610611565b6040516101e09190612192565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a91906121ab565b610634565b60405161021c919061216a565b60405180910390f35b348015610230575f80fd5b50610239610708565b005b348015610246575f80fd5b5061024f61079f565b60405161025c9190612216565b60405180910390f35b348015610270575f80fd5b5061028b60048036038101906102869190612112565b6107a7565b005b348015610298575f80fd5b506102a16108a7565b6040516102ae9190612192565b60405180910390f35b3480156102c2575f80fd5b506102cb6108ad565b6040516102d89190612192565b60405180910390f35b3480156102ec575f80fd5b506103076004803603810190610302919061222f565b6108b3565b6040516103149190612192565b60405180910390f35b348015610328575f80fd5b506103316108f9565b005b34801561033e575f80fd5b50610347610a47565b6040516103549190612192565b60405180910390f35b348015610368575f80fd5b50610371610a4d565b60405161037e9190612269565b60405180910390f35b348015610392575f80fd5b5061039b610a74565b6040516103a89190612061565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190612112565b610ab1565b6040516103e4919061216a565b60405180910390f35b3480156103f8575f80fd5b50610401610ace565b60405161040e9190612192565b60405180910390f35b348015610422575f80fd5b5061043d60048036038101906104389190612282565b610ad4565b60405161044a919061216a565b60405180910390f35b34801561045e575f80fd5b50610467610bc4565b005b348015610474575f80fd5b5061047d610c8a565b005b34801561048a575f80fd5b506104a560048036038101906104a091906122ad565b610ed4565b6040516104b29190612192565b60405180910390f35b3480156104c6575f80fd5b506104cf610f56565b005b60606040518060400160405280600a81526020017f4f524947454e5420414900000000000000000000000000000000000000000000815250905090565b5f61052161051a611032565b8484611039565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661056b611032565b73ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b89061235b565b60405180910390fd5b5f6105cb306108b3565b90505f81111561060e5761060c60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028361060791906123d3565b610ab1565b505b50565b5f6009600a6106209190612532565b6305f5e10061062f919061257c565b905090565b5f6106408484846111fc565b6106fd8461064c611032565b6106f8856040518060600160405280602881526020016130126028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106af611032565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611add9092919063ffffffff16565b611039565b600190509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610748611032565b73ffffffffffffffffffffffffffffffffffffffff1614610767575f80fd5b5f610771306108b3565b90505f8111156107855761078481611b3f565b5b5f4790505f81111561079b5761079a81611daa565b5b5050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e7611032565b73ffffffffffffffffffffffffffffffffffffffff1614610806575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610862929190612618565b6020604051808303815f875af115801561087e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a29190612669565b505050565b60125481565b60115481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610901611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610984906126de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4f52490000000000000000000000000000000000000000000000000000000000815250905090565b5f610ac4610abd611032565b84846111fc565b6001905092915050565b600f5481565b5f610add611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b60906126de565b60405180910390fd5b81600881905550816009819055506005821115610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290612746565b60405180910390fd5b60019050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c04611032565b73ffffffffffffffffffffffffffffffffffffffff1614610c23575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c87573d5f803e3d5ffd5b50565b610c92611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d15906126de565b60405180910390fd5b60148054906101000a900460ff1615610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d63906127ae565b60405180910390fd5b5f606460416009600a610d7f9190612532565b6305f5e100610d8e919061257c565b610d98919061257c565b610da291906123d3565b9050610dec3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dd89190612532565b6305f5e100610de7919061257c565b611039565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610e36610a4d565b426040518863ffffffff1660e01b8152600401610e5896959493929190612805565b60606040518083038185885af1158015610e74573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e999190612878565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f5e611032565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe1906126de565b60405180910390fd5b6009600a610ff89190612532565b6305f5e100611007919061257c565b600f819055506009600a61101b9190612532565b6305f5e10061102a919061257c565b601081905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109e90612938565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c906129c6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111ef9190612192565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612a54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612ae2565b60405180910390fd5b5f811161131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190612b70565b60405180910390fd5b5f611323610a4d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113915750611361610a4d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182d575f600e54036113de576113db60646113cd600a54600e54116113ba576006546113be565b6008545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b5f600e541115611413576114106064611402600d5485611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114bc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561150f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160757600f54821115611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612bd8565b60405180910390fd5b60105482611566856108b3565b6115709190612bf6565b11156115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612c73565b60405180910390fd5b6115ed60646115df600a54600e54116115cc576006546115d0565b6008545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b9050600e5f81548092919061160190612c91565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116d3576116d060646116c2600b54600e54116116af576007546116b3565b6009545b85611e1290919063ffffffff16565b611e8990919063ffffffff16565b90505b5f6116dd306108b3565b9050601460159054906101000a900460ff16158015611748575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117605750601460169054906101000a900460ff165b801561176d575060115481115b801561177c5750600c54600e54115b1561182b57601654431115611793575f6015819055505b6004601554106117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90612d22565b60405180910390fd5b6117f56117f0846117eb84601254611ed2565b611ed2565b611b3f565b5f4790505f81111561180b5761180a47611daa565b5b60155f81548092919061181d90612c91565b919050555043601681905550505b505b5f81111561192c576118858160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eea90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119239190612192565b60405180910390a35b61197c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a1f6119d38284611f4790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eea90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ac28486611f4790919063ffffffff16565b604051611acf9190612192565b60405180910390a350505050565b5f838311158290611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b9190612061565b60405180910390fd5b505f8385611b329190612d40565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b7657611b75612d73565b5b604051908082528060200260200182016040528015611ba45781602001602082028036833780820191505090505b50905030815f81518110611bbb57611bba612da0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c839190612de1565b81600181518110611c9757611c96612da0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cfd3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611039565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d5f959493929190612ec3565b5f604051808303815f87803b158015611d76575f80fd5b505af1158015611d88573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e0e573d5f803e3d5ffd5b5050565b5f808303611e22575f9050611e83565b5f8284611e2f919061257c565b9050828482611e3e91906123d3565b14611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7590612f8b565b60405180910390fd5b809150505b92915050565b5f611eca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f90565b905092915050565b5f818311611ee05782611ee2565b815b905092915050565b5f808284611ef89190612bf6565b905083811015611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490612ff3565b60405180910390fd5b8091505092915050565b5f611f8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611add565b905092915050565b5f8083118290611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd9190612061565b60405180910390fd5b505f8385611fe491906123d3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203382611ff1565b61203d8185611ffb565b935061204d81856020860161200b565b61205681612019565b840191505092915050565b5f6020820190508181035f8301526120798184612029565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ae82612085565b9050919050565b6120be816120a4565b81146120c8575f80fd5b50565b5f813590506120d9816120b5565b92915050565b5f819050919050565b6120f1816120df565b81146120fb575f80fd5b50565b5f8135905061210c816120e8565b92915050565b5f806040838503121561212857612127612081565b5b5f612135858286016120cb565b9250506020612146858286016120fe565b9150509250929050565b5f8115159050919050565b61216481612150565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b61218c816120df565b82525050565b5f6020820190506121a55f830184612183565b92915050565b5f805f606084860312156121c2576121c1612081565b5b5f6121cf868287016120cb565b93505060206121e0868287016120cb565b92505060406121f1868287016120fe565b9150509250925092565b5f60ff82169050919050565b612210816121fb565b82525050565b5f6020820190506122295f830184612207565b92915050565b5f6020828403121561224457612243612081565b5b5f612251848285016120cb565b91505092915050565b612263816120a4565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b5f6020828403121561229757612296612081565b5b5f6122a4848285016120fe565b91505092915050565b5f80604083850312156122c3576122c2612081565b5b5f6122d0858286016120cb565b92505060206122e1858286016120cb565b9150509250929050565b7f4f6e6c79207468652064657374696e6174696f6e206665652063616e2068616c5f8201527f7665000000000000000000000000000000000000000000000000000000000000602082015250565b5f612345602283611ffb565b9150612350826122eb565b604082019050919050565b5f6020820190508181035f83015261237281612339565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123dd826120df565b91506123e8836120df565b9250826123f8576123f7612379565b5b828204905092915050565b5f8160011c9050919050565b5f808291508390505b600185111561245857808604811115612434576124336123a6565b5b60018516156124435780820291505b808102905061245185612403565b9450612418565b94509492505050565b5f82612470576001905061252b565b8161247d575f905061252b565b8160018114612493576002811461249d576124cc565b600191505061252b565b60ff8411156124af576124ae6123a6565b5b8360020a9150848211156124c6576124c56123a6565b5b5061252b565b5060208310610133831016604e8410600b84101617156125015782820a9050838111156124fc576124fb6123a6565b5b61252b565b61250e848484600161240f565b92509050818404811115612525576125246123a6565b5b81810290505b9392505050565b5f61253c826120df565b9150612547836121fb565b92506125747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612461565b905092915050565b5f612586826120df565b9150612591836120df565b925082820261259f816120df565b915082820484148315176125b6576125b56123a6565b5b5092915050565b5f819050919050565b5f6125e06125db6125d684612085565b6125bd565b612085565b9050919050565b5f6125f1826125c6565b9050919050565b5f612602826125e7565b9050919050565b612612816125f8565b82525050565b5f60408201905061262b5f830185612609565b6126386020830184612183565b9392505050565b61264881612150565b8114612652575f80fd5b50565b5f815190506126638161263f565b92915050565b5f6020828403121561267e5761267d612081565b5b5f61268b84828501612655565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c8602083611ffb565b91506126d382612694565b602082019050919050565b5f6020820190508181035f8301526126f5816126bc565b9050919050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f612730601383611ffb565b915061273b826126fc565b602082019050919050565b5f6020820190508181035f83015261275d81612724565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612798601783611ffb565b91506127a382612764565b602082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b5f819050919050565b5f6127ef6127ea6127e5846127cc565b6125bd565b6120df565b9050919050565b6127ff816127d5565b82525050565b5f60c0820190506128185f83018961225a565b6128256020830188612183565b61283260408301876127f6565b61283f60608301866127f6565b61284c608083018561225a565b61285960a0830184612183565b979650505050505050565b5f81519050612872816120e8565b92915050565b5f805f6060848603121561288f5761288e612081565b5b5f61289c86828701612864565b93505060206128ad86828701612864565b92505060406128be86828701612864565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612922602483611ffb565b915061292d826128c8565b604082019050919050565b5f6020820190508181035f83015261294f81612916565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129b0602283611ffb565b91506129bb82612956565b604082019050919050565b5f6020820190508181035f8301526129dd816129a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a3e602583611ffb565b9150612a49826129e4565b604082019050919050565b5f6020820190508181035f830152612a6b81612a32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612acc602383611ffb565b9150612ad782612a72565b604082019050919050565b5f6020820190508181035f830152612af981612ac0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b5a602983611ffb565b9150612b6582612b00565b604082019050919050565b5f6020820190508181035f830152612b8781612b4e565b9050919050565b7f4578636565647320746865205f6d617850757263686173652e000000000000005f82015250565b5f612bc2601983611ffb565b9150612bcd82612b8e565b602082019050919050565b5f6020820190508181035f830152612bef81612bb6565b9050919050565b5f612c00826120df565b9150612c0b836120df565b9250828201905080821115612c2357612c226123a6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c5d601a83611ffb565b9150612c6882612c29565b602082019050919050565b5f6020820190508181035f830152612c8a81612c51565b9050919050565b5f612c9b826120df565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ccd57612ccc6123a6565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612d0c601783611ffb565b9150612d1782612cd8565b602082019050919050565b5f6020820190508181035f830152612d3981612d00565b9050919050565b5f612d4a826120df565b9150612d55836120df565b9250828203905081811115612d6d57612d6c6123a6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ddb816120b5565b92915050565b5f60208284031215612df657612df5612081565b5b5f612e0384828501612dcd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e3e816120a4565b82525050565b5f612e4f8383612e35565b60208301905092915050565b5f602082019050919050565b5f612e7182612e0c565b612e7b8185612e16565b9350612e8683612e26565b805f5b83811015612eb6578151612e9d8882612e44565b9750612ea883612e5b565b925050600181019050612e89565b5085935050505092915050565b5f60a082019050612ed65f830188612183565b612ee360208301876127f6565b8181036040830152612ef58186612e67565b9050612f04606083018561225a565b612f116080830184612183565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f75602183611ffb565b9150612f8082612f1b565b604082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fdd601b83611ffb565b9150612fe882612fa9565b602082019050919050565b5f6020820190508181035f83015261300a81612fd1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e6e5216148e9d758f545ae92a29ee83509d0c950af02b4d35a24ea529b4c505964736f6c634300081a0033

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

000000000000000000000000896a9e72dcc8a3afc9062625b388e5dd41f04106

-----Decoded View---------------
Arg [0] : destinationFeeAddress (address): 0x896a9e72DCC8a3AFc9062625B388e5dD41F04106

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000896a9e72dcc8a3afc9062625b388e5dd41f04106


Deployed Bytecode Sourcemap

3493:9549:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6255:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7095:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12753:283;;;;;;;;;;;;;:::i;:::-;;6535:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7265:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12383:362;;;;;;;;;;;;;:::i;:::-;;6443:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11395:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4689:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4626:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6639:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:148;;;;;;;;;;;;;:::i;:::-;;4557:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2354:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6347:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6767:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4494:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12110:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11222:164;;;;;;;;;;;;;:::i;:::-;;11600:501;;;;;;;;;;;;;:::i;:::-;;6943:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10980:127;;;;;;;;;;;;;:::i;:::-;;6255:83;6292:13;6325:5;;;;;;;;;;;;;;;;;6318:12;;6255:83;:::o;7095:161::-;7170:4;7187:39;7196:12;:10;:12::i;:::-;7210:7;7219:6;7187:8;:39::i;:::-;7244:4;7237:11;;7095:161;;;;:::o;12753:283::-;12821:15;;;;;;;;;;;12807:29;;:12;:10;:12::i;:::-;:29;;;12799:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12885:20;12906:24;12924:4;12906:9;:24::i;:::-;12885:45;;12957:1;12944:12;:14;12941:88;;;12974:43;12983:15;;;;;;;;;;;13015:1;13000:12;:16;;;;:::i;:::-;12974:8;:43::i;:::-;;12941:88;12788:248;12753:283::o;6535:95::-;6588:7;4310:1;4367:2;:13;;;;:::i;:::-;4353:11;:27;;;;:::i;:::-;6608:14;;6535:95;:::o;7265:313::-;7363:4;7380:36;7390:6;7398:9;7409:6;7380:9;:36::i;:::-;7427:121;7436:6;7444:12;:10;:12::i;:::-;7458:89;7496:6;7458:89;;;;;;;;;;;;;;;;;:11;:19;7470:6;7458:19;;;;;;;;;;;;;;;:33;7478:12;:10;:12::i;:::-;7458:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7427:8;:121::i;:::-;7566:4;7559:11;;7265:313;;;;;:::o;12383:362::-;12456:15;;;;;;;;;;;12442:29;;:12;:10;:12::i;:::-;:29;;;12434:38;;;;;;12483:20;12504:24;12522:4;12504:9;:24::i;:::-;12483:45;;12555:1;12542:12;:14;12539:73;;;12570:30;12587:12;12570:16;:30::i;:::-;12539:73;12622:18;12641:21;12622:40;;12687:1;12676:10;:12;12673:65;;;12702:24;12715:10;12702:12;:24::i;:::-;12673:65;12423:322;;12383:362::o;6443:83::-;6484:5;4310:1;6502:16;;6443:83;:::o;11395:193::-;11500:15;;;;;;;;;;;11484:31;;:12;:10;:12::i;:::-;:31;;;11476:40;;;;;;11534:10;11527:27;;;11555:15;;;;;;;;;;;11572:7;11527:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11395:193;;:::o;4689:55::-;;;;:::o;4626:56::-;;;;:::o;6639:119::-;6705:7;6732:9;:18;6742:7;6732:18;;;;;;;;;;;;;;;;6725:25;;6639:119;;;:::o;2570:148::-;2492:12;:10;:12::i;:::-;2482:22;;:6;;;;;;;;;;:22;;;2474:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2677:1:::1;2640:40;;2661:6;::::0;::::1;;;;;;;;2640:40;;;;;;;;;;;;2708:1;2691:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2570:148::o:0;4557:62::-;;;;:::o;2354:79::-;2392:7;2419:6;;;;;;;;;;;2412:13;;2354:79;:::o;6347:87::-;6386:13;6419:7;;;;;;;;;;;;;;;;;6412:14;;6347:87;:::o;6767:167::-;6845:4;6862:42;6872:12;:10;:12::i;:::-;6886:9;6897:6;6862:9;:42::i;:::-;6922:4;6915:11;;6767:167;;;;:::o;4494:56::-;;;;:::o;12110:226::-;12177:4;2492:12;:10;:12::i;:::-;2482:22;;:6;;;;;;;;;;:22;;;2474:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12214:6:::1;12194:17;:26;;;;12247:6;12231:13;:22;;;;12282:1;12272:6;:11;;12264:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;12324:4;12317:11;;12110:226:::0;;;:::o;11222:164::-;11295:15;;;;;;;;;;;11279:31;;:12;:10;:12::i;:::-;:31;;;11271:40;;;;;;11330:15;;;;;;;;;;;11322:33;;:56;11356:21;11322:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11222:164::o;11600:501::-;2492:12;:10;:12::i;:::-;2482:22;;:6;;;;;;;;;;:22;;;2474:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11664:11:::1;::::0;::::1;;;;;;;;11663:12;11655:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11715:17;11750:3;11745:2;4310:1;4367:2;:13;;;;:::i;:::-;4353:11;:27;;;;:::i;:::-;11735:12;;;;:::i;:::-;:18;;;;:::i;:::-;11715:38;;11766:58;11783:4;11798:15;;;;;;;;;;;4310:1;4367:2;:13;;;;:::i;:::-;4353:11;:27;;;;:::i;:::-;11766:8;:58::i;:::-;11837:15;;;;;;;;;;;:31;;;11876:21;11921:4;11941:9;11965:1;11981::::0;11997:7:::1;:5;:7::i;:::-;12019:15;11837:198;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12060:4;12046:11;;:18;;;;;;;;;;;;;;;;;;12089:4;12075:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11644:457;11600:501::o:0;6943:143::-;7024:7;7051:11;:18;7063:5;7051:18;;;;;;;;;;;;;;;:27;7070:7;7051:27;;;;;;;;;;;;;;;;7044:34;;6943:143;;;;:::o;10980:127::-;2492:12;:10;:12::i;:::-;2482:22;;:6;;;;;;;;;;:22;;;2474:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4310:1:::1;4367:2;:13;;;;:::i;:::-;4353:11;:27;;;;:::i;:::-;11037:12;:22;;;;4310:1;4367:2;:13;;;;:::i;:::-;4353:11;:27;;;;:::i;:::-;11070:18;:26;;;;10980:127::o:0;97:98::-;150:7;177:10;170:17;;97:98;:::o;7587:335::-;7697:1;7680:19;;:5;:19;;;7672:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7778:1;7759:21;;:7;:21;;;7751:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7860:6;7830:11;:18;7842:5;7830:18;;;;;;;;;;;;;;;:27;7849:7;7830:27;;;;;;;;;;;;;;;:36;;;;7898:7;7882:32;;7891:5;7882:32;;;7907:6;7882:32;;;;;;:::i;:::-;;;;;;;;7587:335;;;:::o;7931:2442::-;8035:1;8019:18;;:4;:18;;;8011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8112:1;8098:16;;:2;:16;;;8090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8182:1;8173:6;:10;8165:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8240:17;8282:7;:5;:7::i;:::-;8274:15;;:4;:15;;;;:32;;;;;8299:7;:5;:7::i;:::-;8293:13;;:2;:13;;;;8274:32;8270:1746;;;8342:1;8329:11;;:14;8326:152;;8375:87;8458:3;8375:78;8399:19;;8387:11;;:31;8386:66;;8438:14;;8386:66;;;8420:17;;8386:66;8375:6;:10;;:78;;;;:::i;:::-;:82;;:87;;;;:::i;:::-;8363:99;;8326:152;8507:1;8495:11;;:13;8492:96;;;8540:32;8568:3;8540:23;8551:11;;8540:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;8528:44;;8492:96;8617:13;;;;;;;;;;;8609:21;;:4;:21;;;:55;;;;;8648:15;;;;;;;;;;;8634:30;;:2;:30;;;;8609:55;:77;;;;;8670:12;:16;8683:2;8670:16;;;;;;;;;;;;;;;;;;;;;;;;;8668:18;8609:77;8605:431;;;8726:12;;8716:6;:22;;8708:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8821:18;;8811:6;8795:13;8805:2;8795:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;8787:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;8901:87;8984:3;8901:78;8925:19;;8913:11;;:31;8912:66;;8964:14;;8912:66;;;8946:17;;8912:66;8901:6;:10;;:78;;;;:::i;:::-;:82;;:87;;;;:::i;:::-;8889:99;;9007:11;;:13;;;;;;;;;:::i;:::-;;;;;;8605:431;9062:13;;;;;;;;;;;9056:19;;:2;:19;;;:43;;;;;9094:4;9079:20;;:4;:20;;;;9056:43;9053:180;;;9132:85;9213:3;9132:76;9156:20;;9144:11;;:32;9143:64;;9192:15;;9143:64;;;9178:13;;9143:64;9132:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;9120:97;;9053:180;9250:28;9281:24;9299:4;9281:9;:24::i;:::-;9250:55;;9325:6;;;;;;;;;;;9324:7;:30;;;;;9341:13;;;;;;;;;;;9335:19;;:2;:19;;;9324:30;:45;;;;;9358:11;;;;;;;;;;;9324:45;:87;;;;;9396:15;;9373:20;:38;9324:87;:123;;;;;9429:18;;9415:11;;:32;9324:123;9320:685;;;9487:14;;9472:12;:29;9468:91;;;9538:1;9526:9;:13;;;;9468:91;9597:1;9585:9;;:13;9577:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9645:73;9662:55;9666:6;9674:42;9678:20;9700:15;;9674:3;:42::i;:::-;9662:3;:55::i;:::-;9645:16;:73::i;:::-;9737:26;9766:21;9737:50;;9831:1;9810:18;:22;9806:106;;;9857:35;9870:21;9857:12;:35::i;:::-;9806:106;9930:9;;:11;;;;;;;;;:::i;:::-;;;;;;9977:12;9960:14;:29;;;;9449:556;9320:685;8308:1708;8270:1746;10042:1;10032:9;:11;10029:161;;;10082:39;10111:9;10082;:24;10100:4;10082:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10057:9;:24;10075:4;10057:24;;;;;;;;;;;;;;;:64;;;;10162:4;10139:39;;10148:4;10139:39;;;10168:9;10139:39;;;;;;:::i;:::-;;;;;;;;10029:161;10216:27;10236:6;10216:9;:15;10226:4;10216:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10200:9;:15;10210:4;10200:15;;;;;;;;;;;;;;;:43;;;;10268:40;10286:21;10297:9;10286:6;:10;;:21;;;;:::i;:::-;10268:9;:13;10278:2;10268:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10254:9;:13;10264:2;10254:13;;;;;;;;;;;;;;;:54;;;;10339:2;10324:41;;10333:4;10324:41;;;10343:21;10354:9;10343:6;:10;;:21;;;;:::i;:::-;10324:41;;;;;;:::i;:::-;;;;;;;;8000:2373;7931:2442;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;10488:483::-;5075:4;5066:6;;:13;;;;;;;;;;;;;;;;;;10566:21:::1;10604:1;10590:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10566:40;;10635:4;10617;10622:1;10617:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10661:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10651:4;10656:1;10651:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10694:62;10711:4;10726:15;;;;;;;;;;;10744:11;10694:8;:62::i;:::-;10767:15;;;;;;;;;;;:66;;;10848:11;10874:1;10890:4;10917;10937:15;10767:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10555:416;5111:5:::0;5102:6;;:14;;;;;;;;;;;;;;;;;;10488:483;:::o;11116:97::-;11173:15;;;;;;;;;;;:24;;:32;11198:6;11173:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11116:97;:::o;1438:246::-;1496:7;1525:1;1520;:6;1516:47;;1550:1;1543:8;;;;1516:47;1573:9;1589:1;1585;:5;;;;:::i;:::-;1573:17;;1618:1;1613;1609;:5;;;;:::i;:::-;:10;1601:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1675:1;1668:8;;;1438:246;;;;;:::o;1693:132::-;1751:7;1778:39;1782:1;1785;1778:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1771:46;;1693:132;;;;:::o;10382:98::-;10439:7;10466:1;10464;:3;10463:9;;10471:1;10463:9;;;10469:1;10463:9;10456:16;;10382:98;;;;:::o;906:179::-;964:7;984:9;1000:1;996;:5;;;;:::i;:::-;984:17;;1025:1;1020;:6;;1012:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1076:1;1069:8;;;906:179;;;;:::o;1094:136::-;1152:7;1179:43;1183:1;1186;1179:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1172:50;;1094:136;;;;:::o;1834:189::-;1920:7;1952:1;1948;:5;1955:12;1940:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1979:9;1995:1;1991;:5;;;;:::i;:::-;1979:17;;2014:1;2007:8;;;1834:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:221::-;6388:34;6384:1;6376:6;6372:14;6365:58;6457:4;6452:2;6444:6;6440:15;6433:29;6248:221;:::o;6475:366::-;6617:3;6638:67;6702:2;6697:3;6638:67;:::i;:::-;6631:74;;6714:93;6803:3;6714:93;:::i;:::-;6832:2;6827:3;6823:12;6816:19;;6475:366;;;:::o;6847:419::-;7013:4;7051:2;7040:9;7036:18;7028:26;;7100:9;7094:4;7090:20;7086:1;7075:9;7071:17;7064:47;7128:131;7254:4;7128:131;:::i;:::-;7120:139;;6847:419;;;:::o;7272:180::-;7320:77;7317:1;7310:88;7417:4;7414:1;7407:15;7441:4;7438:1;7431:15;7458:180;7506:77;7503:1;7496:88;7603:4;7600:1;7593:15;7627:4;7624:1;7617:15;7644:185;7684:1;7701:20;7719:1;7701:20;:::i;:::-;7696:25;;7735:20;7753:1;7735:20;:::i;:::-;7730:25;;7774:1;7764:35;;7779:18;;:::i;:::-;7764:35;7821:1;7818;7814:9;7809:14;;7644:185;;;;:::o;7835:102::-;7877:8;7924:5;7921:1;7917:13;7896:34;;7835:102;;;:::o;7943:848::-;8004:5;8011:4;8035:6;8026:15;;8059:5;8050:14;;8073:712;8094:1;8084:8;8081:15;8073:712;;;8189:4;8184:3;8180:14;8174:4;8171:24;8168:50;;;8198:18;;:::i;:::-;8168:50;8248:1;8238:8;8234:16;8231:451;;;8663:4;8656:5;8652:16;8643:25;;8231:451;8713:4;8707;8703:15;8695:23;;8743:32;8766:8;8743:32;:::i;:::-;8731:44;;8073:712;;;7943:848;;;;;;;:::o;8797:1073::-;8851:5;9042:8;9032:40;;9063:1;9054:10;;9065:5;;9032:40;9091:4;9081:36;;9108:1;9099:10;;9110:5;;9081:36;9177:4;9225:1;9220:27;;;;9261:1;9256:191;;;;9170:277;;9220:27;9238:1;9229:10;;9240:5;;;9256:191;9301:3;9291:8;9288:17;9285:43;;;9308:18;;:::i;:::-;9285:43;9357:8;9354:1;9350:16;9341:25;;9392:3;9385:5;9382:14;9379:40;;;9399:18;;:::i;:::-;9379:40;9432:5;;;9170:277;;9556:2;9546:8;9543:16;9537:3;9531:4;9528:13;9524:36;9506:2;9496:8;9493:16;9488:2;9482:4;9479:12;9475:35;9459:111;9456:246;;;9612:8;9606:4;9602:19;9593:28;;9647:3;9640:5;9637:14;9634:40;;;9654:18;;:::i;:::-;9634:40;9687:5;;9456:246;9727:42;9765:3;9755:8;9749:4;9746:1;9727:42;:::i;:::-;9712:57;;;;9801:4;9796:3;9792:14;9785:5;9782:25;9779:51;;;9810:18;;:::i;:::-;9779:51;9859:4;9852:5;9848:16;9839:25;;8797:1073;;;;;;:::o;9876:281::-;9934:5;9958:23;9976:4;9958:23;:::i;:::-;9950:31;;10002:25;10018:8;10002:25;:::i;:::-;9990:37;;10046:104;10083:66;10073:8;10067:4;10046:104;:::i;:::-;10037:113;;9876:281;;;;:::o;10163:410::-;10203:7;10226:20;10244:1;10226:20;:::i;:::-;10221:25;;10260:20;10278:1;10260:20;:::i;:::-;10255:25;;10315:1;10312;10308:9;10337:30;10355:11;10337:30;:::i;:::-;10326:41;;10516:1;10507:7;10503:15;10500:1;10497:22;10477:1;10470:9;10450:83;10427:139;;10546:18;;:::i;:::-;10427:139;10211:362;10163:410;;;;:::o;10579:60::-;10607:3;10628:5;10621:12;;10579:60;;;:::o;10645:142::-;10695:9;10728:53;10746:34;10755:24;10773:5;10755:24;:::i;:::-;10746:34;:::i;:::-;10728:53;:::i;:::-;10715:66;;10645:142;;;:::o;10793:126::-;10843:9;10876:37;10907:5;10876:37;:::i;:::-;10863:50;;10793:126;;;:::o;10925:134::-;10983:9;11016:37;11047:5;11016:37;:::i;:::-;11003:50;;10925:134;;;:::o;11065:147::-;11160:45;11199:5;11160:45;:::i;:::-;11155:3;11148:58;11065:147;;:::o;11218:348::-;11347:4;11385:2;11374:9;11370:18;11362:26;;11398:79;11474:1;11463:9;11459:17;11450:6;11398:79;:::i;:::-;11487:72;11555:2;11544:9;11540:18;11531:6;11487:72;:::i;:::-;11218:348;;;;;:::o;11572:116::-;11642:21;11657:5;11642:21;:::i;:::-;11635:5;11632:32;11622:60;;11678:1;11675;11668:12;11622:60;11572:116;:::o;11694:137::-;11748:5;11779:6;11773:13;11764:22;;11795:30;11819:5;11795:30;:::i;:::-;11694:137;;;;:::o;11837:345::-;11904:6;11953:2;11941:9;11932:7;11928:23;11924:32;11921:119;;;11959:79;;:::i;:::-;11921:119;12079:1;12104:61;12157:7;12148:6;12137:9;12133:22;12104:61;:::i;:::-;12094:71;;12050:125;11837:345;;;;:::o;12188:182::-;12328:34;12324:1;12316:6;12312:14;12305:58;12188:182;:::o;12376:366::-;12518:3;12539:67;12603:2;12598:3;12539:67;:::i;:::-;12532:74;;12615:93;12704:3;12615:93;:::i;:::-;12733:2;12728:3;12724:12;12717:19;;12376:366;;;:::o;12748:419::-;12914:4;12952:2;12941:9;12937:18;12929:26;;13001:9;12995:4;12991:20;12987:1;12976:9;12972:17;12965:47;13029:131;13155:4;13029:131;:::i;:::-;13021:139;;12748:419;;;:::o;13173:169::-;13313:21;13309:1;13301:6;13297:14;13290:45;13173:169;:::o;13348:366::-;13490:3;13511:67;13575:2;13570:3;13511:67;:::i;:::-;13504:74;;13587:93;13676:3;13587:93;:::i;:::-;13705:2;13700:3;13696:12;13689:19;;13348:366;;;:::o;13720:419::-;13886:4;13924:2;13913:9;13909:18;13901:26;;13973:9;13967:4;13963:20;13959:1;13948:9;13944:17;13937:47;14001:131;14127:4;14001:131;:::i;:::-;13993:139;;13720:419;;;:::o;14145:173::-;14285:25;14281:1;14273:6;14269:14;14262:49;14145:173;:::o;14324:366::-;14466:3;14487:67;14551:2;14546:3;14487:67;:::i;:::-;14480:74;;14563:93;14652:3;14563:93;:::i;:::-;14681:2;14676:3;14672:12;14665:19;;14324:366;;;:::o;14696:419::-;14862:4;14900:2;14889:9;14885:18;14877:26;;14949:9;14943:4;14939:20;14935:1;14924:9;14920:17;14913:47;14977:131;15103:4;14977:131;:::i;:::-;14969:139;;14696:419;;;:::o;15121:85::-;15166:7;15195:5;15184:16;;15121:85;;;:::o;15212:158::-;15270:9;15303:61;15321:42;15330:32;15356:5;15330:32;:::i;:::-;15321:42;:::i;:::-;15303:61;:::i;:::-;15290:74;;15212:158;;;:::o;15376:147::-;15471:45;15510:5;15471:45;:::i;:::-;15466:3;15459:58;15376:147;;:::o;15529:807::-;15778:4;15816:3;15805:9;15801:19;15793:27;;15830:71;15898:1;15887:9;15883:17;15874:6;15830:71;:::i;:::-;15911:72;15979:2;15968:9;15964:18;15955:6;15911:72;:::i;:::-;15993:80;16069:2;16058:9;16054:18;16045:6;15993:80;:::i;:::-;16083;16159:2;16148:9;16144:18;16135:6;16083:80;:::i;:::-;16173:73;16241:3;16230:9;16226:19;16217:6;16173:73;:::i;:::-;16256;16324:3;16313:9;16309:19;16300:6;16256:73;:::i;:::-;15529:807;;;;;;;;;:::o;16342:143::-;16399:5;16430:6;16424:13;16415:22;;16446:33;16473:5;16446:33;:::i;:::-;16342:143;;;;:::o;16491:663::-;16579:6;16587;16595;16644:2;16632:9;16623:7;16619:23;16615:32;16612:119;;;16650:79;;:::i;:::-;16612:119;16770:1;16795:64;16851:7;16842:6;16831:9;16827:22;16795:64;:::i;:::-;16785:74;;16741:128;16908:2;16934:64;16990:7;16981:6;16970:9;16966:22;16934:64;:::i;:::-;16924:74;;16879:129;17047:2;17073:64;17129:7;17120:6;17109:9;17105:22;17073:64;:::i;:::-;17063:74;;17018:129;16491:663;;;;;:::o;17160:223::-;17300:34;17296:1;17288:6;17284:14;17277:58;17369:6;17364:2;17356:6;17352:15;17345:31;17160:223;:::o;17389:366::-;17531:3;17552:67;17616:2;17611:3;17552:67;:::i;:::-;17545:74;;17628:93;17717:3;17628:93;:::i;:::-;17746:2;17741:3;17737:12;17730:19;;17389:366;;;:::o;17761:419::-;17927:4;17965:2;17954:9;17950:18;17942:26;;18014:9;18008:4;18004:20;18000:1;17989:9;17985:17;17978:47;18042:131;18168:4;18042:131;:::i;:::-;18034:139;;17761:419;;;:::o;18186:221::-;18326:34;18322:1;18314:6;18310:14;18303:58;18395:4;18390:2;18382:6;18378:15;18371:29;18186:221;:::o;18413:366::-;18555:3;18576:67;18640:2;18635:3;18576:67;:::i;:::-;18569:74;;18652:93;18741:3;18652:93;:::i;:::-;18770:2;18765:3;18761:12;18754:19;;18413:366;;;:::o;18785:419::-;18951:4;18989:2;18978:9;18974:18;18966:26;;19038:9;19032:4;19028:20;19024:1;19013:9;19009:17;19002:47;19066:131;19192:4;19066:131;:::i;:::-;19058:139;;18785:419;;;:::o;19210:224::-;19350:34;19346:1;19338:6;19334:14;19327:58;19419:7;19414:2;19406:6;19402:15;19395:32;19210:224;:::o;19440:366::-;19582:3;19603:67;19667:2;19662:3;19603:67;:::i;:::-;19596:74;;19679:93;19768:3;19679:93;:::i;:::-;19797:2;19792:3;19788:12;19781:19;;19440:366;;;:::o;19812:419::-;19978:4;20016:2;20005:9;20001:18;19993:26;;20065:9;20059:4;20055:20;20051:1;20040:9;20036:17;20029:47;20093:131;20219:4;20093:131;:::i;:::-;20085:139;;19812:419;;;:::o;20237:222::-;20377:34;20373:1;20365:6;20361:14;20354:58;20446:5;20441:2;20433:6;20429:15;20422:30;20237:222;:::o;20465:366::-;20607:3;20628:67;20692:2;20687:3;20628:67;:::i;:::-;20621:74;;20704:93;20793:3;20704:93;:::i;:::-;20822:2;20817:3;20813:12;20806:19;;20465:366;;;:::o;20837:419::-;21003:4;21041:2;21030:9;21026:18;21018:26;;21090:9;21084:4;21080:20;21076:1;21065:9;21061:17;21054:47;21118:131;21244:4;21118:131;:::i;:::-;21110:139;;20837:419;;;:::o;21262:228::-;21402:34;21398:1;21390:6;21386:14;21379:58;21471:11;21466:2;21458:6;21454:15;21447:36;21262:228;:::o;21496:366::-;21638:3;21659:67;21723:2;21718:3;21659:67;:::i;:::-;21652:74;;21735:93;21824:3;21735:93;:::i;:::-;21853:2;21848:3;21844:12;21837:19;;21496:366;;;:::o;21868:419::-;22034:4;22072:2;22061:9;22057:18;22049:26;;22121:9;22115:4;22111:20;22107:1;22096:9;22092:17;22085:47;22149:131;22275:4;22149:131;:::i;:::-;22141:139;;21868:419;;;:::o;22293:175::-;22433:27;22429:1;22421:6;22417:14;22410:51;22293:175;:::o;22474:366::-;22616:3;22637:67;22701:2;22696:3;22637:67;:::i;:::-;22630:74;;22713:93;22802:3;22713:93;:::i;:::-;22831:2;22826:3;22822:12;22815:19;;22474:366;;;:::o;22846:419::-;23012:4;23050:2;23039:9;23035:18;23027:26;;23099:9;23093:4;23089:20;23085:1;23074:9;23070:17;23063:47;23127:131;23253:4;23127:131;:::i;:::-;23119:139;;22846:419;;;:::o;23271:191::-;23311:3;23330:20;23348:1;23330:20;:::i;:::-;23325:25;;23364:20;23382:1;23364:20;:::i;:::-;23359:25;;23407:1;23404;23400:9;23393:16;;23428:3;23425:1;23422:10;23419:36;;;23435:18;;:::i;:::-;23419:36;23271:191;;;;:::o;23468:176::-;23608:28;23604:1;23596:6;23592:14;23585:52;23468:176;:::o;23650:366::-;23792:3;23813:67;23877:2;23872:3;23813:67;:::i;:::-;23806:74;;23889:93;23978:3;23889:93;:::i;:::-;24007:2;24002:3;23998:12;23991:19;;23650:366;;;:::o;24022:419::-;24188:4;24226:2;24215:9;24211:18;24203:26;;24275:9;24269:4;24265:20;24261:1;24250:9;24246:17;24239:47;24303:131;24429:4;24303:131;:::i;:::-;24295:139;;24022:419;;;:::o;24447:233::-;24486:3;24509:24;24527:5;24509:24;:::i;:::-;24500:33;;24555:66;24548:5;24545:77;24542:103;;24625:18;;:::i;:::-;24542:103;24672:1;24665:5;24661:13;24654:20;;24447:233;;;:::o;24686:173::-;24826:25;24822:1;24814:6;24810:14;24803:49;24686:173;:::o;24865:366::-;25007:3;25028:67;25092:2;25087:3;25028:67;:::i;:::-;25021:74;;25104:93;25193:3;25104:93;:::i;:::-;25222:2;25217:3;25213:12;25206:19;;24865:366;;;:::o;25237:419::-;25403:4;25441:2;25430:9;25426:18;25418:26;;25490:9;25484:4;25480:20;25476:1;25465:9;25461:17;25454:47;25518:131;25644:4;25518:131;:::i;:::-;25510:139;;25237:419;;;:::o;25662:194::-;25702:4;25722:20;25740:1;25722:20;:::i;:::-;25717:25;;25756:20;25774:1;25756:20;:::i;:::-;25751:25;;25800:1;25797;25793:9;25785:17;;25824:1;25818:4;25815:11;25812:37;;;25829:18;;:::i;:::-;25812:37;25662:194;;;;:::o;25862:180::-;25910:77;25907:1;25900:88;26007:4;26004:1;25997:15;26031:4;26028:1;26021:15;26048:180;26096:77;26093:1;26086:88;26193:4;26190:1;26183:15;26217:4;26214:1;26207:15;26234:143;26291:5;26322:6;26316:13;26307:22;;26338:33;26365:5;26338:33;:::i;:::-;26234:143;;;;:::o;26383:351::-;26453:6;26502:2;26490:9;26481:7;26477:23;26473:32;26470:119;;;26508:79;;:::i;:::-;26470:119;26628:1;26653:64;26709:7;26700:6;26689:9;26685:22;26653:64;:::i;:::-;26643:74;;26599:128;26383:351;;;;:::o;26740:114::-;26807:6;26841:5;26835:12;26825:22;;26740:114;;;:::o;26860:184::-;26959:11;26993:6;26988:3;26981:19;27033:4;27028:3;27024:14;27009:29;;26860:184;;;;:::o;27050:132::-;27117:4;27140:3;27132:11;;27170:4;27165:3;27161:14;27153:22;;27050:132;;;:::o;27188:108::-;27265:24;27283:5;27265:24;:::i;:::-;27260:3;27253:37;27188:108;;:::o;27302:179::-;27371:10;27392:46;27434:3;27426:6;27392:46;:::i;:::-;27470:4;27465:3;27461:14;27447:28;;27302:179;;;;:::o;27487:113::-;27557:4;27589;27584:3;27580:14;27572:22;;27487:113;;;:::o;27636:732::-;27755:3;27784:54;27832:5;27784:54;:::i;:::-;27854:86;27933:6;27928:3;27854:86;:::i;:::-;27847:93;;27964:56;28014:5;27964:56;:::i;:::-;28043:7;28074:1;28059:284;28084:6;28081:1;28078:13;28059:284;;;28160:6;28154:13;28187:63;28246:3;28231:13;28187:63;:::i;:::-;28180:70;;28273:60;28326:6;28273:60;:::i;:::-;28263:70;;28119:224;28106:1;28103;28099:9;28094:14;;28059:284;;;28063:14;28359:3;28352:10;;27760:608;;;27636:732;;;;:::o;28374:831::-;28637:4;28675:3;28664:9;28660:19;28652:27;;28689:71;28757:1;28746:9;28742:17;28733:6;28689:71;:::i;:::-;28770:80;28846:2;28835:9;28831:18;28822:6;28770:80;:::i;:::-;28897:9;28891:4;28887:20;28882:2;28871:9;28867:18;28860:48;28925:108;29028:4;29019:6;28925:108;:::i;:::-;28917:116;;29043:72;29111:2;29100:9;29096:18;29087:6;29043:72;:::i;:::-;29125:73;29193:3;29182:9;29178:19;29169:6;29125:73;:::i;:::-;28374:831;;;;;;;;:::o;29211:220::-;29351:34;29347:1;29339:6;29335:14;29328:58;29420:3;29415:2;29407:6;29403:15;29396:28;29211:220;:::o;29437:366::-;29579:3;29600:67;29664:2;29659:3;29600:67;:::i;:::-;29593:74;;29676:93;29765:3;29676:93;:::i;:::-;29794:2;29789:3;29785:12;29778:19;;29437:366;;;:::o;29809:419::-;29975:4;30013:2;30002:9;29998:18;29990:26;;30062:9;30056:4;30052:20;30048:1;30037:9;30033:17;30026:47;30090:131;30216:4;30090:131;:::i;:::-;30082:139;;29809:419;;;:::o;30234:177::-;30374:29;30370:1;30362:6;30358:14;30351:53;30234:177;:::o;30417:366::-;30559:3;30580:67;30644:2;30639:3;30580:67;:::i;:::-;30573:74;;30656:93;30745:3;30656:93;:::i;:::-;30774:2;30769:3;30765:12;30758:19;;30417:366;;;:::o;30789:419::-;30955:4;30993:2;30982:9;30978:18;30970:26;;31042:9;31036:4;31032:20;31028:1;31017:9;31013:17;31006:47;31070:131;31196:4;31070:131;:::i;:::-;31062:139;;30789:419;;;:::o

Swarm Source

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