ETH Price: $2,424.49 (+0.29%)

Token

Raven Caw (RAVENCAW)
 

Overview

Max Total Supply

20,000,000 RAVENCAW

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
108.11735588 RAVENCAW

Value
$0.00
0xbb3bd1236ce0f48764780b3a4fde6695057aa568
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Ravencaw

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-23
*/

// SPDX-License-Identifier: MIT
/**
RAVENCAW - Raven Caw
TG Community https://t.me/ravencaw (unmuted after launch)

Max Tx 100,000 (1%)
Total 10,000,000
Tax 6%
Slippage 40%
**/
pragma solidity ^0.8.13;

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;
    address private _previousOwner;
    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 Ravencaw is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Raven Caw";
    string private constant _symbol = "RAVENCAW";
    uint8 private constant _decimals = 8;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 20000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    uint256 public _maxTxAmount = 200000*10**_decimals;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeWallet = payable(_msgSender());
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeWallet] = true;

        emit MaxTxAmountUpdated(_maxTxAmount);
        emit Transfer(address(0), address(this), _tTotal);
    }

    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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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");
        require(!bots[from]);
        _feeAddr1 = 3;
        _feeAddr2 = 3;
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                // buy
                require(amount <= _maxTxAmount);
                require(tradingOpen);
            }

            if ( from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
              if(to == uniswapV2Pair){
                _feeAddr1 = 3;
                _feeAddr2 = 3;
              }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 100000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from,to,amount);
    }

    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 sendETHToFee(uint256 amount) private {
        _feeWallet.transfer(amount);
    }

    function increaseMaxTxPercentage(uint256 percentage) external onlyOwner{
      require(percentage>1);
      _maxTxAmount = _tTotal.mul(percentage).div(100);
      emit MaxTxAmountUpdated(_maxTxAmount);
    }

    function addToSwap() external onlyOwner {
      IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
      uniswapV2Router = _uniswapV2Router;
      _approve(address(this), address(uniswapV2Router), _tTotal);
      uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
    }

    function addLiquidity() external onlyOwner{
      uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
      swapEnabled = true;
      IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

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

    function setBots(address[] memory bots_,bool isBot) public onlyOwner {
      for (uint256 i = 0; i < bots_.length; i++) {
        if(bots_[i]!=address(uniswapV2Router) && bots_[i]!=address(uniswapV2Pair) &&bots_[i]!=address(this)){
          bots[bots_[i]] = isBot;
        }
      }
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"increaseMaxTxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"setBots","outputs":[],"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"}]

6080604052620000126008600a620002d3565b62000022906301312d00620002eb565b62000030906000196200030d565b6200003e9060001962000330565b600755600d805461ffff60a81b191690556200005d6008600a620002d3565b6200006c9062030d40620002eb565b600e553480156200007c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b031916331781556007543060008181526002602090815260408083209490945581546001600160a01b03908116835260058252848320805460ff199081166001908117909255948452858420805486168217905595541682529083902080549092169093179055600e54815190815290517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf929181900390910190a13060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001976008600a620002d3565b620001a7906301312d00620002eb565b60405190815260200160405180910390a36200034a565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000215578160001904821115620001f957620001f9620001be565b808516156200020757918102915b93841c9390800290620001d9565b509250929050565b6000826200022e57506001620002cd565b816200023d57506000620002cd565b8160018114620002565760028114620002615762000281565b6001915050620002cd565b60ff841115620002755762000275620001be565b50506001821b620002cd565b5060208310610133831016604e8410600b8410161715620002a6575081810a620002cd565b620002b28383620001d4565b8060001904821115620002c957620002c9620001be565b0290505b92915050565b6000620002e460ff8416836200021d565b9392505050565b6000816000190483118215151615620003085762000308620001be565b500290565b6000826200032b57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003455762000345620001be565b500390565b611b2c806200035a6000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102fc578063c3c8cd801461031c578063dd62ed3e14610331578063dfa0e37f14610377578063e8078d941461039757600080fd5b80637d1db4a5146102585780638a8c523c1461026e5780638da5cb5b1461028357806395d89b41146102ab5780639c0db5f3146102dc57600080fd5b8063313ce567116100e7578063313ce567146101db57806339c96774146101f75780636fc3eaec1461020e57806370a0823114610223578063715018a61461024357600080fd5b806306fdde0314610124578063095ea7b31461016857806318160ddd1461019857806323b872dd146101bb57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b50604080518082019091526009815268526176656e2043617760b81b60208201525b60405161015f91906115bc565b60405180910390f35b34801561017457600080fd5b50610188610183366004611636565b6103ac565b604051901515815260200161015f565b3480156101a457600080fd5b506101ad6103c3565b60405190815260200161015f565b3480156101c757600080fd5b506101886101d6366004611662565b6103e4565b3480156101e757600080fd5b506040516008815260200161015f565b34801561020357600080fd5b5061020c61044d565b005b34801561021a57600080fd5b5061020c61062f565b34801561022f57600080fd5b506101ad61023e3660046116a3565b61063a565b34801561024f57600080fd5b5061020c61065c565b34801561026457600080fd5b506101ad600e5481565b34801561027a57600080fd5b5061020c6106d0565b34801561028f57600080fd5b506000546040516001600160a01b03909116815260200161015f565b3480156102b757600080fd5b50604080518082019091526008815267524156454e43415760c01b6020820152610152565b3480156102e857600080fd5b5061020c6102f73660046116ef565b61070f565b34801561030857600080fd5b50610188610317366004611636565b610863565b34801561032857600080fd5b5061020c610870565b34801561033d57600080fd5b506101ad61034c3660046117c6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561038357600080fd5b5061020c6103923660046117ff565b610881565b3480156103a357600080fd5b5061020c610922565b60006103b9338484610a9c565b5060015b92915050565b60006103d16008600a611912565b6103df906301312d00611921565b905090565b60006103f1848484610bc0565b610443843361043e85604051806060016040528060288152602001611acf602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ea2565b610a9c565b5060019392505050565b6000546001600160a01b031633146104805760405162461bcd60e51b815260040161047790611940565b60405180910390fd5b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556104c830826104ba6008600a611912565b61043e906301312d00611921565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a9190611975565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190611975565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611975565b600d80546001600160a01b0319166001600160a01b039290921691909117905550565b61063847610edc565b565b6001600160a01b0381166000908152600260205260408120546103bd90610f1a565b6000546001600160a01b031633146106865760405162461bcd60e51b815260040161047790611940565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106fa5760405162461bcd60e51b815260040161047790611940565b600d805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107395760405162461bcd60e51b815260040161047790611940565b60005b825181101561085e57600c5483516001600160a01b039091169084908390811061076857610768611992565b60200260200101516001600160a01b0316141580156107b95750600d5483516001600160a01b03909116908490839081106107a5576107a5611992565b60200260200101516001600160a01b031614155b80156107f05750306001600160a01b03168382815181106107dc576107dc611992565b60200260200101516001600160a01b031614155b1561084c57816006600085848151811061080c5761080c611992565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610856816119a8565b91505061073c565b505050565b60006103b9338484610bc0565b61063861087c3061063a565b610f9e565b6000546001600160a01b031633146108ab5760405162461bcd60e51b815260040161047790611940565b600181116108b857600080fd5b6108e760646108e1836108cd6008600a611912565b6108db906301312d00611921565b90611118565b9061119a565b600e8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161047790611940565b600c546001600160a01b031663f305d71947306109688161063a565b60008061097d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a0a91906119c1565b5050600d8054600160b01b60ff60b01b19821617909155600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9991906119ef565b50565b6001600160a01b038316610afe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b038216610b5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b038216610c865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b60008111610ce85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6001600160a01b03831660009081526006602052604090205460ff1615610d0e57600080fd5b60036009819055600a556000546001600160a01b03848116911614801590610d4457506000546001600160a01b03838116911614155b15610e9757600d546001600160a01b038481169116148015610d745750600c546001600160a01b03838116911614155b8015610d9957506001600160a01b03821660009081526005602052604090205460ff16155b15610dc357600e54811115610dad57600080fd5b600d54600160a01b900460ff16610dc357600080fd5b600c546001600160a01b03848116911614801590610dfa57506001600160a01b03831660009081526005602052604090205460ff16155b15610e2057600d546001600160a01b0390811690831603610e205760036009819055600a555b6000610e2b3061063a565b600d54909150600160a81b900460ff16158015610e565750600d546001600160a01b03858116911614155b8015610e6b5750600d54600160b01b900460ff165b15610e9557610e7981610f9e565b4767016345785d8a0000811115610e9357610e9347610edc565b505b505b61085e8383836111dc565b60008184841115610ec65760405162461bcd60e51b815260040161047791906115bc565b506000610ed38486611a0c565b95945050505050565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f16573d6000803e3d6000fd5b5050565b6000600754821115610f815760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610477565b6000610f8b6111e7565b9050610f97838261119a565b9392505050565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fe657610fe6611992565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190611975565b8160018151811061107657611076611992565b6001600160a01b039283166020918202929092010152600c5461109c9130911684610a9c565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110d5908590600090869030904290600401611a23565b600060405180830381600087803b1580156110ef57600080fd5b505af1158015611103573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008260000361112a575060006103bd565b60006111368385611921565b9050826111438583611a94565b14610f975760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610477565b6000610f9783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061120a565b61085e838383611238565b60008060006111f461132f565b9092509050611203828261119a565b9250505090565b6000818361122b5760405162461bcd60e51b815260040161047791906115bc565b506000610ed38486611a94565b60008060008060008061124a876113b1565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061127c908761140e565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112ab9086611450565b6001600160a01b0389166000908152600260205260409020556112cd816114af565b6112d784836114f9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161131c91815260200190565b60405180910390a3505050505050505050565b6007546000908190816113446008600a611912565b611352906301312d00611921565b905061137a6113636008600a611912565b611371906301312d00611921565b6007549061119a565b8210156113a8576007546113906008600a611912565b61139e906301312d00611921565b9350935050509091565b90939092509050565b60008060008060008060008060006113ce8a600954600a5461151d565b92509250925060006113de6111e7565b905060008060006113f18e87878761156c565b919e509c509a509598509396509194505050505091939550919395565b6000610f9783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea2565b60008061145d8385611ab6565b905083811015610f975760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b60006114b96111e7565b905060006114c78383611118565b306000908152600260205260409020549091506114e49082611450565b30600090815260026020526040902055505050565b600754611506908361140e565b6007556008546115169082611450565b6008555050565b600080808061153160646108e18989611118565b9050600061154460646108e18a89611118565b9050600061155c826115568b8661140e565b9061140e565b9992985090965090945050505050565b600080808061157b8886611118565b905060006115898887611118565b905060006115978888611118565b905060006115a982611556868661140e565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156115e9578581018301518582016040015282016115cd565b818111156115fb576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a9957600080fd5b803561163181611611565b919050565b6000806040838503121561164957600080fd5b823561165481611611565b946020939093013593505050565b60008060006060848603121561167757600080fd5b833561168281611611565b9250602084013561169281611611565b929592945050506040919091013590565b6000602082840312156116b557600080fd5b8135610f9781611611565b634e487b7160e01b600052604160045260246000fd5b8015158114610a9957600080fd5b8035611631816116d6565b6000806040838503121561170257600080fd5b823567ffffffffffffffff8082111561171a57600080fd5b818501915085601f83011261172e57600080fd5b8135602082821115611742576117426116c0565b8160051b604051601f19603f83011681018181108682111715611767576117676116c0565b60405292835281830193508481018201928984111561178557600080fd5b948201945b838610156117aa5761179b86611626565b8552948201949382019361178a565b96506117b990508782016116e4565b9450505050509250929050565b600080604083850312156117d957600080fd5b82356117e481611611565b915060208301356117f481611611565b809150509250929050565b60006020828403121561181157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561186957816000190482111561184f5761184f611818565b8085161561185c57918102915b93841c9390800290611833565b509250929050565b600082611880575060016103bd565b8161188d575060006103bd565b81600181146118a357600281146118ad576118c9565b60019150506103bd565b60ff8411156118be576118be611818565b50506001821b6103bd565b5060208310610133831016604e8410600b84101617156118ec575081810a6103bd565b6118f6838361182e565b806000190482111561190a5761190a611818565b029392505050565b6000610f9760ff841683611871565b600081600019048311821515161561193b5761193b611818565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561198757600080fd5b8151610f9781611611565b634e487b7160e01b600052603260045260246000fd5b6000600182016119ba576119ba611818565b5060010190565b6000806000606084860312156119d657600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a0157600080fd5b8151610f97816116d6565b600082821015611a1e57611a1e611818565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a735784516001600160a01b031683529383019391830191600101611a4e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ab157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ac957611ac9611818565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eac7b0fe0516268d96a25b9ad18ae26d55bf76ada73927f04ac5d1581108edc864736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102fc578063c3c8cd801461031c578063dd62ed3e14610331578063dfa0e37f14610377578063e8078d941461039757600080fd5b80637d1db4a5146102585780638a8c523c1461026e5780638da5cb5b1461028357806395d89b41146102ab5780639c0db5f3146102dc57600080fd5b8063313ce567116100e7578063313ce567146101db57806339c96774146101f75780636fc3eaec1461020e57806370a0823114610223578063715018a61461024357600080fd5b806306fdde0314610124578063095ea7b31461016857806318160ddd1461019857806323b872dd146101bb57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b50604080518082019091526009815268526176656e2043617760b81b60208201525b60405161015f91906115bc565b60405180910390f35b34801561017457600080fd5b50610188610183366004611636565b6103ac565b604051901515815260200161015f565b3480156101a457600080fd5b506101ad6103c3565b60405190815260200161015f565b3480156101c757600080fd5b506101886101d6366004611662565b6103e4565b3480156101e757600080fd5b506040516008815260200161015f565b34801561020357600080fd5b5061020c61044d565b005b34801561021a57600080fd5b5061020c61062f565b34801561022f57600080fd5b506101ad61023e3660046116a3565b61063a565b34801561024f57600080fd5b5061020c61065c565b34801561026457600080fd5b506101ad600e5481565b34801561027a57600080fd5b5061020c6106d0565b34801561028f57600080fd5b506000546040516001600160a01b03909116815260200161015f565b3480156102b757600080fd5b50604080518082019091526008815267524156454e43415760c01b6020820152610152565b3480156102e857600080fd5b5061020c6102f73660046116ef565b61070f565b34801561030857600080fd5b50610188610317366004611636565b610863565b34801561032857600080fd5b5061020c610870565b34801561033d57600080fd5b506101ad61034c3660046117c6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561038357600080fd5b5061020c6103923660046117ff565b610881565b3480156103a357600080fd5b5061020c610922565b60006103b9338484610a9c565b5060015b92915050565b60006103d16008600a611912565b6103df906301312d00611921565b905090565b60006103f1848484610bc0565b610443843361043e85604051806060016040528060288152602001611acf602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610ea2565b610a9c565b5060019392505050565b6000546001600160a01b031633146104805760405162461bcd60e51b815260040161047790611940565b60405180910390fd5b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556104c830826104ba6008600a611912565b61043e906301312d00611921565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a9190611975565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190611975565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611975565b600d80546001600160a01b0319166001600160a01b039290921691909117905550565b61063847610edc565b565b6001600160a01b0381166000908152600260205260408120546103bd90610f1a565b6000546001600160a01b031633146106865760405162461bcd60e51b815260040161047790611940565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106fa5760405162461bcd60e51b815260040161047790611940565b600d805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107395760405162461bcd60e51b815260040161047790611940565b60005b825181101561085e57600c5483516001600160a01b039091169084908390811061076857610768611992565b60200260200101516001600160a01b0316141580156107b95750600d5483516001600160a01b03909116908490839081106107a5576107a5611992565b60200260200101516001600160a01b031614155b80156107f05750306001600160a01b03168382815181106107dc576107dc611992565b60200260200101516001600160a01b031614155b1561084c57816006600085848151811061080c5761080c611992565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610856816119a8565b91505061073c565b505050565b60006103b9338484610bc0565b61063861087c3061063a565b610f9e565b6000546001600160a01b031633146108ab5760405162461bcd60e51b815260040161047790611940565b600181116108b857600080fd5b6108e760646108e1836108cd6008600a611912565b6108db906301312d00611921565b90611118565b9061119a565b600e8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161047790611940565b600c546001600160a01b031663f305d71947306109688161063a565b60008061097d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a0a91906119c1565b5050600d8054600160b01b60ff60b01b19821617909155600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9991906119ef565b50565b6001600160a01b038316610afe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b038216610b5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b038216610c865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b60008111610ce85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6001600160a01b03831660009081526006602052604090205460ff1615610d0e57600080fd5b60036009819055600a556000546001600160a01b03848116911614801590610d4457506000546001600160a01b03838116911614155b15610e9757600d546001600160a01b038481169116148015610d745750600c546001600160a01b03838116911614155b8015610d9957506001600160a01b03821660009081526005602052604090205460ff16155b15610dc357600e54811115610dad57600080fd5b600d54600160a01b900460ff16610dc357600080fd5b600c546001600160a01b03848116911614801590610dfa57506001600160a01b03831660009081526005602052604090205460ff16155b15610e2057600d546001600160a01b0390811690831603610e205760036009819055600a555b6000610e2b3061063a565b600d54909150600160a81b900460ff16158015610e565750600d546001600160a01b03858116911614155b8015610e6b5750600d54600160b01b900460ff165b15610e9557610e7981610f9e565b4767016345785d8a0000811115610e9357610e9347610edc565b505b505b61085e8383836111dc565b60008184841115610ec65760405162461bcd60e51b815260040161047791906115bc565b506000610ed38486611a0c565b95945050505050565b600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f16573d6000803e3d6000fd5b5050565b6000600754821115610f815760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610477565b6000610f8b6111e7565b9050610f97838261119a565b9392505050565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fe657610fe6611992565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190611975565b8160018151811061107657611076611992565b6001600160a01b039283166020918202929092010152600c5461109c9130911684610a9c565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110d5908590600090869030904290600401611a23565b600060405180830381600087803b1580156110ef57600080fd5b505af1158015611103573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008260000361112a575060006103bd565b60006111368385611921565b9050826111438583611a94565b14610f975760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610477565b6000610f9783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061120a565b61085e838383611238565b60008060006111f461132f565b9092509050611203828261119a565b9250505090565b6000818361122b5760405162461bcd60e51b815260040161047791906115bc565b506000610ed38486611a94565b60008060008060008061124a876113b1565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061127c908761140e565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112ab9086611450565b6001600160a01b0389166000908152600260205260409020556112cd816114af565b6112d784836114f9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161131c91815260200190565b60405180910390a3505050505050505050565b6007546000908190816113446008600a611912565b611352906301312d00611921565b905061137a6113636008600a611912565b611371906301312d00611921565b6007549061119a565b8210156113a8576007546113906008600a611912565b61139e906301312d00611921565b9350935050509091565b90939092509050565b60008060008060008060008060006113ce8a600954600a5461151d565b92509250925060006113de6111e7565b905060008060006113f18e87878761156c565b919e509c509a509598509396509194505050505091939550919395565b6000610f9783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ea2565b60008061145d8385611ab6565b905083811015610f975760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b60006114b96111e7565b905060006114c78383611118565b306000908152600260205260409020549091506114e49082611450565b30600090815260026020526040902055505050565b600754611506908361140e565b6007556008546115169082611450565b6008555050565b600080808061153160646108e18989611118565b9050600061154460646108e18a89611118565b9050600061155c826115568b8661140e565b9061140e565b9992985090965090945050505050565b600080808061157b8886611118565b905060006115898887611118565b905060006115978888611118565b905060006115a982611556868661140e565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156115e9578581018301518582016040015282016115cd565b818111156115fb576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a9957600080fd5b803561163181611611565b919050565b6000806040838503121561164957600080fd5b823561165481611611565b946020939093013593505050565b60008060006060848603121561167757600080fd5b833561168281611611565b9250602084013561169281611611565b929592945050506040919091013590565b6000602082840312156116b557600080fd5b8135610f9781611611565b634e487b7160e01b600052604160045260246000fd5b8015158114610a9957600080fd5b8035611631816116d6565b6000806040838503121561170257600080fd5b823567ffffffffffffffff8082111561171a57600080fd5b818501915085601f83011261172e57600080fd5b8135602082821115611742576117426116c0565b8160051b604051601f19603f83011681018181108682111715611767576117676116c0565b60405292835281830193508481018201928984111561178557600080fd5b948201945b838610156117aa5761179b86611626565b8552948201949382019361178a565b96506117b990508782016116e4565b9450505050509250929050565b600080604083850312156117d957600080fd5b82356117e481611611565b915060208301356117f481611611565b809150509250929050565b60006020828403121561181157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561186957816000190482111561184f5761184f611818565b8085161561185c57918102915b93841c9390800290611833565b509250929050565b600082611880575060016103bd565b8161188d575060006103bd565b81600181146118a357600281146118ad576118c9565b60019150506103bd565b60ff8411156118be576118be611818565b50506001821b6103bd565b5060208310610133831016604e8410600b84101617156118ec575081810a6103bd565b6118f6838361182e565b806000190482111561190a5761190a611818565b029392505050565b6000610f9760ff841683611871565b600081600019048311821515161561193b5761193b611818565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561198757600080fd5b8151610f9781611611565b634e487b7160e01b600052603260045260246000fd5b6000600182016119ba576119ba611818565b5060010190565b6000806000606084860312156119d657600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a0157600080fd5b8151610f97816116d6565b600082821015611a1e57611a1e611818565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a735784516001600160a01b031683529383019391830191600101611a4e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ab157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ac957611ac9611818565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eac7b0fe0516268d96a25b9ad18ae26d55bf76ada73927f04ac5d1581108edc864736f6c634300080d0033

Deployed Bytecode Sourcemap

3663:9749:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:83;;;;;;;;;;-1:-1:-1;5325:5:0;;;;;;;;;;;;-1:-1:-1;;;5325:5:0;;;;5255:83;;;;;;;:::i;:::-;;;;;;;;6107:161;;;;;;;;;;-1:-1:-1;6107:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6107:161:0;1211:187:1;5532:95:0;;;;;;;;;;;;;:::i;:::-;;;1549:25:1;;;1537:2;1522:18;5532:95:0;1403:177:1;6276:313:0;;;;;;;;;;-1:-1:-1;6276:313:0;;;;;:::i;:::-;;:::i;5441:83::-;;;;;;;;;;-1:-1:-1;5441:83:0;;3885:1;2188:36:1;;2176:2;2161:18;5441:83:0;2046:184:1;9385:388:0;;;;;;;;;;;;;:::i;:::-;;11634:85;;;;;;;;;;;;;:::i;5635:138::-;;;;;;;;;;-1:-1:-1;5635:138:0;;;;;:::i;:::-;;:::i;2744:148::-;;;;;;;;;;;;;:::i;4679:50::-;;;;;;;;;;;;;;;;10084:78;;;;;;;;;;;;;:::i;2530:79::-;;;;;;;;;;-1:-1:-1;2568:7:0;2595:6;2530:79;;-1:-1:-1;;;;;2595:6:0;;;2633:51:1;;2621:2;2606:18;2530:79:0;2487:203:1;5346:87:0;;;;;;;;;;-1:-1:-1;5418:7:0;;;;;;;;;;;;-1:-1:-1;;;5418:7:0;;;;5346:87;;10170:295;;;;;;;;;;-1:-1:-1;10170:295:0;;;;;:::i;:::-;;:::i;5781:167::-;;;;;;;;;;-1:-1:-1;5781:167:0;;;;;:::i;:::-;;:::i;11534:92::-;;;;;;;;;;;;;:::i;5956:143::-;;;;;;;;;;-1:-1:-1;5956:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6064:18:0;;;6037:7;6064:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5956:143;9166:211;;;;;;;;;;-1:-1:-1;9166:211:0;;;;;:::i;:::-;;:::i;9781:295::-;;;;;;;;;;;;;:::i;6107:161::-;6182:4;6199:39;328:10;6222:7;6231:6;6199:8;:39::i;:::-;-1:-1:-1;6256:4:0;6107:161;;;;;:::o;5532:95::-;5585:7;4272:13;3885:1;4272:2;:13;:::i;:::-;4261:24;;:8;:24;:::i;:::-;5605:14;;5532:95;:::o;6276:313::-;6374:4;6391:36;6401:6;6409:9;6420:6;6391:9;:36::i;:::-;6438:121;6447:6;328:10;6469:89;6507:6;6469:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6469:19:0;;;;;;:11;:19;;;;;;;;328:10;6469:33;;;;;;;;;;:37;:89::i;:::-;6438:8;:121::i;:::-;-1:-1:-1;6577:4:0;6276:313;;;;;:::o;9385:388::-;2657:6;;-1:-1:-1;;;;;2657:6:0;328:10;2657:22;2649:67;;;;-1:-1:-1;;;2649:67:0;;;;;;;:::i;:::-;;;;;;;;;9543:15:::1;:34:::0;;-1:-1:-1;;;;;;9543:34:0::1;9491:42;9543:34:::0;;::::1;::::0;;;9586:58:::1;9603:4;9491:42:::0;4272:13:::1;3885:1;4272:2;:13;:::i;:::-;4261:24;::::0;:8:::1;:24;:::i;9586:58::-;9687:16;-1:-1:-1::0;;;;;9687:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9669:56:0::1;;9734:4;9741:16;-1:-1:-1::0;;;;;9741:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9669:96;::::0;-1:-1:-1;;;;;;9669:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7392:15:1;;;9669:96:0::1;::::0;::::1;7374:34:1::0;7444:15;;7424:18;;;7417:43;7309:18;;9669:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9653:13;:112:::0;;-1:-1:-1;;;;;;9653:112:0::1;-1:-1:-1::0;;;;;9653:112:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;9385:388:0:o;11634:85::-;11676:35;11689:21;11676:12;:35::i;:::-;11634:85::o;5635:138::-;-1:-1:-1;;;;;5748:16:0;;5701:7;5748:16;;;:7;:16;;;;;;5728:37;;:19;:37::i;2744:148::-;2657:6;;-1:-1:-1;;;;;2657:6:0;328:10;2657:22;2649:67;;;;-1:-1:-1;;;2649:67:0;;;;;;;:::i;:::-;2851:1:::1;2835:6:::0;;2814:40:::1;::::0;-1:-1:-1;;;;;2835:6:0;;::::1;::::0;2814:40:::1;::::0;2851:1;;2814:40:::1;2882:1;2865:19:::0;;-1:-1:-1;;;;;;2865:19:0::1;::::0;;2744:148::o;10084:78::-;2657:6;;-1:-1:-1;;;;;2657:6:0;328:10;2657:22;2649:67;;;;-1:-1:-1;;;2649:67:0;;;;;;;:::i;:::-;10136:11:::1;:18:::0;;-1:-1:-1;;;;10136:18:0::1;-1:-1:-1::0;;;10136:18:0::1;::::0;;10084:78::o;10170:295::-;2657:6;;-1:-1:-1;;;;;2657:6:0;328:10;2657:22;2649:67;;;;-1:-1:-1;;;2649:67:0;;;;;;;:::i;:::-;10253:9:::1;10248:210;10272:5;:12;10268:1;:16;10248:210;;;10323:15;::::0;10305:8;;-1:-1:-1;;;;;10323:15:0;;::::1;::::0;10305:5;;10311:1;;10305:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10305:34:0::1;;;:70;;;;-1:-1:-1::0;10361:13:0::1;::::0;10343:8;;-1:-1:-1;;;;;10361:13:0;;::::1;::::0;10343:5;;10349:1;;10343:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10343:32:0::1;;;10305:70;:96;;;;;10396:4;-1:-1:-1::0;;;;;10378:23:0::1;:5;10384:1;10378:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10378:23:0::1;;;10305:96;10302:147;;;10432:5;10415:4;:14;10420:5;10426:1;10420:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10415:14:0::1;-1:-1:-1::0;;;;;10415:14:0::1;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10302:147;10286:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10248:210;;;;10170:295:::0;;:::o;5781:167::-;5859:4;5876:42;328:10;5900:9;5911:6;5876:9;:42::i;11534:92::-;11576:42;11593:24;11611:4;11593:9;:24::i;:::-;11576:16;:42::i;9166:211::-;2657:6;;-1:-1:-1;;;;;2657:6:0;328:10;2657:22;2649:67;;;;-1:-1:-1;;;2649:67:0;;;;;;;:::i;:::-;9265:1:::1;9254:10;:12;9246:21;;;::::0;::::1;;9291:32;9319:3;9291:23;9303:10:::0;4272:13:::1;3885:1;4272:2;:13;:::i;:::-;4261:24;::::0;:8:::1;:24;:::i;:::-;9291:11:::0;::::1;:23::i;:::-;:27:::0;::::1;:32::i;:::-;9276:12;:47:::0;;;9337:32:::1;::::0;1549:25:1;;;9337:32:0::1;::::0;1537:2:1;1522:18;9337:32:0::1;;;;;;;9166:211:::0;:::o;9781:295::-;2657:6;;-1:-1:-1;;;;;2657:6:0;328:10;2657:22;2649:67;;;;-1:-1:-1;;;2649:67:0;;;;;;;:::i;:::-;9832:15:::1;::::0;-1:-1:-1;;;;;9832:15:0::1;:31;9871:21;9902:4;9908:24;9902:4:::0;9908:9:::1;:24::i;:::-;9933:1;9935::::0;9937:7:::1;2568::::0;2595:6;-1:-1:-1;;;;;2595:6:0;;2530:79;9937:7:::1;9832:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9832:129:0;;;-1:-1:-1;;;;;8102:15:1;;;9832:129:0::1;::::0;::::1;8084:34:1::0;8134:18;;;8127:34;;;;8177:18;;;8170:34;;;;8220:18;;;8213:34;8284:15;;;8263:19;;;8256:44;9945:15:0::1;8316:19:1::0;;;8309:35;8018:19;;9832:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9970:11:0::1;:18:::0;;-1:-1:-1;;;;;;;9970:18:0;::::1;;::::0;;;10035:15:::1;::::0;9997:71:::1;::::0;-1:-1:-1;;;9997:71:0;;-1:-1:-1;;;;;10035:15:0;;::::1;9997:71;::::0;::::1;8840:51:1::0;-1:-1:-1;;8907:18:1;;;8900:34;10004:13:0;;;-1:-1:-1;9997:29:0::1;::::0;8813:18:1;;9997:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9781:295::o:0;6863:335::-;-1:-1:-1;;;;;6956:19:0;;6948:68;;;;-1:-1:-1;;;6948:68:0;;9397:2:1;6948:68:0;;;9379:21:1;9436:2;9416:18;;;9409:30;9475:34;9455:18;;;9448:62;-1:-1:-1;;;9526:18:1;;;9519:34;9570:19;;6948:68:0;9195:400:1;6948:68:0;-1:-1:-1;;;;;7035:21:0;;7027:68;;;;-1:-1:-1;;;7027:68:0;;9802:2:1;7027:68:0;;;9784:21:1;9841:2;9821:18;;;9814:30;9880:34;9860:18;;;9853:62;-1:-1:-1;;;9931:18:1;;;9924:32;9973:19;;7027:68:0;9600:398:1;7027:68:0;-1:-1:-1;;;;;7106:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7158:32;;1549:25:1;;;7158:32:0;;1522:18:1;7158:32:0;;;;;;;6863:335;;;:::o;7206:1361::-;-1:-1:-1;;;;;7294:18:0;;7286:68;;;;-1:-1:-1;;;7286:68:0;;10205:2:1;7286:68:0;;;10187:21:1;10244:2;10224:18;;;10217:30;10283:34;10263:18;;;10256:62;-1:-1:-1;;;10334:18:1;;;10327:35;10379:19;;7286:68:0;10003:401:1;7286:68:0;-1:-1:-1;;;;;7373:16:0;;7365:64;;;;-1:-1:-1;;;7365:64:0;;10611:2:1;7365:64:0;;;10593:21:1;10650:2;10630:18;;;10623:30;10689:34;10669:18;;;10662:62;-1:-1:-1;;;10740:18:1;;;10733:33;10783:19;;7365:64:0;10409:399:1;7365:64:0;7457:1;7448:6;:10;7440:64;;;;-1:-1:-1;;;7440:64:0;;11015:2:1;7440:64:0;;;10997:21:1;11054:2;11034:18;;;11027:30;11093:34;11073:18;;;11066:62;-1:-1:-1;;;11144:18:1;;;11137:39;11193:19;;7440:64:0;10813:405:1;7440:64:0;-1:-1:-1;;;;;7524:10:0;;;;;;:4;:10;;;;;;;;7523:11;7515:20;;;;;;7558:1;7546:9;:13;;;7570:9;:13;-1:-1:-1;2595:6:0;-1:-1:-1;;;;;7598:15:0;;;2595:6;;7598:15;;;;:32;;-1:-1:-1;2568:7:0;2595:6;-1:-1:-1;;;;;7617:13:0;;;2595:6;;7617:13;;7598:32;7594:923;;;7659:13;;-1:-1:-1;;;;;7651:21:0;;;7659:13;;7651:21;:55;;;;-1:-1:-1;7690:15:0;;-1:-1:-1;;;;;7676:30:0;;;7690:15;;7676:30;;7651:55;:83;;;;-1:-1:-1;;;;;;7712:22:0;;;;;;:18;:22;;;;;;;;7710:24;7651:83;7647:218;;;7797:12;;7787:6;:22;;7779:31;;;;;;7837:11;;-1:-1:-1;;;7837:11:0;;;;7829:20;;;;;;7902:15;;-1:-1:-1;;;;;7886:32:0;;;7902:15;;7886:32;;;;:62;;-1:-1:-1;;;;;;7924:24:0;;;;;;:18;:24;;;;;;;;7922:26;7886:62;7881:206;;;7976:13;;-1:-1:-1;;;;;7976:13:0;;;7970:19;;;;7967:105;;8021:1;8009:9;:13;;;8041:9;:13;7967:105;8101:28;8132:24;8150:4;8132:9;:24::i;:::-;8176:6;;8101:55;;-1:-1:-1;;;;8176:6:0;;;;8175:7;:32;;;;-1:-1:-1;8194:13:0;;-1:-1:-1;;;;;8186:21:0;;;8194:13;;8186:21;;8175:32;:47;;;;-1:-1:-1;8211:11:0;;-1:-1:-1;;;8211:11:0;;;;8175:47;8171:335;;;8243:38;8260:20;8243:16;:38::i;:::-;8329:21;8393:18;8372:39;;8369:122;;;8436:35;8449:21;8436:12;:35::i;:::-;8224:282;8171:335;7632:885;7594:923;8529:30;8544:4;8549:2;8552:6;8529:14;:30::i;1385:190::-;1471:7;1507:12;1499:6;;;;1491:29;;;;-1:-1:-1;;;1491:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1531:9:0;1543:5;1547:1;1543;:5;:::i;:::-;1531:17;1385:190;-1:-1:-1;;;;;1385:190:0:o;9066:92::-;9123:10;;:27;;-1:-1:-1;;;;;9123:10:0;;;;:27;;;;;9143:6;;9123:10;:27;:10;:27;9143:6;9123:10;:27;;;;;;;;;;;;;;;;;;;;;9066:92;:::o;6601:254::-;6668:7;6707;;6696;:18;;6688:73;;;;-1:-1:-1;;;6688:73:0;;11555:2:1;6688:73:0;;;11537:21:1;11594:2;11574:18;;;11567:30;11633:34;11613:18;;;11606:62;-1:-1:-1;;;11684:18:1;;;11677:40;11734:19;;6688:73:0;11353:406:1;6688:73:0;6772:19;6795:10;:8;:10::i;:::-;6772:33;-1:-1:-1;6823:24:0;:7;6772:33;6823:11;:24::i;:::-;6816:31;6601:254;-1:-1:-1;;;6601:254:0:o;8575:483::-;4818:6;:13;;-1:-1:-1;;;;4818:13:0;-1:-1:-1;;;4818:13:0;;;8677:16:::1;::::0;;8691:1:::1;8677:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8677:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8677:16:0::1;8653:40;;8722:4;8704;8709:1;8704:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8704:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8748:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8748:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8704:7;;8748:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8738:4;8743:1;8738:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8738:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8813:15:::1;::::0;8781:62:::1;::::0;8798:4:::1;::::0;8813:15:::1;8831:11:::0;8781:8:::1;:62::i;:::-;8854:15;::::0;:196:::1;::::0;-1:-1:-1;;;8854:196:0;;-1:-1:-1;;;;;8854:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8935:11;;8854:15:::1;::::0;8977:4;;9004::::1;::::0;9024:15:::1;::::0;8854:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4854:6:0;:14;;-1:-1:-1;;;;4854:14:0;;;-1:-1:-1;;;;8575:483:0:o;1583:246::-;1641:7;1665:1;1670;1665:6;1661:47;;-1:-1:-1;1695:1:0;1688:8;;1661:47;1718:9;1730:5;1734:1;1730;:5;:::i;:::-;1718:17;-1:-1:-1;1763:1:0;1754:5;1758:1;1718:17;1754:5;:::i;:::-;:10;1746:56;;;;-1:-1:-1;;;1746:56:0;;13173:2:1;1746:56:0;;;13155:21:1;13212:2;13192:18;;;13185:30;13251:34;13231:18;;;13224:62;-1:-1:-1;;;13302:18:1;;;13295:31;13343:19;;1746:56:0;12971:397:1;1837:132:0;1895:7;1922:39;1926:1;1929;1922:39;;;;;;;;;;;;;;;;;:3;:39::i;10473:146::-;10567:44;10585:6;10593:9;10604:6;10567:17;:44::i;12982:163::-;13023:7;13044:15;13061;13080:19;:17;:19::i;:::-;13043:56;;-1:-1:-1;13043:56:0;-1:-1:-1;13117:20:0;13043:56;;13117:11;:20::i;:::-;13110:27;;;;12982:163;:::o;1977:189::-;2063:7;2098:12;2091:5;2083:28;;;;-1:-1:-1;;;2083:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2122:9:0;2134:5;2138:1;2134;:5;:::i;10627:487::-;10726:15;10743:23;10768:12;10782:23;10807:12;10821:13;10838:19;10849:7;10838:10;:19::i;:::-;-1:-1:-1;;;;;10886:15:0;;;;;;:7;:15;;;;;;10725:132;;-1:-1:-1;10725:132:0;;-1:-1:-1;10725:132:0;;-1:-1:-1;10725:132:0;-1:-1:-1;10725:132:0;-1:-1:-1;10725:132:0;-1:-1:-1;10886:28:0;;10725:132;10886:19;:28::i;:::-;-1:-1:-1;;;;;10868:15:0;;;;;;;:7;:15;;;;;;:46;;;;10946:18;;;;;;;:39;;10969:15;10946:22;:39::i;:::-;-1:-1:-1;;;;;10925:18:0;;;;;;:7;:18;;;;;:60;10996:16;11006:5;10996:9;:16::i;:::-;11023:23;11035:4;11041;11023:11;:23::i;:::-;11079:9;-1:-1:-1;;;;;11062:44:0;11071:6;-1:-1:-1;;;;;11062:44:0;;11090:15;11062:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;11062:44:0;;;;;;;;10714:400;;;;;;10627:487;;;:::o;13153:256::-;13250:7;;13203;;;;;4272:13;3885:1;4272:2;:13;:::i;:::-;4261:24;;:8;:24;:::i;:::-;13268:25;-1:-1:-1;13318:20:0;4272:13;3885:1;4272:2;:13;:::i;:::-;4261:24;;:8;:24;:::i;:::-;13318:7;;;:11;:20::i;:::-;13308:7;:30;13304:61;;;13348:7;;4272:13;3885:1;4272:2;:13;:::i;:::-;4261:24;;:8;:24;:::i;:::-;13340:25;;;;;;13153:256;;:::o;13304:61::-;13384:7;;13393;;-1:-1:-1;13153:256:0;-1:-1:-1;13153:256:0:o;11727:471::-;11786:7;11795;11804;11813;11822;11831;11852:23;11877:12;11891:13;11908:42;11920:7;11929:9;;11940;;11908:11;:42::i;:::-;11851:99;;;;;;11961:19;11984:10;:8;:10::i;:::-;11961:33;;12006:15;12023:23;12048:12;12064:46;12076:7;12085:4;12091:5;12098:11;12064;:46::i;:::-;12005:105;;-1:-1:-1;12005:105:0;-1:-1:-1;12005:105:0;-1:-1:-1;12161:15:0;;-1:-1:-1;12178:4:0;;-1:-1:-1;12184:5:0;;-1:-1:-1;;;;;11727:471:0;;;;;;;:::o;1241:136::-;1299:7;1326:43;1330:1;1333;1326:43;;;;;;;;;;;;;;;;;:3;:43::i;1054:179::-;1112:7;;1144:5;1148:1;1144;:5;:::i;:::-;1132:17;;1173:1;1168;:6;;1160:46;;;;-1:-1:-1;;;1160:46:0;;13708:2:1;1160:46:0;;;13690:21:1;13747:2;13727:18;;;13720:30;13786:29;13766:18;;;13759:57;13833:18;;1160:46:0;13506:351:1;11122:212:0;11175:19;11198:10;:8;:10::i;:::-;11175:33;-1:-1:-1;11219:13:0;11235:22;:5;11175:33;11235:9;:22::i;:::-;11309:4;11293:22;;;;:7;:22;;;;;;11219:38;;-1:-1:-1;11293:33:0;;11219:38;11293:26;:33::i;:::-;11284:4;11268:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11122:212:0:o;11342:147::-;11420:7;;:17;;11432:4;11420:11;:17::i;:::-;11410:7;:27;11461:10;;:20;;11476:4;11461:14;:20::i;:::-;11448:10;:33;-1:-1:-1;;11342:147:0:o;12206:351::-;12299:7;;;;12352:28;12376:3;12352:19;:7;12364:6;12352:11;:19::i;:28::-;12337:43;-1:-1:-1;12391:13:0;12407:29;12432:3;12407:20;:7;12419;12407:11;:20::i;:29::-;12391:45;-1:-1:-1;12447:23:0;12473:28;12391:45;12473:17;:7;12485:4;12473:11;:17::i;:::-;:21;;:28::i;:::-;12447:54;12537:4;;-1:-1:-1;12543:5:0;;-1:-1:-1;12206:351:0;;-1:-1:-1;;;;;12206:351:0:o;12565:409::-;12675:7;;;;12731:24;:7;12743:11;12731;:24::i;:::-;12713:42;-1:-1:-1;12766:12:0;12781:21;:4;12790:11;12781:8;:21::i;:::-;12766:36;-1:-1:-1;12813:13:0;12829:22;:5;12839:11;12829:9;:22::i;:::-;12813:38;-1:-1:-1;12862:23:0;12888:28;12813:38;12888:17;:7;12900:4;12888:11;:17::i;:28::-;12935:7;;;;-1:-1:-1;12961:4:0;;-1:-1:-1;12565:409:0;;-1:-1:-1;;;;;;;12565:409:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2235:247::-;2294:6;2347:2;2335:9;2326:7;2322:23;2318:32;2315:52;;;2363:1;2360;2353:12;2315:52;2402:9;2389:23;2421:31;2446:5;2421:31;:::i;2695:127::-;2756:10;2751:3;2747:20;2744:1;2737:31;2787:4;2784:1;2777:15;2811:4;2808:1;2801:15;2827:118;2913:5;2906:13;2899:21;2892:5;2889:32;2879:60;;2935:1;2932;2925:12;2950:128;3015:20;;3044:28;3015:20;3044:28;:::i;3083:1191::-;3173:6;3181;3234:2;3222:9;3213:7;3209:23;3205:32;3202:52;;;3250:1;3247;3240:12;3202:52;3290:9;3277:23;3319:18;3360:2;3352:6;3349:14;3346:34;;;3376:1;3373;3366:12;3346:34;3414:6;3403:9;3399:22;3389:32;;3459:7;3452:4;3448:2;3444:13;3440:27;3430:55;;3481:1;3478;3471:12;3430:55;3517:2;3504:16;3539:4;3562:2;3558;3555:10;3552:36;;;3568:18;;:::i;:::-;3614:2;3611:1;3607:10;3646:2;3640:9;3709:2;3705:7;3700:2;3696;3692:11;3688:25;3680:6;3676:38;3764:6;3752:10;3749:22;3744:2;3732:10;3729:18;3726:46;3723:72;;;3775:18;;:::i;:::-;3811:2;3804:22;3861:18;;;3895:15;;;;-1:-1:-1;3937:11:1;;;3933:20;;;3965:19;;;3962:39;;;3997:1;3994;3987:12;3962:39;4021:11;;;;4041:148;4057:6;4052:3;4049:15;4041:148;;;4123:23;4142:3;4123:23;:::i;:::-;4111:36;;4074:12;;;;4167;;;;4041:148;;;4208:6;-1:-1:-1;4233:35:1;;-1:-1:-1;4249:18:1;;;4233:35;:::i;:::-;4223:45;;;;;;3083:1191;;;;;:::o;4279:388::-;4347:6;4355;4408:2;4396:9;4387:7;4383:23;4379:32;4376:52;;;4424:1;4421;4414:12;4376:52;4463:9;4450:23;4482:31;4507:5;4482:31;:::i;:::-;4532:5;-1:-1:-1;4589:2:1;4574:18;;4561:32;4602:33;4561:32;4602:33;:::i;:::-;4654:7;4644:17;;;4279:388;;;;;:::o;4672:180::-;4731:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:52;;;4800:1;4797;4790:12;4752:52;-1:-1:-1;4823:23:1;;4672:180;-1:-1:-1;4672:180:1:o;4857:127::-;4918:10;4913:3;4909:20;4906:1;4899:31;4949:4;4946:1;4939:15;4973:4;4970:1;4963:15;4989:422;5078:1;5121:5;5078:1;5135:270;5156:7;5146:8;5143:21;5135:270;;;5215:4;5211:1;5207:6;5203:17;5197:4;5194:27;5191:53;;;5224:18;;:::i;:::-;5274:7;5264:8;5260:22;5257:55;;;5294:16;;;;5257:55;5373:22;;;;5333:15;;;;5135:270;;;5139:3;4989:422;;;;;:::o;5416:806::-;5465:5;5495:8;5485:80;;-1:-1:-1;5536:1:1;5550:5;;5485:80;5584:4;5574:76;;-1:-1:-1;5621:1:1;5635:5;;5574:76;5666:4;5684:1;5679:59;;;;5752:1;5747:130;;;;5659:218;;5679:59;5709:1;5700:10;;5723:5;;;5747:130;5784:3;5774:8;5771:17;5768:43;;;5791:18;;:::i;:::-;-1:-1:-1;;5847:1:1;5833:16;;5862:5;;5659:218;;5961:2;5951:8;5948:16;5942:3;5936:4;5933:13;5929:36;5923:2;5913:8;5910:16;5905:2;5899:4;5896:12;5892:35;5889:77;5886:159;;;-1:-1:-1;5998:19:1;;;6030:5;;5886:159;6077:34;6102:8;6096:4;6077:34;:::i;:::-;6147:6;6143:1;6139:6;6135:19;6126:7;6123:32;6120:58;;;6158:18;;:::i;:::-;6196:20;;5416:806;-1:-1:-1;;;5416:806:1:o;6227:140::-;6285:5;6314:47;6355:4;6345:8;6341:19;6335:4;6314:47;:::i;6372:168::-;6412:7;6478:1;6474;6470:6;6466:14;6463:1;6460:21;6455:1;6448:9;6441:17;6437:45;6434:71;;;6485:18;;:::i;:::-;-1:-1:-1;6525:9:1;;6372:168::o;6545:356::-;6747:2;6729:21;;;6766:18;;;6759:30;6825:34;6820:2;6805:18;;6798:62;6892:2;6877:18;;6545:356::o;6906:251::-;6976:6;7029:2;7017:9;7008:7;7004:23;7000:32;6997:52;;;7045:1;7042;7035:12;6997:52;7077:9;7071:16;7096:31;7121:5;7096:31;:::i;7471:127::-;7532:10;7527:3;7523:20;7520:1;7513:31;7563:4;7560:1;7553:15;7587:4;7584:1;7577:15;7603:135;7642:3;7663:17;;;7660:43;;7683:18;;:::i;:::-;-1:-1:-1;7730:1:1;7719:13;;7603:135::o;8355:306::-;8443:6;8451;8459;8512:2;8500:9;8491:7;8487:23;8483:32;8480:52;;;8528:1;8525;8518:12;8480:52;8557:9;8551:16;8541:26;;8607:2;8596:9;8592:18;8586:25;8576:35;;8651:2;8640:9;8636:18;8630:25;8620:35;;8355:306;;;;;:::o;8945:245::-;9012:6;9065:2;9053:9;9044:7;9040:23;9036:32;9033:52;;;9081:1;9078;9071:12;9033:52;9113:9;9107:16;9132:28;9154:5;9132:28;:::i;11223:125::-;11263:4;11291:1;11288;11285:8;11282:34;;;11296:18;;:::i;:::-;-1:-1:-1;11333:9:1;;11223:125::o;11764:980::-;12026:4;12074:3;12063:9;12059:19;12105:6;12094:9;12087:25;12131:2;12169:6;12164:2;12153:9;12149:18;12142:34;12212:3;12207:2;12196:9;12192:18;12185:31;12236:6;12271;12265:13;12302:6;12294;12287:22;12340:3;12329:9;12325:19;12318:26;;12379:2;12371:6;12367:15;12353:29;;12400:1;12410:195;12424:6;12421:1;12418:13;12410:195;;;12489:13;;-1:-1:-1;;;;;12485:39:1;12473:52;;12580:15;;;;12545:12;;;;12521:1;12439:9;12410:195;;;-1:-1:-1;;;;;;;12661:32:1;;;;12656:2;12641:18;;12634:60;-1:-1:-1;;;12725:3:1;12710:19;12703:35;12622:3;11764:980;-1:-1:-1;;;11764:980:1:o;12749:217::-;12789:1;12815;12805:132;;12859:10;12854:3;12850:20;12847:1;12840:31;12894:4;12891:1;12884:15;12922:4;12919:1;12912:15;12805:132;-1:-1:-1;12951:9:1;;12749:217::o;13373:128::-;13413:3;13444:1;13440:6;13437:1;13434:13;13431:39;;;13450:18;;:::i;:::-;-1:-1:-1;13486:9:1;;13373:128::o

Swarm Source

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