ETH Price: $2,616.69 (-2.19%)

Token

AngryBirds (AGBIRD)
 

Overview

Max Total Supply

1,000,000,000,000,000 AGBIRD

Holders

117

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
117,380,952,393.026 AGBIRD

Value
$0.00
0x8b671f60ae0f9866cc98138d29526ea906160f8f
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:
AngryBirds

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-19
*/

// Website: https://www.angrybird.pro 
// Twitter: https://twitter.com/AngrybirdETH  
// Telegram: https://t.me/Angrybird_ETH

// ___  
//      ,-"" _ ""-. 
//    ,' _ ""  `  \ 
//   / ,        `. \
//  / /           \ \
// / /             \ \
// \_\           /_/
//   `""--...--""`

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.6;
pragma experimental ABIEncoderV2;


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 tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

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

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

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

}

contract AngryBirds is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcluded;
    mapping(address => bool) public ammPairs;
    mapping (uint256 => uint256) public tradingCount;
   
    uint8 private _decimals = 18;
    uint256 private _tTotal;
    uint256 public supply = 1000000000000000 * (10 ** 18);

    string private _name = "AngryBirds";
    string private _symbol = "AGBIRD";

    address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public initPoolAddress = 0x57B9790846b1067ae4e37e277B3384A62Bc81d1D;

    uint256 launchedBlock;
    bool openTransaction;
    uint256 private firstBlock = 1;
    uint256 private secondBlock = 4;

    uint256 tradingCountLimit = 7;
    
    constructor () {
        _tOwned[initPoolAddress] = supply;
        _tTotal = supply;

        isExcluded[address(msg.sender)] = true;
        isExcluded[initPoolAddress] = true;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        address ethPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        ammPairs[ethPair] = true;

        emit Transfer(address(0), initPoolAddress, _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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, "AngryBirds: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "AngryBirds: decreased allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "AngryBirds: approve from the zero address");
        require(spender != address(0), "AngryBirds: 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), "AngryBirds: transfer from the zero address");
        require(amount > 0, "AngryBirds: transfer amount must be greater than zero");

        uint256 fee;

        if(isExcluded[from] || isExcluded[to]){
            return _tokenTransfer(from,to,amount,fee); 
        }

        require(openTransaction,"AngryBirds: Not open");

        uint256 currentBlock = block.number;

        if (ammPairs[from]) {
            if (currentBlock - launchedBlock < firstBlock + 1) {
                fee = amount.mul(95).div(100);
            } else if (currentBlock - launchedBlock < secondBlock + 1) {
                tradingCount[currentBlock] = tradingCount[currentBlock] + 1;
                if (tradingCount[currentBlock] > tradingCountLimit) {
                    fee = amount.mul(95).div(100);
                }
            }
        }

        _tokenTransfer(from,to,amount,fee);
    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, uint256 fee) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tAmount.sub(fee));
        emit Transfer(sender, recipient, tAmount.sub(fee));
        
        if (fee > 0) {
            _tOwned[address(this)] = _tOwned[address(this)].add(fee);
            emit Transfer(sender, address(this), fee);
        }
    }

    function setOpenTransaction() external onlyOwner {
        require(openTransaction == false, "AngryBirds: Already opened");
        openTransaction = true;
        launchedBlock = block.number;
    }

    function muliSetExclude(address[] calldata users, bool _isExclude) external onlyOwner {
        for (uint i = 0; i < users.length; i++) {
            isExcluded[users[i]] = _isExclude;
        }
    }

}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initPoolAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool","name":"_isExclude","type":"bool"}],"name":"muliSetExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setOpenTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tradingCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6006805460ff191660121790556d314dc6448d9338c15b0a0000000060085560c0604052600a608081905269416e677279426972647360b01b60a09081526200004c916009919062000387565b50604080518082019091526006808252651051d092549160d21b60209092019182526200007c91600a9162000387565b50600b80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600c80549091167357b9790846b1067ae4e37e277b3384a62bc81d1d1790556001600f5560046010556007601155348015620000e157600080fd5b50620000ed3362000337565b600854600c80546001600160a01b03908116600090815260016020818152604080842087905560079690965533835260038152858320805460ff1990811684179091559454841683528583208054909516909117909355600b54845163c45a015560e01b815294519216939092849263c45a0155926004808201939291829003018186803b1580156200017f57600080fd5b505afa15801562000194573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ba91906200042d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020357600080fd5b505afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e91906200042d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028757600080fd5b505af11580156200029c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c291906200042d565b6001600160a01b03808216600090815260046020526040808220805460ff19166001179055600c5460075491519495509092169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200032791815260200190565b60405180910390a350506200049c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805462000395906200045f565b90600052602060002090601f016020900481019282620003b9576000855562000404565b82601f10620003d457805160ff191683800117855562000404565b8280016001018555821562000404579182015b8281111562000404578251825591602001919060010190620003e7565b506200041292915062000416565b5090565b5b8082111562000412576000815560010162000417565b6000602082840312156200044057600080fd5b81516001600160a01b03811681146200045857600080fd5b9392505050565b600181811c908216806200047457607f821691505b602082108114156200049657634e487b7160e01b600052602260045260246000fd5b50919050565b6110e680620004ac6000396000f3fe60806040526004361061012e5760003560e01c8063876ab8d8116100ab578063a72905a21161006f578063a72905a214610339578063a9059cbb14610369578063dd62ed3e14610389578063ef9fc673146103cf578063f2fde38b146103fc578063f887ea401461041c57600080fd5b8063876ab8d8146102995780638da5cb5b146102d157806395d89b41146102ef578063a457c2d714610304578063a4b3cf981461032457600080fd5b8063313ce567116100f2578063313ce567146101ea578063395093511461020c578063700597e91461022c57806370a082311461024e578063715018a61461028457600080fd5b8063047fc9aa1461013a57806306fdde0314610163578063095ea7b31461018557806318160ddd146101b557806323b872dd146101ca57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060085481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5061017861043c565b60405161015a9190610edd565b34801561019157600080fd5b506101a56101a0366004610e0f565b6104ce565b604051901515815260200161015a565b3480156101c157600080fd5b50600754610150565b3480156101d657600080fd5b506101a56101e5366004610dd3565b6104e4565b3480156101f657600080fd5b5060065460405160ff909116815260200161015a565b34801561021857600080fd5b506101a5610227366004610e0f565b61054d565b34801561023857600080fd5b5061024c610247366004610e39565b610583565b005b34801561025a57600080fd5b50610150610269366004610d85565b6001600160a01b031660009081526001602052604090205490565b34801561029057600080fd5b5061024c61062d565b3480156102a557600080fd5b50600c546102b9906001600160a01b031681565b6040516001600160a01b03909116815260200161015a565b3480156102dd57600080fd5b506000546001600160a01b03166102b9565b3480156102fb57600080fd5b50610178610663565b34801561031057600080fd5b506101a561031f366004610e0f565b610672565b34801561033057600080fd5b5061024c6106c1565b34801561034557600080fd5b506101a5610354366004610d85565b60046020526000908152604090205460ff1681565b34801561037557600080fd5b506101a5610384366004610e0f565b610751565b34801561039557600080fd5b506101506103a4366004610da0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103db57600080fd5b506101506103ea366004610ec4565b60056020526000908152604090205481565b34801561040857600080fd5b5061024c610417366004610d85565b61075e565b34801561042857600080fd5b50600b546102b9906001600160a01b031681565b60606009805461044b90610fd7565b80601f016020809104026020016040519081016040528092919081815260200182805461047790610fd7565b80156104c45780601f10610499576101008083540402835291602001916104c4565b820191906000526020600020905b8154815290600101906020018083116104a757829003601f168201915b5050505050905090565b60006104db3384846107f9565b50600192915050565b60006104f1848484610928565b610543843361053e856040518060600160405280602d8152602001611084602d91396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610b74565b6107f9565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104db91859061053e9086610ba0565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016105ad90610f32565b60405180910390fd5b60005b828110156106275781600360008686858181106105d8576105d8611043565b90506020020160208101906105ed9190610d85565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061061f81611012565b9150506105b9565b50505050565b6000546001600160a01b031633146106575760405162461bcd60e51b81526004016105ad90610f32565b6106616000610bb3565b565b6060600a805461044b90610fd7565b60006104db338461053e856040518060600160405280602a815260200161105a602a91393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610b74565b6000546001600160a01b031633146106eb5760405162461bcd60e51b81526004016105ad90610f32565b600e5460ff161561073e5760405162461bcd60e51b815260206004820152601a60248201527f416e67727942697264733a20416c7265616479206f70656e656400000000000060448201526064016105ad565b600e805460ff1916600117905543600d55565b60006104db338484610928565b6000546001600160a01b031633146107885760405162461bcd60e51b81526004016105ad90610f32565b6001600160a01b0381166107ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ad565b6107f681610bb3565b50565b6001600160a01b0383166108615760405162461bcd60e51b815260206004820152602960248201527f416e67727942697264733a20617070726f76652066726f6d20746865207a65726044820152686f206164647265737360b81b60648201526084016105ad565b6001600160a01b0382166108c75760405162461bcd60e51b815260206004820152602760248201527f416e67727942697264733a20617070726f766520746f20746865207a65726f206044820152666164647265737360c81b60648201526084016105ad565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109915760405162461bcd60e51b815260206004820152602a60248201527f416e67727942697264733a207472616e736665722066726f6d20746865207a65604482015269726f206164647265737360b01b60648201526084016105ad565b600081116109ff5760405162461bcd60e51b815260206004820152603560248201527f416e67727942697264733a207472616e7366657220616d6f756e74206d7573746044820152742062652067726561746572207468616e207a65726f60581b60648201526084016105ad565b6001600160a01b03831660009081526003602052604081205460ff1680610a3e57506001600160a01b03831660009081526003602052604090205460ff165b15610a4f5761062784848484610c03565b600e5460ff16610a985760405162461bcd60e51b815260206004820152601460248201527320b733b93ca134b932399d102737ba1037b832b760611b60448201526064016105ad565b6001600160a01b038416600090815260046020526040902054439060ff1615610b6157600f54610ac9906001610f67565b600d54610ad69083610fc0565b1015610af957610af26064610aec85605f610d45565b90610d51565b9150610b61565b601054610b07906001610f67565b600d54610b149083610fc0565b1015610b6157600081815260056020526040902054610b34906001610f67565b60008281526005602052604090208190556011541015610b6157610b5e6064610aec85605f610d45565b91505b610b6d85858585610c03565b5050505050565b60008184841115610b985760405162461bcd60e51b81526004016105ad9190610edd565b505050900390565b6000610bac8284610f67565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038416600090815260016020526040902054610c269083610d5d565b6001600160a01b038516600090815260016020526040902055610c6b610c4c8383610d5d565b6001600160a01b03851660009081526001602052604090205490610ba0565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610cb58585610d5d565b60405190815260200160405180910390a380156106275730600090815260016020526040902054610ce69082610ba0565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d379085815260200190565b60405180910390a350505050565b6000610bac8284610fa1565b6000610bac8284610f7f565b6000610bac8284610fc0565b80356001600160a01b0381168114610d8057600080fd5b919050565b600060208284031215610d9757600080fd5b610bac82610d69565b60008060408385031215610db357600080fd5b610dbc83610d69565b9150610dca60208401610d69565b90509250929050565b600080600060608486031215610de857600080fd5b610df184610d69565b9250610dff60208501610d69565b9150604084013590509250925092565b60008060408385031215610e2257600080fd5b610e2b83610d69565b946020939093013593505050565b600080600060408486031215610e4e57600080fd5b833567ffffffffffffffff80821115610e6657600080fd5b818601915086601f830112610e7a57600080fd5b813581811115610e8957600080fd5b8760208260051b8501011115610e9e57600080fd5b602092830195509350508401358015158114610eb957600080fd5b809150509250925092565b600060208284031215610ed657600080fd5b5035919050565b600060208083528351808285015260005b81811015610f0a57858101830151858201604001528201610eee565b81811115610f1c576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610f7a57610f7a61102d565b500190565b600082610f9c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610fbb57610fbb61102d565b500290565b600082821015610fd257610fd261102d565b500390565b600181811c90821680610feb57607f821691505b6020821081141561100c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156110265761102661102d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe416e67727942697264733a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416e67727942697264733a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064ecd7afa3206ecc3fe2ef1d60ad7c9f4236fa2c429757f4e61585559976afc364736f6c63430008060033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063876ab8d8116100ab578063a72905a21161006f578063a72905a214610339578063a9059cbb14610369578063dd62ed3e14610389578063ef9fc673146103cf578063f2fde38b146103fc578063f887ea401461041c57600080fd5b8063876ab8d8146102995780638da5cb5b146102d157806395d89b41146102ef578063a457c2d714610304578063a4b3cf981461032457600080fd5b8063313ce567116100f2578063313ce567146101ea578063395093511461020c578063700597e91461022c57806370a082311461024e578063715018a61461028457600080fd5b8063047fc9aa1461013a57806306fdde0314610163578063095ea7b31461018557806318160ddd146101b557806323b872dd146101ca57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060085481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5061017861043c565b60405161015a9190610edd565b34801561019157600080fd5b506101a56101a0366004610e0f565b6104ce565b604051901515815260200161015a565b3480156101c157600080fd5b50600754610150565b3480156101d657600080fd5b506101a56101e5366004610dd3565b6104e4565b3480156101f657600080fd5b5060065460405160ff909116815260200161015a565b34801561021857600080fd5b506101a5610227366004610e0f565b61054d565b34801561023857600080fd5b5061024c610247366004610e39565b610583565b005b34801561025a57600080fd5b50610150610269366004610d85565b6001600160a01b031660009081526001602052604090205490565b34801561029057600080fd5b5061024c61062d565b3480156102a557600080fd5b50600c546102b9906001600160a01b031681565b6040516001600160a01b03909116815260200161015a565b3480156102dd57600080fd5b506000546001600160a01b03166102b9565b3480156102fb57600080fd5b50610178610663565b34801561031057600080fd5b506101a561031f366004610e0f565b610672565b34801561033057600080fd5b5061024c6106c1565b34801561034557600080fd5b506101a5610354366004610d85565b60046020526000908152604090205460ff1681565b34801561037557600080fd5b506101a5610384366004610e0f565b610751565b34801561039557600080fd5b506101506103a4366004610da0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103db57600080fd5b506101506103ea366004610ec4565b60056020526000908152604090205481565b34801561040857600080fd5b5061024c610417366004610d85565b61075e565b34801561042857600080fd5b50600b546102b9906001600160a01b031681565b60606009805461044b90610fd7565b80601f016020809104026020016040519081016040528092919081815260200182805461047790610fd7565b80156104c45780601f10610499576101008083540402835291602001916104c4565b820191906000526020600020905b8154815290600101906020018083116104a757829003601f168201915b5050505050905090565b60006104db3384846107f9565b50600192915050565b60006104f1848484610928565b610543843361053e856040518060600160405280602d8152602001611084602d91396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610b74565b6107f9565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104db91859061053e9086610ba0565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016105ad90610f32565b60405180910390fd5b60005b828110156106275781600360008686858181106105d8576105d8611043565b90506020020160208101906105ed9190610d85565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061061f81611012565b9150506105b9565b50505050565b6000546001600160a01b031633146106575760405162461bcd60e51b81526004016105ad90610f32565b6106616000610bb3565b565b6060600a805461044b90610fd7565b60006104db338461053e856040518060600160405280602a815260200161105a602a91393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610b74565b6000546001600160a01b031633146106eb5760405162461bcd60e51b81526004016105ad90610f32565b600e5460ff161561073e5760405162461bcd60e51b815260206004820152601a60248201527f416e67727942697264733a20416c7265616479206f70656e656400000000000060448201526064016105ad565b600e805460ff1916600117905543600d55565b60006104db338484610928565b6000546001600160a01b031633146107885760405162461bcd60e51b81526004016105ad90610f32565b6001600160a01b0381166107ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ad565b6107f681610bb3565b50565b6001600160a01b0383166108615760405162461bcd60e51b815260206004820152602960248201527f416e67727942697264733a20617070726f76652066726f6d20746865207a65726044820152686f206164647265737360b81b60648201526084016105ad565b6001600160a01b0382166108c75760405162461bcd60e51b815260206004820152602760248201527f416e67727942697264733a20617070726f766520746f20746865207a65726f206044820152666164647265737360c81b60648201526084016105ad565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109915760405162461bcd60e51b815260206004820152602a60248201527f416e67727942697264733a207472616e736665722066726f6d20746865207a65604482015269726f206164647265737360b01b60648201526084016105ad565b600081116109ff5760405162461bcd60e51b815260206004820152603560248201527f416e67727942697264733a207472616e7366657220616d6f756e74206d7573746044820152742062652067726561746572207468616e207a65726f60581b60648201526084016105ad565b6001600160a01b03831660009081526003602052604081205460ff1680610a3e57506001600160a01b03831660009081526003602052604090205460ff165b15610a4f5761062784848484610c03565b600e5460ff16610a985760405162461bcd60e51b815260206004820152601460248201527320b733b93ca134b932399d102737ba1037b832b760611b60448201526064016105ad565b6001600160a01b038416600090815260046020526040902054439060ff1615610b6157600f54610ac9906001610f67565b600d54610ad69083610fc0565b1015610af957610af26064610aec85605f610d45565b90610d51565b9150610b61565b601054610b07906001610f67565b600d54610b149083610fc0565b1015610b6157600081815260056020526040902054610b34906001610f67565b60008281526005602052604090208190556011541015610b6157610b5e6064610aec85605f610d45565b91505b610b6d85858585610c03565b5050505050565b60008184841115610b985760405162461bcd60e51b81526004016105ad9190610edd565b505050900390565b6000610bac8284610f67565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038416600090815260016020526040902054610c269083610d5d565b6001600160a01b038516600090815260016020526040902055610c6b610c4c8383610d5d565b6001600160a01b03851660009081526001602052604090205490610ba0565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610cb58585610d5d565b60405190815260200160405180910390a380156106275730600090815260016020526040902054610ce69082610ba0565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d379085815260200190565b60405180910390a350505050565b6000610bac8284610fa1565b6000610bac8284610f7f565b6000610bac8284610fc0565b80356001600160a01b0381168114610d8057600080fd5b919050565b600060208284031215610d9757600080fd5b610bac82610d69565b60008060408385031215610db357600080fd5b610dbc83610d69565b9150610dca60208401610d69565b90509250929050565b600080600060608486031215610de857600080fd5b610df184610d69565b9250610dff60208501610d69565b9150604084013590509250925092565b60008060408385031215610e2257600080fd5b610e2b83610d69565b946020939093013593505050565b600080600060408486031215610e4e57600080fd5b833567ffffffffffffffff80821115610e6657600080fd5b818601915086601f830112610e7a57600080fd5b813581811115610e8957600080fd5b8760208260051b8501011115610e9e57600080fd5b602092830195509350508401358015158114610eb957600080fd5b809150509250925092565b600060208284031215610ed657600080fd5b5035919050565b600060208083528351808285015260005b81811015610f0a57858101830151858201604001528201610eee565b81811115610f1c576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610f7a57610f7a61102d565b500190565b600082610f9c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610fbb57610fbb61102d565b500290565b600082821015610fd257610fd261102d565b500390565b600181811c90821680610feb57607f821691505b6020821081141561100c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156110265761102661102d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe416e67727942697264733a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416e67727942697264733a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064ecd7afa3206ecc3fe2ef1d60ad7c9f4236fa2c429757f4e61585559976afc364736f6c63430008060033

Deployed Bytecode Sourcemap

4866:5616:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5306:53;;;;;;;;;;;;;;;;;;;6483:25:1;;;6471:2;6456:18;5306:53:0;;;;;;;;6306:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7137:161::-;;;;;;;;;;-1:-1:-1;7137:161:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;7137:161:0;2515:92:1;6583:95:0;;;;;;;;;;-1:-1:-1;6663:7:0;;6583:95;;7306:318;;;;;;;;;;-1:-1:-1;7306:318:0;;;;;:::i;:::-;;:::i;6492:83::-;;;;;;;;;;-1:-1:-1;6558:9:0;;6492:83;;6558:9;;;;6661:36:1;;6649:2;6634:18;6492:83:0;6616:87:1;7632:218:0;;;;;;;;;;-1:-1:-1;7632:218:0;;;;;:::i;:::-;;:::i;10273:204::-;;;;;;;;;;-1:-1:-1;10273:204:0;;;;;:::i;:::-;;:::i;:::-;;6686:117;;;;;;;;;;-1:-1:-1;6686:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6779:16:0;6752:7;6779:16;;;:7;:16;;;;;;;6686:117;4090:94;;;;;;;;;;;;;:::i;5525:75::-;;;;;;;;;;-1:-1:-1;5525:75:0;;;;-1:-1:-1;;;;;5525:75:0;;;;;;-1:-1:-1;;;;;2376:32:1;;;2358:51;;2346:2;2331:18;5525:75:0;2313:102:1;3867:87:0;;;;;;;;;;-1:-1:-1;3913:7:0;3940:6;-1:-1:-1;;;;;3940:6:0;3867:87;;6397;;;;;;;;;;;;;:::i;7858:274::-;;;;;;;;;;-1:-1:-1;7858:274:0;;;;;:::i;:::-;;:::i;10062:203::-;;;;;;;;;;;;;:::i;5134:40::-;;;;;;;;;;-1:-1:-1;5134:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6811:167;;;;;;;;;;-1:-1:-1;6811:167:0;;;;;:::i;:::-;;:::i;6986:143::-;;;;;;;;;;-1:-1:-1;6986:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7094:18:0;;;7067:7;7094:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6986:143;5181:48;;;;;;;;;;-1:-1:-1;5181:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;4192:192;;;;;;;;;;-1:-1:-1;4192:192:0;;;;;:::i;:::-;;:::i;5452:66::-;;;;;;;;;;-1:-1:-1;5452:66:0;;;;-1:-1:-1;;;;;5452:66:0;;;6306:83;6343:13;6376:5;6369:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6306:83;:::o;7137:161::-;7212:4;7229:39;3504:10;7252:7;7261:6;7229:8;:39::i;:::-;-1:-1:-1;7286:4:0;7137:161;;;;:::o;7306:318::-;7404:4;7421:36;7431:6;7439:9;7450:6;7421:9;:36::i;:::-;7468:126;7477:6;3504:10;7499:94;7537:6;7499:94;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7499:19:0;;;;;;:11;:19;;;;;;;;3504:10;7499:33;;;;;;;;;;:37;:94::i;:::-;7468:8;:126::i;:::-;-1:-1:-1;7612:4:0;7306:318;;;;;:::o;7632:218::-;3504:10;7720:4;7769:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7769:34:0;;;;;;;;;;7720:4;;7737:83;;7760:7;;7769:50;;7808:10;7769:38;:50::i;10273:204::-;3913:7;3940:6;-1:-1:-1;;;;;3940:6:0;3504:10;4002:23;3994:68;;;;-1:-1:-1;;;3994:68:0;;;;;;;:::i;:::-;;;;;;;;;10375:6:::1;10370:100;10387:16:::0;;::::1;10370:100;;;10448:10;10425;:20;10436:5;;10442:1;10436:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10425:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10425:20:0;:33;;-1:-1:-1;;10425:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10405:3;::::1;::::0;::::1;:::i;:::-;;;;10370:100;;;;10273:204:::0;;;:::o;4090:94::-;3913:7;3940:6;-1:-1:-1;;;;;3940:6:0;3504:10;4002:23;3994:68;;;;-1:-1:-1;;;3994:68:0;;;;;;;:::i;:::-;4155:21:::1;4173:1;4155:9;:21::i;:::-;4090:94::o:0;6397:87::-;6436:13;6469:7;6462:14;;;;;:::i;7858:274::-;7951:4;7968:134;3504:10;7991:7;8000:101;8039:15;8000:101;;;;;;;;;;;;;;;;;3504:10;8000:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8000:34:0;;;;;;;;;;;;:38;:101::i;10062:203::-;3913:7;3940:6;-1:-1:-1;;;;;3940:6:0;3504:10;4002:23;3994:68;;;;-1:-1:-1;;;3994:68:0;;;;;;;:::i;:::-;10130:15:::1;::::0;::::1;;:24;10122:63;;;::::0;-1:-1:-1;;;10122:63:0;;3416:2:1;10122:63:0::1;::::0;::::1;3398:21:1::0;3455:2;3435:18;;;3428:30;3494:28;3474:18;;;3467:56;3540:18;;10122:63:0::1;3388:176:1::0;10122:63:0::1;10196:15;:22:::0;;-1:-1:-1;;10196:22:0::1;10214:4;10196:22;::::0;;10245:12:::1;10229:13;:28:::0;10062:203::o;6811:167::-;6889:4;6906:42;3504:10;6930:9;6941:6;6906:9;:42::i;4192:192::-;3913:7;3940:6;-1:-1:-1;;;;;3940:6:0;3504:10;4002:23;3994:68;;;;-1:-1:-1;;;3994:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4281:22:0;::::1;4273:73;;;::::0;-1:-1:-1;;;4273:73:0;;4182:2:1;4273:73:0::1;::::0;::::1;4164:21:1::0;4221:2;4201:18;;;4194:30;4260:34;4240:18;;;4233:62;-1:-1:-1;;;4311:18:1;;;4304:36;4357:19;;4273:73:0::1;4154:228:1::0;4273:73:0::1;4357:19;4367:8;4357:9;:19::i;:::-;4192:192:::0;:::o;8177:347::-;-1:-1:-1;;;;;8270:19:0;;8262:73;;;;-1:-1:-1;;;8262:73:0;;5780:2:1;8262:73:0;;;5762:21:1;5819:2;5799:18;;;5792:30;5858:34;5838:18;;;5831:62;-1:-1:-1;;;5909:18:1;;;5902:39;5958:19;;8262:73:0;5752:231:1;8262:73:0;-1:-1:-1;;;;;8354:21:0;;8346:73;;;;-1:-1:-1;;;8346:73:0;;4589:2:1;8346:73:0;;;4571:21:1;4628:2;4608:18;;;4601:30;4667:34;4647:18;;;4640:62;-1:-1:-1;;;4718:18:1;;;4711:37;4765:19;;8346:73:0;4561:229:1;8346:73:0;-1:-1:-1;;;;;8432:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8484:32;;6483:25:1;;;8484:32:0;;6456:18:1;8484:32:0;;;;;;;8177:347;;;:::o;8532:1047::-;-1:-1:-1;;;;;8654:18:0;;8646:73;;;;-1:-1:-1;;;8646:73:0;;3771:2:1;8646:73:0;;;3753:21:1;3810:2;3790:18;;;3783:30;3849:34;3829:18;;;3822:62;-1:-1:-1;;;3900:18:1;;;3893:40;3950:19;;8646:73:0;3743:232:1;8646:73:0;8747:1;8738:6;:10;8730:76;;;;-1:-1:-1;;;8730:76:0;;5358:2:1;8730:76:0;;;5340:21:1;5397:2;5377:18;;;5370:30;5436:34;5416:18;;;5409:62;-1:-1:-1;;;5487:18:1;;;5480:51;5548:19;;8730:76:0;5330:243:1;8730:76:0;-1:-1:-1;;;;;8846:16:0;;8819:11;8846:16;;;:10;:16;;;;;;;;;:34;;-1:-1:-1;;;;;;8866:14:0;;;;;;:10;:14;;;;;;;;8846:34;8843:107;;;8903:34;8918:4;8923:2;8926:6;8933:3;8903:14;:34::i;8843:107::-;8970:15;;;;8962:47;;;;-1:-1:-1;;;8962:47:0;;6190:2:1;8962:47:0;;;6172:21:1;6229:2;6209:18;;;6202:30;-1:-1:-1;;;6248:18:1;;;6241:50;6308:18;;8962:47:0;6162:170:1;8962:47:0;-1:-1:-1;;;;;9074:14:0;;9022:20;9074:14;;;:8;:14;;;;;;9045:12;;9074:14;;9070:455;;;9140:10;;:14;;9153:1;9140:14;:::i;:::-;9124:13;;9109:28;;:12;:28;:::i;:::-;:45;9105:409;;;9181:23;9200:3;9181:14;:6;9192:2;9181:10;:14::i;:::-;:18;;:23::i;:::-;9175:29;;9105:409;;;9261:11;;:15;;9275:1;9261:15;:::i;:::-;9245:13;;9230:28;;:12;:28;:::i;:::-;:46;9226:288;;;9326:26;;;;:12;:26;;;;;;:30;;9355:1;9326:30;:::i;:::-;9297:26;;;;:12;:26;;;;;:59;;;9408:17;;-1:-1:-1;9375:124:0;;;9456:23;9475:3;9456:14;:6;9467:2;9456:10;:14::i;:23::-;9450:29;;9375:124;9537:34;9552:4;9557:2;9560:6;9567:3;9537:14;:34::i;:::-;8635:944;;8532:1047;;;:::o;2752:206::-;2838:7;2899:12;2891:6;;;;2883:29;;;;-1:-1:-1;;;2883:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2934:5:0;;;2752:206::o;2222:98::-;2280:7;2307:5;2311:1;2307;:5;:::i;:::-;2300:12;2222:98;-1:-1:-1;;;2222:98:0:o;4392:173::-;4448:16;4467:6;;-1:-1:-1;;;;;4484:17:0;;;-1:-1:-1;;;;;;4484:17:0;;;;;;4517:40;;4467:6;;;;;;;4517:40;;4448:16;4517:40;4437:128;4392:173;:::o;9587:467::-;-1:-1:-1;;;;;9713:15:0;;;;;;:7;:15;;;;;;:28;;9733:7;9713:19;:28::i;:::-;-1:-1:-1;;;;;9695:15:0;;;;;;:7;:15;;;;;:46;9773:40;9796:16;:7;9808:3;9796:11;:16::i;:::-;-1:-1:-1;;;;;9773:18:0;;;;;;:7;:18;;;;;;;:22;:40::i;:::-;-1:-1:-1;;;;;9752:18:0;;;;;;;:7;:18;;;;;:61;;;;9829:45;;;9857:16;:7;9869:3;9857:11;:16::i;:::-;9829:45;;6483:25:1;;;6471:2;6456:18;9829:45:0;;;;;;;9899:7;;9895:152;;9964:4;9948:22;;;;:7;:22;;;;;;:31;;9975:3;9948:26;:31::i;:::-;9939:4;9923:22;;;;:7;:22;;;;;;;:56;;;;9999:36;;-1:-1:-1;;;;;9999:36:0;;;;;;;10031:3;6483:25:1;;6471:2;6456:18;;6438:76;9999:36:0;;;;;;;;9587:467;;;;:::o;2434:98::-;2492:7;2519:5;2523:1;2519;:5;:::i;2540:98::-;2598:7;2625:5;2629:1;2625;:5;:::i;2328:98::-;2386:7;2413:5;2417:1;2413;:5;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:2;;;1126:1;1123;1116:12;1078:2;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;1068:167:1:o;1240:782::-;1332:6;1340;1348;1401:2;1389:9;1380:7;1376:23;1372:32;1369:2;;;1417:1;1414;1407:12;1369:2;1457:9;1444:23;1486:18;1527:2;1519:6;1516:14;1513:2;;;1543:1;1540;1533:12;1513:2;1581:6;1570:9;1566:22;1556:32;;1626:7;1619:4;1615:2;1611:13;1607:27;1597:2;;1648:1;1645;1638:12;1597:2;1688;1675:16;1714:2;1706:6;1703:14;1700:2;;;1730:1;1727;1720:12;1700:2;1785:7;1778:4;1768:6;1765:1;1761:14;1757:2;1753:23;1749:34;1746:47;1743:2;;;1806:1;1803;1796:12;1743:2;1837:4;1829:13;;;;-1:-1:-1;1861:6:1;-1:-1:-1;;1902:20:1;;1889:34;1959:13;;1952:21;1942:32;;1932:2;;1988:1;1985;1978:12;1932:2;2011:5;2001:15;;;1359:663;;;;;:::o;2027:180::-;2086:6;2139:2;2127:9;2118:7;2114:23;2110:32;2107:2;;;2155:1;2152;2145:12;2107:2;-1:-1:-1;2178:23:1;;2097:110;-1:-1:-1;2097:110:1:o;2612:597::-;2724:4;2753:2;2782;2771:9;2764:21;2814:6;2808:13;2857:6;2852:2;2841:9;2837:18;2830:34;2882:1;2892:140;2906:6;2903:1;2900:13;2892:140;;;3001:14;;;2997:23;;2991:30;2967:17;;;2986:2;2963:26;2956:66;2921:10;;2892:140;;;3050:6;3047:1;3044:13;3041:2;;;3120:1;3115:2;3106:6;3095:9;3091:22;3087:31;3080:42;3041:2;-1:-1:-1;3193:2:1;3172:15;-1:-1:-1;;3168:29:1;3153:45;;;;3200:2;3149:54;;2733:476;-1:-1:-1;;;2733:476:1:o;4795:356::-;4997:2;4979:21;;;5016:18;;;5009:30;5075:34;5070:2;5055:18;;5048:62;5142:2;5127:18;;4969:182::o;6708:128::-;6748:3;6779:1;6775:6;6772:1;6769:13;6766:2;;;6785:18;;:::i;:::-;-1:-1:-1;6821:9:1;;6756:80::o;6841:217::-;6881:1;6907;6897:2;;6951:10;6946:3;6942:20;6939:1;6932:31;6986:4;6983:1;6976:15;7014:4;7011:1;7004:15;6897:2;-1:-1:-1;7043:9:1;;6887:171::o;7063:168::-;7103:7;7169:1;7165;7161:6;7157:14;7154:1;7151:21;7146:1;7139:9;7132:17;7128:45;7125:2;;;7176:18;;:::i;:::-;-1:-1:-1;7216:9:1;;7115:116::o;7236:125::-;7276:4;7304:1;7301;7298:8;7295:2;;;7309:18;;:::i;:::-;-1:-1:-1;7346:9:1;;7285:76::o;7366:380::-;7445:1;7441:12;;;;7488;;;7509:2;;7563:4;7555:6;7551:17;7541:27;;7509:2;7616;7608:6;7605:14;7585:18;7582:38;7579:2;;;7662:10;7657:3;7653:20;7650:1;7643:31;7697:4;7694:1;7687:15;7725:4;7722:1;7715:15;7579:2;;7421:325;;;:::o;7751:135::-;7790:3;-1:-1:-1;;7811:17:1;;7808:2;;;7831:18;;:::i;:::-;-1:-1:-1;7878:1:1;7867:13;;7798:88::o;7891:127::-;7952:10;7947:3;7943:20;7940:1;7933:31;7983:4;7980:1;7973:15;8007:4;8004:1;7997:15;8023:127;8084:10;8079:3;8075:20;8072:1;8065:31;8115:4;8112:1;8105:15;8139:4;8136:1;8129:15

Swarm Source

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