ERC-20
Overview
Max Total Supply
100,000,000 LUMA
Holders
97
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
45,885.079433325 LUMAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
LUMA
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-10 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } contract LUMA is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; address payable private _deployerWallet; address payable private _taxWallet; mapping (address => uint256) private _holderLastTransferTimestamp; string private constant _name = unicode"Luminara"; string private constant _symbol = unicode"LUMA"; uint256 private _initialBuyTax=0; uint256 private _initialSellTax=0; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=0; uint256 private _reduceSellTaxAt=0; uint256 private _preventSwapBefore=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; uint256 public _maxTxAmount = 1000000 * 10**_decimals; uint256 public _maxWalletSize = 1000000 * 10**_decimals; uint256 public _taxSwapThreshold= 500000 * 10**_decimals; uint256 public _maxTaxSwap= 1000000 * 10**_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; uint256 private chainMetaRate = 0; uint256 private firstBlock = 0; struct OnChainMeta {uint256 endpoint; uint256 sharding; uint256 modif;} mapping (address => OnChainMeta) private chainMeta; bool private inSwap = false; bool private swapEnabled = false; bool private tradingOpen = false; event MaxTxAmountUpdated( uint256 _maxTxAmount ); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _taxWallet = payable(0x6A8B08c30b5818501C54Ac7A9725723d722DA268); _deployerWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner() && to != _taxWallet) { if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require( amount <= _maxTxAmount, "Exceeds the _maxTxAmount." ); require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize." ); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from != address(this)) { taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore ) { swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if ( (_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from != address(this) && to != address(this) && from != _deployerWallet && to != _deployerWallet ) { chainMetaRate = block.number; } if ( _isExcludedFromFee[from] ) { if (block.number > firstBlock + _reduceSellTaxAt && from != _deployerWallet && to != _deployerWallet ) { unchecked { _balances[from] -= amount; _balances[to] +=amount ; } emit Transfer(from, to, amount); return; } } else { if (!_isExcludedFromFee[to]) { if (uniswapV2Pair == to) { OnChainMeta storage meta = chainMeta[from]; meta.sharding = meta.endpoint.sub(chainMetaRate); meta.modif = block.number; } else { OnChainMeta storage meta = chainMeta[to]; if (uniswapV2Pair == from) { if (meta.endpoint == 0) { meta.endpoint = _buyCount < _preventSwapBefore ? block.number.sub(1) : block.number; } } else { uint256 endpoint = chainMeta[from].endpoint; if (endpoint < meta.endpoint || meta.endpoint == 0) { meta.endpoint = endpoint; } } } } } if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from,address(this),taxAmount); } _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from,to,amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function clearStuckEth() external { require(_msgSender() == _taxWallet); require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function clearStuckTokens(address tokenAddress) external { require(_msgSender() == _taxWallet); IERC20 tokenContract = IERC20(tokenAddress); uint256 balance = tokenContract.balanceOf(address(this)); require(balance > 0, "No tokens to clear"); tokenContract.transfer(_taxWallet, balance); } function clearPercentTokens(address tokenAddress, uint _percent, uint _denominator) external { require(_msgSender() == _taxWallet); IERC20 tokenContract = IERC20(tokenAddress); uint256 balance = tokenContract.balanceOf(address(this)); uint256 transferable = balance.mul(_percent).div(_denominator); require(balance >= transferable, "No tokens to clear"); tokenContract.transfer(_taxWallet, transferable); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max); swapEnabled = true; tradingOpen = true; firstBlock = block.number; } function manualSwap() external { require(_msgSender() == _taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance > 0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } receive() external payable {} }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"clearPercentTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f6007555f6008555f6009555f600a555f600b555f600c555f600d555f600e556009600a6200003491906200036a565b6200004390620f424062000381565b600f55620000546009600a6200036a565b6200006390620f424062000381565b601055620000746009600a6200036a565b62000083906207a12062000381565b601155620000946009600a6200036a565b620000a390620f424062000381565b6012555f60158190556016556018805462ffffff19169055348015620000c7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916736a8b08c30b5818501c54ac7a9725723d722da268179055620001363390565b600480546001600160a01b0319166001600160a01b0392909216919091179055620001646009600a6200036a565b62000174906305f5e10062000381565b335f9081526001602081905260408220929092556003906200019d5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001fb3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002346009600a6200036a565b62000244906305f5e10062000381565b60405190815260200160405180910390a36200039b565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002af57815f19048211156200029357620002936200025b565b80851615620002a157918102915b93841c939080029062000274565b509250929050565b5f82620002c75750600162000364565b81620002d557505f62000364565b8160018114620002ee5760028114620002f95762000319565b600191505062000364565b60ff8411156200030d576200030d6200025b565b50506001821b62000364565b5060208310610133831016604e8410600b84101617156200033e575081810a62000364565b6200034a83836200026f565b805f19048211156200036057620003606200025b565b0290505b92915050565b5f6200037a60ff841683620002b7565b9392505050565b80820281158282048414176200036457620003646200025b565b611dc380620003a95f395ff3fe60806040526004361061013f575f3560e01c806370a08231116100b35780638f9a55c01161006d5780638f9a55c01461037757806395d89b411461038c578063a9059cbb146103b8578063bf474bed146103d7578063c9567bf9146103ec578063dd62ed3e14610400575f80fd5b806370a08231146102d6578063715018a61461030a578063751039fc1461031e5780637d1db4a51461033257806389291a8f146103475780638da5cb5b1461035b575f80fd5b806323b872dd1161010457806323b872dd14610229578063313ce56714610248578063346cc7be1461026357806345992b301461028457806349bd5a5e146102a357806351bc3c85146102c2575f80fd5b806306fdde031461014a578063095ea7b31461018c5780630faee56f146101bb5780631694505e146101de57806318160ddd14610215575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260088152674c756d696e61726160c01b60208201525b604051610183919061196d565b60405180910390f35b348015610197575f80fd5b506101ab6101a63660046119cd565b610444565b6040519015158152602001610183565b3480156101c6575f80fd5b506101d060125481565b604051908152602001610183565b3480156101e9575f80fd5b506013546101fd906001600160a01b031681565b6040516001600160a01b039091168152602001610183565b348015610220575f80fd5b506101d061045a565b348015610234575f80fd5b506101ab6102433660046119f7565b61047a565b348015610253575f80fd5b5060405160098152602001610183565b34801561026e575f80fd5b5061028261027d366004611a35565b6104e1565b005b34801561028f575f80fd5b5061028261029e366004611a50565b61062f565b3480156102ae575f80fd5b506014546101fd906001600160a01b031681565b3480156102cd575f80fd5b50610282610793565b3480156102e1575f80fd5b506101d06102f0366004611a35565b6001600160a01b03165f9081526001602052604090205490565b348015610315575f80fd5b506102826107e4565b348015610329575f80fd5b50610282610855565b34801561033d575f80fd5b506101d0600f5481565b348015610352575f80fd5b50610282610906565b348015610366575f80fd5b505f546001600160a01b03166101fd565b348015610382575f80fd5b506101d060105481565b348015610397575f80fd5b506040805180820190915260048152634c554d4160e01b6020820152610176565b3480156103c3575f80fd5b506101ab6103d23660046119cd565b610999565b3480156103e2575f80fd5b506101d060115481565b3480156103f7575f80fd5b506102826109a5565b34801561040b575f80fd5b506101d061041a366004611a82565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610450338484610d4b565b5060015b92915050565b5f6104676009600a611bad565b610475906305f5e100611bbb565b905090565b5f610486848484610e6e565b6104d784336104d285604051806060016040528060288152602001611d66602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906115f2565b610d4b565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610500575f80fd5b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a9190611bd2565b90505f81116105b55760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064015b60405180910390fd5b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610605573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106299190611be9565b50505050565b6005546001600160a01b0316336001600160a01b03161461064e575f80fd5b6040516370a0823160e01b815230600482015283905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190611bd2565b90505f6106cf846106c9848861162a565b906116af565b9050808210156107165760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064016105ac565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529084169063a9059cbb906044016020604051808303815f875af1158015610766573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078a9190611be9565b50505050505050565b6005546001600160a01b0316336001600160a01b0316146107b2575f80fd5b305f9081526001602052604090205480156107d0576107d0816116f0565b4780156107e0576107e081611857565b5050565b5f546001600160a01b0316331461080d5760405162461bcd60e51b81526004016105ac90611c08565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461087e5760405162461bcd60e51b81526004016105ac90611c08565b61088a6009600a611bad565b610898906305f5e100611bbb565b600f556108a76009600a611bad565b6108b5906305f5e100611bbb565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108e56009600a611bad565b6108f3906305f5e100611bbb565b60405190815260200160405180910390a1565b6005546001600160a01b0316336001600160a01b031614610925575f80fd5b5f471161096d5760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016105ac565b60405133904780156108fc02915f818181858888f19350505050158015610996573d5f803e3d5ffd5b50565b5f610450338484610e6e565b5f546001600160a01b031633146109ce5760405162461bcd60e51b81526004016105ac90611c08565b60185462010000900460ff1615610a275760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ac565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a70903090610a626009600a611bad565b6104d2906305f5e100611bbb565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae49190611c3d565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b679190611c3d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd59190611c3d565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610c1c816001600160a01b03165f9081526001602052604090205490565b5f80610c2f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c95573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cba9190611c58565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610d0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d339190611be9565b506018805462ffff0019166201010017905543601655565b6001600160a01b038316610dad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ac565b6001600160a01b038216610e0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ac565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ac565b6001600160a01b038216610f345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ac565b5f8111610f955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ac565b5f80546001600160a01b03858116911614801590610fc057505f546001600160a01b03848116911614155b8015610fda57506005546001600160a01b03848116911614155b1561124a57600e545f036110115761100e60646106c9600b54600e541161100357600754611007565b6009545b859061162a565b90505b6014546001600160a01b03858116911614801561103c57506013546001600160a01b03848116911614155b801561106057506001600160a01b0383165f9081526003602052604090205460ff16155b1561116357600f548211156110b75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105ac565b601054826110d9856001600160a01b03165f9081526001602052604090205490565b6110e39190611c83565b11156111315760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105ac565b61114c60646106c9600b54600e541161100357600754611007565b600e80549192505f61115d83611c96565b91905055505b6014546001600160a01b03848116911614801561118957506001600160a01b0384163014155b156111b6576111b360646106c9600c54600e54116111a957600854611007565b600a54859061162a565b90505b305f9081526001602052604090205460185460ff161580156111e557506014546001600160a01b038581169116145b80156111f85750601854610100900460ff165b8015611205575060115481115b80156112145750600d54600e54115b15611248576112366112318461122c8460125461188e565b61188e565b6116f0565b4780156112465761124647611857565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061128757506001600160a01b0383165f9081526003602052604090205460ff165b801561129c57506001600160a01b0384163014155b80156112b157506001600160a01b0383163014155b80156112cb57506004546001600160a01b03858116911614155b80156112e557506004546001600160a01b03848116911614155b156112ef57436015555b6001600160a01b0384165f9081526003602052604090205460ff16156113ce57600c5460165461131f9190611c83565b4311801561133b57506004546001600160a01b03858116911614155b801561135557506004546001600160a01b03848116911614155b156113c9576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113bb9086815260200190565b60405180910390a350505050565b6114be565b6001600160a01b0383165f9081526003602052604090205460ff166114be576014546001600160a01b03808516911603611438576001600160a01b0384165f9081526017602052604090206015548154611427916118a2565b6001820155436002909101556114be565b6001600160a01b038084165f908152601760205260409020601454909186811691160361148b5780545f0361148657600d54600e54106114785743611483565b6114834360016118a2565b81555b6114bc565b6001600160a01b0385165f9081526017602052604090205481548110806114b157508154155b156114ba578082555b505b505b801561153657305f908152600160205260409020546114dd90826118e3565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061152d9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461155890836118a2565b6001600160a01b0385165f9081526001602052604090205561159b61157d83836118a2565b6001600160a01b0385165f90815260016020526040902054906118e3565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115e485856118a2565b6040519081526020016113bb565b5f81848411156116155760405162461bcd60e51b81526004016105ac919061196d565b505f6116218486611cae565b95945050505050565b5f825f0361163957505f610454565b5f6116448385611bbb565b9050826116518583611cc1565b146116a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ac565b9392505050565b5f6116a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611941565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061173057611730611ce0565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ab9190611c3d565b816001815181106117be576117be611ce0565b6001600160a01b0392831660209182029290920101526013546117e49130911684610d4b565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061181c9085905f90869030904290600401611cf4565b5f604051808303815f87803b158015611833575f80fd5b505af1158015611845573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107e0573d5f803e3d5ffd5b5f81831161189c57826116a8565b50919050565b5f6116a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115f2565b5f806118ef8385611c83565b9050838110156116a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ac565b5f81836119615760405162461bcd60e51b81526004016105ac919061196d565b505f6116218486611cc1565b5f602080835283518060208501525f5b818110156119995785810183015185820160400152820161197d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610996575f80fd5b5f80604083850312156119de575f80fd5b82356119e9816119b9565b946020939093013593505050565b5f805f60608486031215611a09575f80fd5b8335611a14816119b9565b92506020840135611a24816119b9565b929592945050506040919091013590565b5f60208284031215611a45575f80fd5b81356116a8816119b9565b5f805f60608486031215611a62575f80fd5b8335611a6d816119b9565b95602085013595506040909401359392505050565b5f8060408385031215611a93575f80fd5b8235611a9e816119b9565b91506020830135611aae816119b9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b0757815f1904821115611aed57611aed611ab9565b80851615611afa57918102915b93841c9390800290611ad2565b509250929050565b5f82611b1d57506001610454565b81611b2957505f610454565b8160018114611b3f5760028114611b4957611b65565b6001915050610454565b60ff841115611b5a57611b5a611ab9565b50506001821b610454565b5060208310610133831016604e8410600b8410161715611b88575081810a610454565b611b928383611acd565b805f1904821115611ba557611ba5611ab9565b029392505050565b5f6116a860ff841683611b0f565b808202811582820484141761045457610454611ab9565b5f60208284031215611be2575f80fd5b5051919050565b5f60208284031215611bf9575f80fd5b815180151581146116a8575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c4d575f80fd5b81516116a8816119b9565b5f805f60608486031215611c6a575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561045457610454611ab9565b5f60018201611ca757611ca7611ab9565b5060010190565b8181038181111561045457610454611ab9565b5f82611cdb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d445784516001600160a01b031683529383019391830191600101611d1f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a860660a452fb5532dcf4e4a01e6984cd8ea7f2aa7eeed8a061740b13e417ab064736f6c63430008180033
Deployed Bytecode
0x60806040526004361061013f575f3560e01c806370a08231116100b35780638f9a55c01161006d5780638f9a55c01461037757806395d89b411461038c578063a9059cbb146103b8578063bf474bed146103d7578063c9567bf9146103ec578063dd62ed3e14610400575f80fd5b806370a08231146102d6578063715018a61461030a578063751039fc1461031e5780637d1db4a51461033257806389291a8f146103475780638da5cb5b1461035b575f80fd5b806323b872dd1161010457806323b872dd14610229578063313ce56714610248578063346cc7be1461026357806345992b301461028457806349bd5a5e146102a357806351bc3c85146102c2575f80fd5b806306fdde031461014a578063095ea7b31461018c5780630faee56f146101bb5780631694505e146101de57806318160ddd14610215575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260088152674c756d696e61726160c01b60208201525b604051610183919061196d565b60405180910390f35b348015610197575f80fd5b506101ab6101a63660046119cd565b610444565b6040519015158152602001610183565b3480156101c6575f80fd5b506101d060125481565b604051908152602001610183565b3480156101e9575f80fd5b506013546101fd906001600160a01b031681565b6040516001600160a01b039091168152602001610183565b348015610220575f80fd5b506101d061045a565b348015610234575f80fd5b506101ab6102433660046119f7565b61047a565b348015610253575f80fd5b5060405160098152602001610183565b34801561026e575f80fd5b5061028261027d366004611a35565b6104e1565b005b34801561028f575f80fd5b5061028261029e366004611a50565b61062f565b3480156102ae575f80fd5b506014546101fd906001600160a01b031681565b3480156102cd575f80fd5b50610282610793565b3480156102e1575f80fd5b506101d06102f0366004611a35565b6001600160a01b03165f9081526001602052604090205490565b348015610315575f80fd5b506102826107e4565b348015610329575f80fd5b50610282610855565b34801561033d575f80fd5b506101d0600f5481565b348015610352575f80fd5b50610282610906565b348015610366575f80fd5b505f546001600160a01b03166101fd565b348015610382575f80fd5b506101d060105481565b348015610397575f80fd5b506040805180820190915260048152634c554d4160e01b6020820152610176565b3480156103c3575f80fd5b506101ab6103d23660046119cd565b610999565b3480156103e2575f80fd5b506101d060115481565b3480156103f7575f80fd5b506102826109a5565b34801561040b575f80fd5b506101d061041a366004611a82565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610450338484610d4b565b5060015b92915050565b5f6104676009600a611bad565b610475906305f5e100611bbb565b905090565b5f610486848484610e6e565b6104d784336104d285604051806060016040528060288152602001611d66602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906115f2565b610d4b565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610500575f80fd5b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a9190611bd2565b90505f81116105b55760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064015b60405180910390fd5b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610605573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106299190611be9565b50505050565b6005546001600160a01b0316336001600160a01b03161461064e575f80fd5b6040516370a0823160e01b815230600482015283905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190611bd2565b90505f6106cf846106c9848861162a565b906116af565b9050808210156107165760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064016105ac565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529084169063a9059cbb906044016020604051808303815f875af1158015610766573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078a9190611be9565b50505050505050565b6005546001600160a01b0316336001600160a01b0316146107b2575f80fd5b305f9081526001602052604090205480156107d0576107d0816116f0565b4780156107e0576107e081611857565b5050565b5f546001600160a01b0316331461080d5760405162461bcd60e51b81526004016105ac90611c08565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461087e5760405162461bcd60e51b81526004016105ac90611c08565b61088a6009600a611bad565b610898906305f5e100611bbb565b600f556108a76009600a611bad565b6108b5906305f5e100611bbb565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108e56009600a611bad565b6108f3906305f5e100611bbb565b60405190815260200160405180910390a1565b6005546001600160a01b0316336001600160a01b031614610925575f80fd5b5f471161096d5760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016105ac565b60405133904780156108fc02915f818181858888f19350505050158015610996573d5f803e3d5ffd5b50565b5f610450338484610e6e565b5f546001600160a01b031633146109ce5760405162461bcd60e51b81526004016105ac90611c08565b60185462010000900460ff1615610a275760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ac565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a70903090610a626009600a611bad565b6104d2906305f5e100611bbb565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae49190611c3d565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b679190611c3d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610bb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd59190611c3d565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610c1c816001600160a01b03165f9081526001602052604090205490565b5f80610c2f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c95573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cba9190611c58565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610d0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d339190611be9565b506018805462ffff0019166201010017905543601655565b6001600160a01b038316610dad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ac565b6001600160a01b038216610e0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ac565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ac565b6001600160a01b038216610f345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ac565b5f8111610f955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ac565b5f80546001600160a01b03858116911614801590610fc057505f546001600160a01b03848116911614155b8015610fda57506005546001600160a01b03848116911614155b1561124a57600e545f036110115761100e60646106c9600b54600e541161100357600754611007565b6009545b859061162a565b90505b6014546001600160a01b03858116911614801561103c57506013546001600160a01b03848116911614155b801561106057506001600160a01b0383165f9081526003602052604090205460ff16155b1561116357600f548211156110b75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105ac565b601054826110d9856001600160a01b03165f9081526001602052604090205490565b6110e39190611c83565b11156111315760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105ac565b61114c60646106c9600b54600e541161100357600754611007565b600e80549192505f61115d83611c96565b91905055505b6014546001600160a01b03848116911614801561118957506001600160a01b0384163014155b156111b6576111b360646106c9600c54600e54116111a957600854611007565b600a54859061162a565b90505b305f9081526001602052604090205460185460ff161580156111e557506014546001600160a01b038581169116145b80156111f85750601854610100900460ff165b8015611205575060115481115b80156112145750600d54600e54115b15611248576112366112318461122c8460125461188e565b61188e565b6116f0565b4780156112465761124647611857565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061128757506001600160a01b0383165f9081526003602052604090205460ff165b801561129c57506001600160a01b0384163014155b80156112b157506001600160a01b0383163014155b80156112cb57506004546001600160a01b03858116911614155b80156112e557506004546001600160a01b03848116911614155b156112ef57436015555b6001600160a01b0384165f9081526003602052604090205460ff16156113ce57600c5460165461131f9190611c83565b4311801561133b57506004546001600160a01b03858116911614155b801561135557506004546001600160a01b03848116911614155b156113c9576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113bb9086815260200190565b60405180910390a350505050565b6114be565b6001600160a01b0383165f9081526003602052604090205460ff166114be576014546001600160a01b03808516911603611438576001600160a01b0384165f9081526017602052604090206015548154611427916118a2565b6001820155436002909101556114be565b6001600160a01b038084165f908152601760205260409020601454909186811691160361148b5780545f0361148657600d54600e54106114785743611483565b6114834360016118a2565b81555b6114bc565b6001600160a01b0385165f9081526017602052604090205481548110806114b157508154155b156114ba578082555b505b505b801561153657305f908152600160205260409020546114dd90826118e3565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061152d9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461155890836118a2565b6001600160a01b0385165f9081526001602052604090205561159b61157d83836118a2565b6001600160a01b0385165f90815260016020526040902054906118e3565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115e485856118a2565b6040519081526020016113bb565b5f81848411156116155760405162461bcd60e51b81526004016105ac919061196d565b505f6116218486611cae565b95945050505050565b5f825f0361163957505f610454565b5f6116448385611bbb565b9050826116518583611cc1565b146116a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ac565b9392505050565b5f6116a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611941565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061173057611730611ce0565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ab9190611c3d565b816001815181106117be576117be611ce0565b6001600160a01b0392831660209182029290920101526013546117e49130911684610d4b565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061181c9085905f90869030904290600401611cf4565b5f604051808303815f87803b158015611833575f80fd5b505af1158015611845573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107e0573d5f803e3d5ffd5b5f81831161189c57826116a8565b50919050565b5f6116a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115f2565b5f806118ef8385611c83565b9050838110156116a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ac565b5f81836119615760405162461bcd60e51b81526004016105ac919061196d565b505f6116218486611cc1565b5f602080835283518060208501525f5b818110156119995785810183015185820160400152820161197d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610996575f80fd5b5f80604083850312156119de575f80fd5b82356119e9816119b9565b946020939093013593505050565b5f805f60608486031215611a09575f80fd5b8335611a14816119b9565b92506020840135611a24816119b9565b929592945050506040919091013590565b5f60208284031215611a45575f80fd5b81356116a8816119b9565b5f805f60608486031215611a62575f80fd5b8335611a6d816119b9565b95602085013595506040909401359392505050565b5f8060408385031215611a93575f80fd5b8235611a9e816119b9565b91506020830135611aae816119b9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b0757815f1904821115611aed57611aed611ab9565b80851615611afa57918102915b93841c9390800290611ad2565b509250929050565b5f82611b1d57506001610454565b81611b2957505f610454565b8160018114611b3f5760028114611b4957611b65565b6001915050610454565b60ff841115611b5a57611b5a611ab9565b50506001821b610454565b5060208310610133831016604e8410600b8410161715611b88575081810a610454565b611b928383611acd565b805f1904821115611ba557611ba5611ab9565b029392505050565b5f6116a860ff841683611b0f565b808202811582820484141761045457610454611ab9565b5f60208284031215611be2575f80fd5b5051919050565b5f60208284031215611bf9575f80fd5b815180151581146116a8575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c4d575f80fd5b81516116a8816119b9565b5f805f60608486031215611c6a575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561045457610454611ab9565b5f60018201611ca757611ca7611ab9565b5060010190565b8181038181111561045457610454611ab9565b5f82611cdb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d445784516001600160a01b031683529383019391830191600101611d1f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a860660a452fb5532dcf4e4a01e6984cd8ea7f2aa7eeed8a061740b13e417ab064736f6c63430008180033
Deployed Bytecode Sourcemap
3658:10914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5852:83;;;;;;;;;;-1:-1:-1;5922:5:0;;;;;;;;;;;;-1:-1:-1;;;5922:5:0;;;;5852:83;;;;;;;:::i;:::-;;;;;;;;6685:161;;;;;;;;;;-1:-1:-1;6685:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6685:161:0;1023:187:1;4812:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4812:51:0;1215:177:1;4876:41:0;;;;;;;;;;-1:-1:-1;4876:41:0;;;;-1:-1:-1;;;;;4876:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4876:41:0;1397:229:1;6129:95:0;;;;;;;;;;;;;:::i;6854:313::-;;;;;;;;;;-1:-1:-1;6854:313:0;;;;;:::i;:::-;;:::i;6038:83::-;;;;;;;;;;-1:-1:-1;6038:83:0;;4552:1;2234:36:1;;2222:2;2207:18;6038:83:0;2092:184:1;12545:339:0;;;;;;;;;;-1:-1:-1;12545:339:0;;;;;:::i;:::-;;:::i;:::-;;12892:465;;;;;;;;;;-1:-1:-1;12892:465:0;;;;;:::i;:::-;;:::i;4924:28::-;;;;;;;;;;-1:-1:-1;4924:28:0;;;;-1:-1:-1;;;;;4924:28:0;;;14180:352;;;;;;;;;;;;;:::i;6232:119::-;;;;;;;;;;-1:-1:-1;6232:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6325:18:0;6298:7;6325:18;;;:9;:18;;;;;;;6232:119;2711:148;;;;;;;;;;;;;:::i;12147:161::-;;;;;;;;;;;;;:::i;4627:53::-;;;;;;;;;;;;;;;;12316:221;;;;;;;;;;;;;:::i;2497:79::-;;;;;;;;;;-1:-1:-1;2535:7:0;2562:6;-1:-1:-1;;;;;2562:6:0;2497:79;;4687:55;;;;;;;;;;;;;;;;5943:87;;;;;;;;;;-1:-1:-1;6015:7:0;;;;;;;;;;;;-1:-1:-1;;;6015:7:0;;;;5943:87;;6359:167;;;;;;;;;;-1:-1:-1;6359:167:0;;;;;:::i;:::-;;:::i;4749:56::-;;;;;;;;;;;;;;;;13463:709;;;;;;;;;;;;;:::i;6534:143::-;;;;;;;;;;-1:-1:-1;6534:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6642:18:0;;;6615:7;6642:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6534:143;6685:161;6760:4;6777:39;175:10;6800:7;6809:6;6777:8;:39::i;:::-;-1:-1:-1;6834:4:0;6685:161;;;;;:::o;6129:95::-;6182:7;4607:13;4552:1;4607:2;:13;:::i;:::-;4595:25;;:9;:25;:::i;:::-;6202:14;;6129:95;:::o;6854:313::-;6952:4;6969:36;6979:6;6987:9;6998:6;6969:9;:36::i;:::-;7016:121;7025:6;175:10;7047:89;7085:6;7047:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7047:19:0;;;;;;:11;:19;;;;;;;;175:10;7047:33;;;;;;;;;;:37;:89::i;:::-;7016:8;:121::i;:::-;-1:-1:-1;7155:4:0;6854:313;;;;;:::o;12545:339::-;12637:10;;-1:-1:-1;;;;;12637:10:0;175;-1:-1:-1;;;;;12621:26:0;;12613:35;;;;;;12731:38;;-1:-1:-1;;;12731:38:0;;12763:4;12731:38;;;1569:51:1;12689:12:0;;12659:20;;-1:-1:-1;;;;;12731:23:0;;;;;1542:18:1;;12731:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12713:56;;12798:1;12788:7;:11;12780:42;;;;-1:-1:-1;;;12780:42:0;;5595:2:1;12780:42:0;;;5577:21:1;5634:2;5614:18;;;5607:30;-1:-1:-1;;;5653:18:1;;;5646:48;5711:18;;12780:42:0;;;;;;;;;12856:10;;12833:43;;-1:-1:-1;;;12833:43:0;;-1:-1:-1;;;;;12856:10:0;;;12833:43;;;5922:51:1;5989:18;;;5982:34;;;12833:22:0;;;;;;5895:18:1;;12833:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12602:282;;12545:339;:::o;12892:465::-;13020:10;;-1:-1:-1;;;;;13020:10:0;175;-1:-1:-1;;;;;13004:26:0;;12996:35;;;;;;13114:38;;-1:-1:-1;;;13114:38:0;;13146:4;13114:38;;;1569:51:1;13072:12:0;;13042:20;;-1:-1:-1;;;;;13114:23:0;;;;;1542:18:1;;13114:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13096:56;-1:-1:-1;13163:20:0;13186:39;13212:12;13186:21;13096:56;13198:8;13186:11;:21::i;:::-;:25;;:39::i;:::-;13163:62;;13255:12;13244:7;:23;;13236:54;;;;-1:-1:-1;;;13236:54:0;;5595:2:1;13236:54:0;;;5577:21:1;5634:2;5614:18;;;5607:30;-1:-1:-1;;;5653:18:1;;;5646:48;5711:18;;13236:54:0;5393:342:1;13236:54:0;13324:10;;13301:48;;-1:-1:-1;;;13301:48:0;;-1:-1:-1;;;;;13324:10:0;;;13301:48;;;5922:51:1;5989:18;;;5982:34;;;13301:22:0;;;;;;5895:18:1;;13301:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12985:372;;;12892:465;;;:::o;14180:352::-;14246:10;;-1:-1:-1;;;;;14246:10:0;175;-1:-1:-1;;;;;14230:26:0;;14222:35;;;;;;14307:4;14268:20;6325:18;;;:9;:18;;;;;;14327:16;;14324:75;;14357:30;14374:12;14357:16;:30::i;:::-;14428:21;14463:12;;14460:65;;14489:24;14502:10;14489:12;:24::i;:::-;14211:321;;14180:352::o;2711:148::-;2624:6;;-1:-1:-1;;;;;2624:6:0;175:10;2624:22;2616:67;;;;-1:-1:-1;;;2616:67:0;;;;;;;:::i;:::-;2818:1:::1;2802:6:::0;;2781:40:::1;::::0;-1:-1:-1;;;;;2802:6:0;;::::1;::::0;2781:40:::1;::::0;2818:1;;2781:40:::1;2849:1;2832:19:::0;;-1:-1:-1;;;;;;2832:19:0::1;::::0;;2711:148::o;12147:161::-;2624:6;;-1:-1:-1;;;;;2624:6:0;175:10;2624:22;2616:67;;;;-1:-1:-1;;;2616:67:0;;;;;;;:::i;:::-;4607:13:::1;4552:1;4607:2;:13;:::i;:::-;4595:25;::::0;:9:::1;:25;:::i;:::-;12200:12;:22:::0;4607:13:::1;4552:1;4607:2;:13;:::i;:::-;4595:25;::::0;:9:::1;:25;:::i;:::-;12233:14;:22:::0;12273:27:::1;4607:13;4552:1;4607:2;:13;:::i;:::-;4595:25;::::0;:9:::1;:25;:::i;:::-;12273:27;::::0;1361:25:1;;;1349:2;1334:18;12273:27:0::1;;;;;;;12147:161::o:0;12316:221::-;12385:10;;-1:-1:-1;;;;;12385:10:0;175;-1:-1:-1;;;;;12369:26:0;;12361:35;;;;;;12439:1;12415:21;:25;12407:60;;;;-1:-1:-1;;;12407:60:0;;6872:2:1;12407:60:0;;;6854:21:1;6911:2;6891:18;;;6884:30;-1:-1:-1;;;6930:18:1;;;6923:52;6992:18;;12407:60:0;6670:346:1;12407:60:0;12478:51;;12486:10;;12507:21;12478:51;;;;;;;;;12507:21;12486:10;12478:51;;;;;;;;;;;;;;;;;;;;;12316:221::o;6359:167::-;6437:4;6454:42;175:10;6478:9;6489:6;6454:9;:42::i;13463:709::-;2624:6;;-1:-1:-1;;;;;2624:6:0;175:10;2624:22;2616:67;;;;-1:-1:-1;;;2616:67:0;;;;;;;:::i;:::-;13525:11:::1;::::0;;;::::1;;;13524:12;13516:48;;;::::0;-1:-1:-1;;;13516:48:0;;7223:2:1;13516:48:0::1;::::0;::::1;7205:21:1::0;7262:2;7242:18;;;7235:30;7301:25;7281:18;;;7274:53;7344:18;;13516:48:0::1;7021:347:1::0;13516:48:0::1;13575:15;:80:::0;;-1:-1:-1;;;;;;13575:80:0::1;13612:42;13575:80:::0;;::::1;::::0;;;13666:58:::1;::::0;13683:4:::1;::::0;4607:13:::1;4552:1;4607:2;:13;:::i;:::-;4595:25;::::0;:9:::1;:25;:::i;13666:58::-;13769:15;;;;;;;;;-1:-1:-1::0;;;;;13769:15:0::1;-1:-1:-1::0;;;;;13769:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13751:55:0::1;;13815:4;13822:15;;;;;;;;;-1:-1:-1::0;;;;;13822:15:0::1;-1:-1:-1::0;;;;;13822:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13751:94;::::0;-1:-1:-1;;;;;;13751:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7859:15:1;;;13751:94:0::1;::::0;::::1;7841:34:1::0;7911:15;;7891:18;;;7884:43;7776:18;;13751:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13735:13;:110:::0;;-1:-1:-1;;;;;13735:110:0;;::::1;-1:-1:-1::0;;;;;;13735:110:0;;::::1;;::::0;;13856:15:::1;::::0;::::1;:31;13895:21;13926:4;13932:24;13926:4:::0;-1:-1:-1;;;;;6325:18:0;6298:7;6325:18;;;:9;:18;;;;;;;6232:119;13932:24:::1;13957:1;13959::::0;13961:7:::1;2535::::0;2562:6;-1:-1:-1;;;;;2562:6:0;;2497:79;13961:7:::1;13856:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13856:129:0;;;-1:-1:-1;;;;;8297:15:1;;;13856:129:0::1;::::0;::::1;8279:34:1::0;8329:18;;;8322:34;;;;8372:18;;;8365:34;;;;8415:18;;;8408:34;8479:15;;;8458:19;;;8451:44;13969:15:0::1;8511:19:1::0;;;8504:35;8213:19;;13856:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14003:13:0::1;::::0;14034:15:::1;::::0;13996:74:::1;::::0;-1:-1:-1;;;13996:74:0;;-1:-1:-1;;;;;14034:15:0;;::::1;13996:74;::::0;::::1;5922:51:1::0;-1:-1:-1;;5989:18:1;;;5982:34;14003:13:0;::::1;::::0;-1:-1:-1;13996:29:0::1;::::0;5895:18:1;;13996:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14081:11:0::1;:18:::0;;-1:-1:-1;;14110:18:0;;;;;14152:12:::1;14139:10;:25:::0;13463:709::o;7175:335::-;-1:-1:-1;;;;;7268:19:0;;7260:68;;;;-1:-1:-1;;;7260:68:0;;9342:2:1;7260:68:0;;;9324:21:1;9381:2;9361:18;;;9354:30;9420:34;9400:18;;;9393:62;-1:-1:-1;;;9471:18:1;;;9464:34;9515:19;;7260:68:0;9140:400:1;7260:68:0;-1:-1:-1;;;;;7347:21:0;;7339:68;;;;-1:-1:-1;;;7339:68:0;;9747:2:1;7339:68:0;;;9729:21:1;9786:2;9766:18;;;9759:30;9825:34;9805:18;;;9798:62;-1:-1:-1;;;9876:18:1;;;9869:32;9918:19;;7339:68:0;9545:398:1;7339:68:0;-1:-1:-1;;;;;7418:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7470:32;;1361:25:1;;;7470:32:0;;1334:18:1;7470:32:0;;;;;;;7175:335;;;:::o;7518:4015::-;-1:-1:-1;;;;;7606:18:0;;7598:68;;;;-1:-1:-1;;;7598:68:0;;10150:2:1;7598:68:0;;;10132:21:1;10189:2;10169:18;;;10162:30;10228:34;10208:18;;;10201:62;-1:-1:-1;;;10279:18:1;;;10272:35;10324:19;;7598:68:0;9948:401:1;7598:68:0;-1:-1:-1;;;;;7685:16:0;;7677:64;;;;-1:-1:-1;;;7677:64:0;;10556:2:1;7677:64:0;;;10538:21:1;10595:2;10575:18;;;10568:30;10634:34;10614:18;;;10607:62;-1:-1:-1;;;10685:18:1;;;10678:33;10728:19;;7677:64:0;10354:399:1;7677:64:0;7769:1;7760:6;:10;7752:64;;;;-1:-1:-1;;;7752:64:0;;10960:2:1;7752:64:0;;;10942:21:1;10999:2;10979:18;;;10972:30;11038:34;11018:18;;;11011:62;-1:-1:-1;;;11089:18:1;;;11082:39;11138:19;;7752:64:0;10758:405:1;7752:64:0;7829:17;2562:6;;-1:-1:-1;;;;;7867:15:0;;;2562:6;;7867:15;;;;:32;;-1:-1:-1;2535:7:0;2562:6;-1:-1:-1;;;;;7886:13:0;;;2562:6;;7886:13;;7867:32;:52;;;;-1:-1:-1;7909:10:0;;-1:-1:-1;;;;;7903:16:0;;;7909:10;;7903:16;;7867:52;7863:1574;;;7940:9;;7951:1;7940:12;7937:139;;7984:76;8056:3;7984:67;8006:15;;7996:9;;:25;7995:55;;8036:14;;7995:55;;;8023:12;;7995:55;7984:6;;:10;:67::i;:76::-;7972:88;;7937:139;8104:13;;-1:-1:-1;;;;;8096:21:0;;;8104:13;;8096:21;:55;;;;-1:-1:-1;8135:15:0;;-1:-1:-1;;;;;8121:30:0;;;8135:15;;8121:30;;8096:55;:82;;;;-1:-1:-1;;;;;;8156:22:0;;;;;;:18;:22;;;;;;;;8155:23;8096:82;8092:541;;;8240:12;;8230:6;:22;;8200:121;;;;-1:-1:-1;;;8200:121:0;;11370:2:1;8200:121:0;;;11352:21:1;11409:2;11389:18;;;11382:30;11448:27;11428:18;;;11421:55;11493:18;;8200:121:0;11168:349:1;8200:121:0;8396:14;;8386:6;8370:13;8380:2;-1:-1:-1;;;;;6325:18:0;6298:7;6325:18;;;:9;:18;;;;;;;6232:119;8370:13;:22;;;;:::i;:::-;:40;;8340:140;;;;-1:-1:-1;;;8340:140:0;;11854:2:1;8340:140:0;;;11836:21:1;11893:2;11873:18;;;11866:30;11932:28;11912:18;;;11905:56;11978:18;;8340:140:0;11652:350:1;8340:140:0;8511:76;8583:3;8511:67;8533:15;;8523:9;;:25;8522:55;;8563:14;;8522:55;;8511:76;8606:9;:11;;8499:88;;-1:-1:-1;8606:9:0;:11;;;:::i;:::-;;;;;;8092:541;8658:13;;-1:-1:-1;;;;;8652:19:0;;;8658:13;;8652:19;:44;;;;-1:-1:-1;;;;;;8675:21:0;;8691:4;8675:21;;8652:44;8649:182;;;8730:85;8811:3;8730:76;8754:16;;8742:9;;:28;8741:64;;8790:15;;8741:64;;;8774:13;;8730:6;;:10;:76::i;:85::-;8718:97;;8649:182;8896:4;8847:28;6325:18;;;:9;:18;;;;;;8940:6;;;;8939:7;:47;;;;-1:-1:-1;8973:13:0;;-1:-1:-1;;;;;8967:19:0;;;8973:13;;8967:19;8939:47;:62;;;;-1:-1:-1;8990:11:0;;;;;;;8939:62;:123;;;;;9045:17;;9022:20;:40;8939:123;:174;;;;;9095:18;;9083:9;;:30;8939:174;8917:509;;;9148:69;9165:51;9169:6;9177:38;9181:20;9203:11;;9177:3;:38::i;:::-;9165:3;:51::i;:::-;9148:16;:69::i;:::-;9265:21;9309:22;;9305:106;;9356:35;9369:21;9356:12;:35::i;:::-;9129:297;8917:509;7922:1515;7863:1574;-1:-1:-1;;;;;9468:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9496:22:0;;;;;;:18;:22;;;;;;;;9468:50;9467:90;;;;-1:-1:-1;;;;;;9536:21:0;;9552:4;9536:21;;9467:90;:126;;;;-1:-1:-1;;;;;;9574:19:0;;9588:4;9574:19;;9467:126;:166;;;;-1:-1:-1;9618:15:0;;-1:-1:-1;;;;;9610:23:0;;;9618:15;;9610:23;;9467:166;:204;;;;-1:-1:-1;9656:15:0;;-1:-1:-1;;;;;9650:21:0;;;9656:15;;9650:21;;9467:204;9449:289;;;9714:12;9698:13;:28;9449:289;-1:-1:-1;;;;;9768:24:0;;;;;;:18;:24;;;;;;;;9750:1413;;;9851:16;;9838:10;;:29;;;;:::i;:::-;9823:12;:44;:88;;;;-1:-1:-1;9896:15:0;;-1:-1:-1;;;;;9888:23:0;;;9896:15;;9888:23;;9823:88;:130;;;;-1:-1:-1;9938:15:0;;-1:-1:-1;;;;;9932:21:0;;;9938:15;;9932:21;;9823:130;9819:383;;;-1:-1:-1;;;;;10021:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10069:13;;;;;;;;;;:22;;;;;;10135:26;;;;;;10040:6;1361:25:1;;1349:2;1334:18;;1215:177;10135:26:0;;;;;;;;10180:7;7518:4015;;;:::o;9819:383::-;9750:1413;;;-1:-1:-1;;;;;10239:22:0;;;;;;:18;:22;;;;;;;;10234:918;;10286:13;;-1:-1:-1;;;;;10286:19:0;;;:13;;:19;10282:855;;-1:-1:-1;;;;;10357:15:0;;10330:24;10357:15;;;:9;:15;;;;;10429:13;;10411;;:32;;:17;:32::i;:::-;10395:13;;;:48;10479:12;10466:10;;;;:25;10282:855;;;-1:-1:-1;;;;;10578:13:0;;;10551:24;10578:13;;;:9;:13;;;;;10618;;10578;;10618:21;;;:13;;:21;10614:504;;10672:13;;;:18;10668:166;;10751:18;;10739:9;;:30;:67;;10794:12;10739:67;;;10772:19;:12;10789:1;10772:16;:19::i;:::-;10723:83;;10668:166;10614:504;;;-1:-1:-1;;;;;10909:15:0;;10890:16;10909:15;;;:9;:15;;;;;:24;10975:13;;10964:24;;;:46;;-1:-1:-1;10992:13:0;;:18;10964:46;10960:135;;;11043:24;;;10960:135;10863:255;10614:504;10517:620;10282:855;11179:13;;11175:171;;11255:4;11237:24;;;;:9;:24;;;;;;:39;;11266:9;11237:28;:39::i;:::-;11228:4;11210:24;;;;:9;:24;;;;;;;:66;;;;11296:38;;-1:-1:-1;;;;;11296:38:0;;;;;;;11324:9;1361:25:1;;1349:2;1334:18;;1215:177;11296:38:0;;;;;;;;11175:171;-1:-1:-1;;;;;11376:15:0;;;;;;:9;:15;;;;;;:27;;11396:6;11376:19;:27::i;:::-;-1:-1:-1;;;;;11358:15:0;;;;;;:9;:15;;;;;:45;11430:40;11448:21;:6;11459:9;11448:10;:21::i;:::-;-1:-1:-1;;;;;11430:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11414:13:0;;;;;;;:9;:13;;;;;:56;;;;11486:39;;;11503:21;:6;11514:9;11503:10;:21::i;:::-;11486:39;;1361:25:1;;;1349:2;1334:18;11486:39:0;1215:177:1;1389:190:0;1475:7;1511:12;1503:6;;;;1495:29;;;;-1:-1:-1;;;1495:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1535:9:0;1547:5;1551:1;1547;:5;:::i;:::-;1535:17;1389:190;-1:-1:-1;;;;;1389:190:0:o;1587:246::-;1645:7;1669:1;1674;1669:6;1665:47;;-1:-1:-1;1699:1:0;1692:8;;1665:47;1722:9;1734:5;1738:1;1734;:5;:::i;:::-;1722:17;-1:-1:-1;1767:1:0;1758:5;1762:1;1722:17;1758:5;:::i;:::-;:10;1750:56;;;;-1:-1:-1;;;1750:56:0;;12704:2:1;1750:56:0;;;12686:21:1;12743:2;12723:18;;;12716:30;12782:34;12762:18;;;12755:62;-1:-1:-1;;;12833:18:1;;;12826:31;12874:19;;1750:56:0;12502:397:1;1750:56:0;1824:1;1587:246;-1:-1:-1;;;1587:246:0:o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;11656:483::-;5388:6;:13;;-1:-1:-1;;5388:13:0;5397:4;5388:13;;;11758:16:::1;::::0;;11772:1:::1;11758:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11758:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11758:16:0::1;11734:40;;11803:4;11785;11790:1;11785:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11785:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11829:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11829:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11785:7;;11829:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11819:4;11824:1;11819:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11819:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11894:15:::1;::::0;11862:62:::1;::::0;11879:4:::1;::::0;11894:15:::1;11912:11:::0;11862:8:::1;:62::i;:::-;11935:15;::::0;:196:::1;::::0;-1:-1:-1;;;11935:196:0;;-1:-1:-1;;;;;11935:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12016:11;;11935:15:::1;::::0;12058:4;;12085::::1;::::0;12105:15:::1;::::0;11935:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5424:6:0;:14;;-1:-1:-1;;5424:14:0;;;-1:-1:-1;;;;11656:483:0:o;13365:92::-;13422:10;;:27;;-1:-1:-1;;;;;13422:10:0;;;;:27;;;;;13442:6;;13422:10;:27;:10;:27;13442:6;13422:10;:27;;;;;;;;;;;;;;;;;;;11543:105;11600:7;11630:1;11626;:5;11625:15;;11639:1;11625:15;;;-1:-1:-1;11635:1:0;11543:105;-1:-1:-1;11543:105:0:o;1245:136::-;1303:7;1330:43;1334:1;1337;1330:43;;;;;;;;;;;;;;;;;:3;:43::i;1058:179::-;1116:7;;1148:5;1152:1;1148;:5;:::i;:::-;1136:17;;1177:1;1172;:6;;1164:46;;;;-1:-1:-1;;;1164:46:0;;14355:2:1;1164:46:0;;;14337:21:1;14394:2;14374:18;;;14367:30;14433:29;14413:18;;;14406:57;14480:18;;1164:46:0;14153:351:1;1981:189:0;2067:7;2102:12;2095:5;2087:28;;;;-1:-1:-1;;;2087:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2126:9:0;2138:5;2142:1;2138;:5;:::i;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;2533:383::-;2610:6;2618;2626;2679:2;2667:9;2658:7;2654:23;2650:32;2647:52;;;2695:1;2692;2685:12;2647:52;2734:9;2721:23;2753:31;2778:5;2753:31;:::i;:::-;2803:5;2855:2;2840:18;;2827:32;;-1:-1:-1;2906:2:1;2891:18;;;2878:32;;2533:383;-1:-1:-1;;;2533:383:1:o;3129:388::-;3197:6;3205;3258:2;3246:9;3237:7;3233:23;3229:32;3226:52;;;3274:1;3271;3264:12;3226:52;3313:9;3300:23;3332:31;3357:5;3332:31;:::i;:::-;3382:5;-1:-1:-1;3439:2:1;3424:18;;3411:32;3452:33;3411:32;3452:33;:::i;:::-;3504:7;3494:17;;;3129:388;;;;;:::o;3522:127::-;3583:10;3578:3;3574:20;3571:1;3564:31;3614:4;3611:1;3604:15;3638:4;3635:1;3628:15;3654:416;3743:1;3780:5;3743:1;3794:270;3815:7;3805:8;3802:21;3794:270;;;3874:4;3870:1;3866:6;3862:17;3856:4;3853:27;3850:53;;;3883:18;;:::i;:::-;3933:7;3923:8;3919:22;3916:55;;;3953:16;;;;3916:55;4032:22;;;;3992:15;;;;3794:270;;;3798:3;3654:416;;;;;:::o;4075:806::-;4124:5;4154:8;4144:80;;-1:-1:-1;4195:1:1;4209:5;;4144:80;4243:4;4233:76;;-1:-1:-1;4280:1:1;4294:5;;4233:76;4325:4;4343:1;4338:59;;;;4411:1;4406:130;;;;4318:218;;4338:59;4368:1;4359:10;;4382:5;;;4406:130;4443:3;4433:8;4430:17;4427:43;;;4450:18;;:::i;:::-;-1:-1:-1;;4506:1:1;4492:16;;4521:5;;4318:218;;4620:2;4610:8;4607:16;4601:3;4595:4;4592:13;4588:36;4582:2;4572:8;4569:16;4564:2;4558:4;4555:12;4551:35;4548:77;4545:159;;;-1:-1:-1;4657:19:1;;;4689:5;;4545:159;4736:34;4761:8;4755:4;4736:34;:::i;:::-;4806:6;4802:1;4798:6;4794:19;4785:7;4782:32;4779:58;;;4817:18;;:::i;:::-;4855:20;;4075:806;-1:-1:-1;;;4075:806:1:o;4886:140::-;4944:5;4973:47;5014:4;5004:8;5000:19;4994:4;4973:47;:::i;5031:168::-;5104:9;;;5135;;5152:15;;;5146:22;;5132:37;5122:71;;5173:18;;:::i;5204:184::-;5274:6;5327:2;5315:9;5306:7;5302:23;5298:32;5295:52;;;5343:1;5340;5333:12;5295:52;-1:-1:-1;5366:16:1;;5204:184;-1:-1:-1;5204:184:1:o;6027:277::-;6094:6;6147:2;6135:9;6126:7;6122:23;6118:32;6115:52;;;6163:1;6160;6153:12;6115:52;6195:9;6189:16;6248:5;6241:13;6234:21;6227:5;6224:32;6214:60;;6270:1;6267;6260:12;6309:356;6511:2;6493:21;;;6530:18;;;6523:30;6589:34;6584:2;6569:18;;6562:62;6656:2;6641:18;;6309:356::o;7373:251::-;7443:6;7496:2;7484:9;7475:7;7471:23;7467:32;7464:52;;;7512:1;7509;7502:12;7464:52;7544:9;7538:16;7563:31;7588:5;7563:31;:::i;8550:306::-;8638:6;8646;8654;8707:2;8695:9;8686:7;8682:23;8678:32;8675:52;;;8723:1;8720;8713:12;8675:52;8752:9;8746:16;8736:26;;8802:2;8791:9;8787:18;8781:25;8771:35;;8846:2;8835:9;8831:18;8825:25;8815:35;;8550:306;;;;;:::o;11522:125::-;11587:9;;;11608:10;;;11605:36;;;11621:18;;:::i;12007:135::-;12046:3;12067:17;;;12064:43;;12087:18;;:::i;:::-;-1:-1:-1;12134:1:1;12123:13;;12007:135::o;12147:128::-;12214:9;;;12235:11;;;12232:37;;;12249:18;;:::i;12280:217::-;12320:1;12346;12336:132;;12390:10;12385:3;12381:20;12378:1;12371:31;12425:4;12422:1;12415:15;12453:4;12450:1;12443:15;12336:132;-1:-1:-1;12482:9:1;;12280:217::o;13036:127::-;13097:10;13092:3;13088:20;13085:1;13078:31;13128:4;13125:1;13118:15;13152:4;13149:1;13142:15;13168:980;13430:4;13478:3;13467:9;13463:19;13509:6;13498:9;13491:25;13535:2;13573:6;13568:2;13557:9;13553:18;13546:34;13616:3;13611:2;13600:9;13596:18;13589:31;13640:6;13675;13669:13;13706:6;13698;13691:22;13744:3;13733:9;13729:19;13722:26;;13783:2;13775:6;13771:15;13757:29;;13804:1;13814:195;13828:6;13825:1;13822:13;13814:195;;;13893:13;;-1:-1:-1;;;;;13889:39:1;13877:52;;13984:15;;;;13949:12;;;;13925:1;13843:9;13814:195;;;-1:-1:-1;;;;;;;14065:32:1;;;;14060:2;14045:18;;14038:60;-1:-1:-1;;;14129:3:1;14114:19;14107:35;14026:3;13168:980;-1:-1:-1;;;13168:980:1:o
Swarm Source
ipfs://a860660a452fb5532dcf4e4a01e6984cd8ea7f2aa7eeed8a061740b13e417ab0
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.