Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 LUX
Holders
133
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
100,000 LUXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
LUXContract
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-08 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(address(msg.sender)); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _decimals = 18; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, 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 = _totalSupply + amount; _balances[account] = _balances[account] + amount; emit Transfer(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); _balances[account] = _balances[account] - amount; _totalSupply = _totalSupply - amount; emit Transfer(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 _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } 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 { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function quote( uint amountA, uint reserveA, uint reserveB ) external pure returns (uint amountB); function getAmountOut( uint amountIn, uint reserveIn, uint reserveOut ) external pure returns (uint amountOut); function getAmountIn( uint amountOut, uint reserveIn, uint reserveOut ) external pure returns (uint amountIn); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); function getAmountsIn( uint amountOut, address[] calldata path ) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract LUXContract is ERC20, Ownable { uint256 public immutable initialSupply; uint256 public immutable percentageBase; uint256 public blockStart; uint256 public timeStart; address public routerAddress; uint256 public maxTax; uint256 public buyTax; uint256 public sellTax; address public taxWalletMarketing; address public taxWalletAcquisition; uint256 public maxWallet; uint256 public maxTx; uint256 public txCooldown; bool public isTxCooldownEnabled; uint256 public taxCollected; uint256 public taxThreshold; uint256 public lastTaxBlock; uint256 initialLiquidity; mapping(address => uint256) public lastTxTimestamp; mapping(address => bool) public exempt; mapping(address => bool) public dex; bool public tradingEnabled = false; constructor() ERC20("Luxury Libations", "LUX") Ownable() { initialSupply = 10_000_000 ether; percentageBase = 100_000; routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; maxTax = 30_000; // 30% buyTax = 30_000; // 30% sellTax = 30_000; // 30% taxWalletMarketing = 0xcEB01D38ee9E2aF28FF26385B0Fa35a97236Ae88; taxWalletAcquisition = 0x9944B898826B267904887a5ddc3b1B22453c0481; maxWallet = 1_000; // 1% maxTx = 1_000; // 1% txCooldown = 15 seconds; taxThreshold = 5 minutes; isTxCooldownEnabled = true; exempt[address(this)] = true; initialLiquidity = 1_000_000 ether; _mint(address(this), initialLiquidity); _mint(msg.sender, initialSupply - initialLiquidity); require( totalSupply() == initialSupply, "Initial supply does not match." ); } function addInitialLiquidity() external payable onlyOwner { require(blockStart == 0, "Liquidity already added."); IUniswapV2Router02 router = IUniswapV2Router02(routerAddress); _approve(address(this), routerAddress, ~uint256(0)); address pair = IUniswapV2Factory(router.factory()).createPair( address(this), router.WETH() ); dex[pair] = true; router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp + 15 minutes ); blockStart = block.number; timeStart = block.timestamp; } function setBuyTax(uint256 _tax) external onlyOwner { require(_tax <= maxTax, "Tax exceeds maxTax."); buyTax = _tax; maxTax = _tax; } function setSellTax(uint256 _tax) external onlyOwner { require(_tax <= maxTax, "Tax exceeds maxTax."); sellTax = _tax; maxTax = _tax; } function setMaxWallet(uint256 _maxWallet) external onlyOwner { maxWallet = _maxWallet; } function setMaxTx(uint256 _maxTx) external onlyOwner { maxTx = _maxTx; } function setTxCooldownEnabled(bool _enabled) external onlyOwner { isTxCooldownEnabled = _enabled; } function burn(uint256 amount) external { _burn(msg.sender, amount); } function _transfer( address from, address to, uint256 amount ) internal override { uint256 transferAmount = amount; if (tradingEnabled == false) { require( from == owner() || from == address(this) || to == address(this), "Trading not open yet" ); } if (blockStart == 0) { require( from == owner() || from == address(this) || to == address(this), "Liquidity not added." ); } if (dex[from] || dex[to]) { uint256 taxRate; if (exempt[from] || exempt[to]) { taxRate = 0; } else if (dex[from]) { taxRate = buyTax; } else if (dex[to]) { taxRate = sellTax; } else { taxRate = 0; } uint256 taxAmount = (amount * taxRate) / percentageBase; transferAmount = amount - taxAmount; super._transfer(from, address(this), taxAmount); taxCollected += taxAmount; if (!exempt[from]) { require( maxTx == 0 || (dex[to] && from == address(this)) || amount <= (maxTx * initialSupply) / percentageBase, "Transfer amount exceeds maxTx." ); if (dex[from] || dex[to]) { require( !isTxCooldownEnabled || dex[from] || (dex[to] && from == address(this)) || block.timestamp - lastTxTimestamp[from] >= txCooldown, "Transfer cooldown not expired." ); lastTxTimestamp[from] = block.timestamp; } } } if (!dex[to] && !exempt[to]) { require( maxWallet > 0 || dex[to] || to == address(this) || balanceOf(to) + transferAmount <= (maxWallet * initialSupply) / percentageBase, "Recipient wallet balance exceeds maxWallet." ); } if ( !dex[from] && taxCollected > 0 && block.timestamp - lastTaxBlock > taxThreshold ) { lastTaxBlock = block.timestamp; uint256 toSwap = taxCollected; taxCollected = 0; _swapTokensToEth(toSwap / 2, taxWalletMarketing); _swapTokensToEth(toSwap / 2, taxWalletAcquisition); } super._transfer(from, to, transferAmount); } function _swapTokensToEth(uint256 tokenAmount, address recipient) private { if (tokenAmount > balanceOf(address(this))) { tokenAmount = balanceOf(address(this)); } IUniswapV2Router02 router = IUniswapV2Router02(routerAddress); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETH( tokenAmount, 0, path, recipient, block.timestamp + 15 minutes ); } function enableTrading() external onlyOwner { require(!tradingEnabled, "Trading is already enabled"); tradingEnabled = true; } 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":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":"addInitialLiquidity","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":"blockStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dex","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTxCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTaxBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","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":"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":"percentageBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTxCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWalletAcquisition","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWalletMarketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052601a805460ff191690553480156200001a575f80fd5b506040518060400160405280601081526020016f4c7578757279204c69626174696f6e7360801b81525060405180604001604052806003815260200162098aab60eb1b8152508160039081620000719190620003da565b506004620000808282620003da565b50506005805460ff1916601217905550620000983390565b60058054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36a084595161401484a000000608052620186a060a052600980546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155617530600a819055600b819055600c55600d8054821673ceb01d38ee9e2af28ff26385b0fa35a97236ae88179055600e8054909116739944b898826b267904887a5ddc3b1b22453c04811790556103e8600f81815560109190915560115561012c6014556012805460ff199081166001908117909255305f8181526018602052604090208054909216909217905569d3c21bcecceda10000006016819055620001d8919062000254565b620001f533601654608051620001ef9190620004ba565b62000254565b608051600254146200024e5760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c20737570706c7920646f6573206e6f74206d617463682e000060448201526064015b60405180910390fd5b620004ec565b6001600160a01b038216620002ac5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000245565b80600254620002bc9190620004d6565b6002556001600160a01b0382165f90815260208190526040902054620002e4908290620004d6565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200036657607f821691505b6020821081036200038557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200033857805f5260205f20601f840160051c81016020851015620003b25750805b601f840160051c820191505b81811015620003d3575f8155600101620003be565b5050505050565b81516001600160401b03811115620003f657620003f66200033d565b6200040e8162000407845462000351565b846200038b565b602080601f83116001811462000444575f84156200042c5750858301515b5f19600386901b1c1916600185901b1785556200049e565b5f85815260208120601f198616915b82811015620004745788860151825594840194600190910190840162000453565b50858210156200049257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004d057620004d0620004a6565b92915050565b80820180821115620004d057620004d0620004a6565b60805160a051611e60620005315f395f81816102e9015281816111c40152818161128601526114ec01525f8181610393015281816112a7015261150d0152611e605ff3fe60806040526004361061024c575f3560e01c806377d1440d11610134578063a9059cbb116100b3578063dcafac0911610078578063dcafac09146106b0578063dd62ed3e146106c5578063f0c4201014610709578063f1320af214610728578063f8b45b0514610756578063fd74d2941461076b575f80fd5b8063a9059cbb1461061f578063ae4abdc91461063e578063bc3371821461065d578063cc1776d31461067c578063dc1052e214610691575f80fd5b80638cd09d50116100f95780638cd09d50146105965780638da5cb5b146105b5578063916a47f7146105d757806395d89b41146105ec578063a457c2d714610600575f80fd5b806377d1440d1461052a5780637aceaa331461053f5780637b2feaaa14610554578063843da248146105695780638a8c523c14610582575f80fd5b806342966c68116101cb5780635d0044ca116101905780635d0044ca1461047a578063608b2899146104995780636d8813c5146104b857806370a08231146104cd578063715018a6146105015780637437681e14610515575f80fd5b806342966c68146103d45780634551bbe9146103f35780634a0da6731461041e5780634ada218b1461044c5780634f7041a514610465575f80fd5b806323b872dd1161021157806323b872dd1461030b578063313ce5671461032a5780633268cc561461034b578063378dc3dc1461038257806339509351146103b5575f80fd5b80630210a83d1461025757806306fdde0314610261578063095ea7b31461028b57806318160ddd146102ba57806322ab155e146102d8575f80fd5b3661025357005b5f80fd5b61025f610780565b005b34801561026c575f80fd5b50610275610a5a565b6040516102829190611a5e565b60405180910390f35b348015610296575f80fd5b506102aa6102a5366004611abe565b610aea565b6040519015158152602001610282565b3480156102c5575f80fd5b506002545b604051908152602001610282565b3480156102e3575f80fd5b506102ca7f000000000000000000000000000000000000000000000000000000000000000081565b348015610316575f80fd5b506102aa610325366004611ae8565b610b00565b348015610335575f80fd5b5060055460405160ff9091168152602001610282565b348015610356575f80fd5b5060095461036a906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b34801561038d575f80fd5b506102ca7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c0575f80fd5b506102aa6103cf366004611abe565b610b50565b3480156103df575f80fd5b5061025f6103ee366004611b26565b610b86565b3480156103fe575f80fd5b506102ca61040d366004611b3d565b60176020525f908152604090205481565b348015610429575f80fd5b506102aa610438366004611b3d565b60196020525f908152604090205460ff1681565b348015610457575f80fd5b50601a546102aa9060ff1681565b348015610470575f80fd5b506102ca600b5481565b348015610485575f80fd5b5061025f610494366004611b26565b610b93565b3480156104a4575f80fd5b50600d5461036a906001600160a01b031681565b3480156104c3575f80fd5b506102ca600a5481565b3480156104d8575f80fd5b506102ca6104e7366004611b3d565b6001600160a01b03165f9081526020819052604090205490565b34801561050c575f80fd5b5061025f610bc8565b348015610520575f80fd5b506102ca60105481565b348015610535575f80fd5b506102ca60145481565b34801561054a575f80fd5b506102ca60155481565b34801561055f575f80fd5b506102ca60075481565b348015610574575f80fd5b506012546102aa9060ff1681565b34801561058d575f80fd5b5061025f610c47565b3480156105a1575f80fd5b5061025f6105b0366004611b26565b610cd9565b3480156105c0575f80fd5b5060055461010090046001600160a01b031661036a565b3480156105e2575f80fd5b506102ca60135481565b3480156105f7575f80fd5b50610275610d5b565b34801561060b575f80fd5b506102aa61061a366004611abe565b610d6a565b34801561062a575f80fd5b506102aa610639366004611abe565b610da0565b348015610649575f80fd5b5061025f610658366004611b5f565b610dac565b348015610668575f80fd5b5061025f610677366004611b26565b610def565b348015610687575f80fd5b506102ca600c5481565b34801561069c575f80fd5b5061025f6106ab366004611b26565b610e24565b3480156106bb575f80fd5b506102ca60115481565b3480156106d0575f80fd5b506102ca6106df366004611b7e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610714575f80fd5b50600e5461036a906001600160a01b031681565b348015610733575f80fd5b506102aa610742366004611b3d565b60186020525f908152604090205460ff1681565b348015610761575f80fd5b506102ca600f5481565b348015610776575f80fd5b506102ca60085481565b6005546001600160a01b036101009091041633146107b95760405162461bcd60e51b81526004016107b090611bb5565b60405180910390fd5b600754156108095760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920616c72656164792061646465642e000000000000000060448201526064016107b0565b6009546001600160a01b031661082130825f19610ea6565b5f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108829190611bea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611bea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190611bea565b6001600160a01b038082165f908152601960205260409020805460ff19166001179055909150821663f305d71947306109ac816001600160a01b03165f9081526020819052604090205490565b5f80336109bb42610384611c19565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610a26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4b9190611c2c565b50504360075550504260085550565b606060038054610a6990611c57565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9590611c57565b8015610ae05780601f10610ab757610100808354040283529160200191610ae0565b820191905f5260205f20905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b5f610af6338484610ea6565b5060015b92915050565b5f610b0c848484610fca565b6001600160a01b0384165f90815260016020908152604080832033808552925290912054610b46918691610b41908690611c8f565b610ea6565b5060019392505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c19565b610b903382611673565b50565b6005546001600160a01b03610100909104163314610bc35760405162461bcd60e51b81526004016107b090611bb5565b600f55565b6005546001600160a01b03610100909104163314610bf85760405162461bcd60e51b81526004016107b090611bb5565b6005546040515f9161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610c775760405162461bcd60e51b81526004016107b090611bb5565b601a5460ff1615610cca5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107b0565b601a805460ff19166001179055565b6005546001600160a01b03610100909104163314610d095760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610d515760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600c819055600a55565b606060048054610a6990611c57565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c8f565b5f610af6338484610fca565b6005546001600160a01b03610100909104163314610ddc5760405162461bcd60e51b81526004016107b090611bb5565b6012805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610e1f5760405162461bcd60e51b81526004016107b090611bb5565b601055565b6005546001600160a01b03610100909104163314610e545760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610e9c5760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600b819055600a55565b6001600160a01b038316610f085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b0565b6001600160a01b038216610f695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b601a54819060ff1615155f03611059576005546001600160a01b0385811661010090920416148061100357506001600160a01b03841630145b8061101657506001600160a01b03831630145b6110595760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107b0565b6007545f036110e1576005546001600160a01b0385811661010090920416148061108b57506001600160a01b03841630145b8061109e57506001600160a01b03831630145b6110e15760405162461bcd60e51b81526020600482015260146024820152732634b8bab4b234ba3c903737ba1030b23232b21760611b60448201526064016107b0565b6001600160a01b0384165f9081526019602052604090205460ff168061111e57506001600160a01b0383165f9081526019602052604090205460ff165b15611465576001600160a01b0384165f9081526018602052604081205460ff168061116057506001600160a01b0384165f9081526018602052604090205460ff165b1561116c57505f6111c1565b6001600160a01b0385165f9081526019602052604090205460ff16156111955750600b546111c1565b6001600160a01b0384165f9081526019602052604090205460ff16156111be5750600c546111c1565b505f5b5f7f00000000000000000000000000000000000000000000000000000000000000006111ed8386611ca2565b6111f79190611cb9565b90506112038185611c8f565b9250611210863083611763565b8060135f8282546112219190611c19565b90915550506001600160a01b0386165f9081526018602052604090205460ff1661146257601054158061127e57506001600160a01b0385165f9081526019602052604090205460ff16801561127e57506001600160a01b03861630145b806112e157507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006010546112d39190611ca2565b6112dd9190611cb9565b8411155b61132d5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220616d6f756e742065786365656473206d617854782e000060448201526064016107b0565b6001600160a01b0386165f9081526019602052604090205460ff168061136a57506001600160a01b0385165f9081526019602052604090205460ff165b156114625760125460ff16158061139857506001600160a01b0386165f9081526019602052604090205460ff165b806113cd57506001600160a01b0385165f9081526019602052604090205460ff1680156113cd57506001600160a01b03861630145b806113fb57506011546001600160a01b0387165f908152601760205260409020546113f89042611c8f565b10155b6114475760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220636f6f6c646f776e206e6f7420657870697265642e000060448201526064016107b0565b6001600160a01b0386165f9081526017602052604090204290555b50505b6001600160a01b0383165f9081526019602052604090205460ff161580156114a557506001600160a01b0383165f9081526018602052604090205460ff16155b156115cf575f600f5411806114d157506001600160a01b0383165f9081526019602052604090205460ff165b806114e457506001600160a01b03831630145b8061156f57507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000600f546115399190611ca2565b6115439190611cb9565b81611562856001600160a01b03165f9081526020819052604090205490565b61156c9190611c19565b11155b6115cf5760405162461bcd60e51b815260206004820152602b60248201527f526563697069656e742077616c6c65742062616c616e6365206578636565647360448201526a1036b0bc2bb0b63632ba1760a91b60648201526084016107b0565b6001600160a01b0384165f9081526019602052604090205460ff161580156115f857505f601354115b8015611611575060145460155461160f9042611c8f565b115b156116625742601555601380545f909155611641611630600283611cb9565b600d546001600160a01b03166118cb565b61166061164f600283611cb9565b600e546001600160a01b03166118cb565b505b61166d848483611763565b50505050565b6001600160a01b0382166116d35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107b0565b6001600160a01b0382165f908152602081905260409020546116f6908290611c8f565b6001600160a01b0383165f9081526020819052604090205560025461171c908290611c8f565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166117c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b0565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b0565b6001600160a01b0383165f9081526020819052604090205461184c908290611c8f565b6001600160a01b038085165f90815260208190526040808220939093559084168152205461187b908290611c19565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610fbd565b305f908152602081905260409020548211156118f357305f9081526020819052604090205491505b6009546040805160028082526060820183526001600160a01b03909316925f9260208301908036833701905050905030815f8151811061193557611935611cec565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b59190611bea565b816001815181106119c8576119c8611cec565b6001600160a01b03928316602091820292909201015282166318cbafe5855f84876119f542610384611c19565b6040518663ffffffff1660e01b8152600401611a15959493929190611d00565b5f604051808303815f875af1158015611a30573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a579190810190611d71565b5050505050565b5f602080835283518060208501525f5b81811015611a8a57858101830151858201604001528201611a6e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b90575f80fd5b5f8060408385031215611acf575f80fd5b8235611ada81611aaa565b946020939093013593505050565b5f805f60608486031215611afa575f80fd5b8335611b0581611aaa565b92506020840135611b1581611aaa565b929592945050506040919091013590565b5f60208284031215611b36575f80fd5b5035919050565b5f60208284031215611b4d575f80fd5b8135611b5881611aaa565b9392505050565b5f60208284031215611b6f575f80fd5b81358015158114611b58575f80fd5b5f8060408385031215611b8f575f80fd5b8235611b9a81611aaa565b91506020830135611baa81611aaa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bfa575f80fd5b8151611b5881611aaa565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610afa57610afa611c05565b5f805f60608486031215611c3e575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611c6b57607f821691505b602082108103611c8957634e487b7160e01b5f52602260045260245ffd5b50919050565b81810381811115610afa57610afa611c05565b8082028115828204841417610afa57610afa611c05565b5f82611cd357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d505784516001600160a01b031683529383019391830191600101611d2b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f6020808385031215611d82575f80fd5b825167ffffffffffffffff80821115611d99575f80fd5b818501915085601f830112611dac575f80fd5b815181811115611dbe57611dbe611cd8565b8060051b604051601f19603f83011681018181108582111715611de357611de3611cd8565b604052918252848201925083810185019188831115611e00575f80fd5b938501935b82851015611e1e57845184529385019392850192611e05565b9897505050505050505056fea2646970667358221220aacf061f8798c0ee2e77258c464b028edfb2b67d87345b432864faaffbe9f96364736f6c63430008180033
Deployed Bytecode
0x60806040526004361061024c575f3560e01c806377d1440d11610134578063a9059cbb116100b3578063dcafac0911610078578063dcafac09146106b0578063dd62ed3e146106c5578063f0c4201014610709578063f1320af214610728578063f8b45b0514610756578063fd74d2941461076b575f80fd5b8063a9059cbb1461061f578063ae4abdc91461063e578063bc3371821461065d578063cc1776d31461067c578063dc1052e214610691575f80fd5b80638cd09d50116100f95780638cd09d50146105965780638da5cb5b146105b5578063916a47f7146105d757806395d89b41146105ec578063a457c2d714610600575f80fd5b806377d1440d1461052a5780637aceaa331461053f5780637b2feaaa14610554578063843da248146105695780638a8c523c14610582575f80fd5b806342966c68116101cb5780635d0044ca116101905780635d0044ca1461047a578063608b2899146104995780636d8813c5146104b857806370a08231146104cd578063715018a6146105015780637437681e14610515575f80fd5b806342966c68146103d45780634551bbe9146103f35780634a0da6731461041e5780634ada218b1461044c5780634f7041a514610465575f80fd5b806323b872dd1161021157806323b872dd1461030b578063313ce5671461032a5780633268cc561461034b578063378dc3dc1461038257806339509351146103b5575f80fd5b80630210a83d1461025757806306fdde0314610261578063095ea7b31461028b57806318160ddd146102ba57806322ab155e146102d8575f80fd5b3661025357005b5f80fd5b61025f610780565b005b34801561026c575f80fd5b50610275610a5a565b6040516102829190611a5e565b60405180910390f35b348015610296575f80fd5b506102aa6102a5366004611abe565b610aea565b6040519015158152602001610282565b3480156102c5575f80fd5b506002545b604051908152602001610282565b3480156102e3575f80fd5b506102ca7f00000000000000000000000000000000000000000000000000000000000186a081565b348015610316575f80fd5b506102aa610325366004611ae8565b610b00565b348015610335575f80fd5b5060055460405160ff9091168152602001610282565b348015610356575f80fd5b5060095461036a906001600160a01b031681565b6040516001600160a01b039091168152602001610282565b34801561038d575f80fd5b506102ca7f000000000000000000000000000000000000000000084595161401484a00000081565b3480156103c0575f80fd5b506102aa6103cf366004611abe565b610b50565b3480156103df575f80fd5b5061025f6103ee366004611b26565b610b86565b3480156103fe575f80fd5b506102ca61040d366004611b3d565b60176020525f908152604090205481565b348015610429575f80fd5b506102aa610438366004611b3d565b60196020525f908152604090205460ff1681565b348015610457575f80fd5b50601a546102aa9060ff1681565b348015610470575f80fd5b506102ca600b5481565b348015610485575f80fd5b5061025f610494366004611b26565b610b93565b3480156104a4575f80fd5b50600d5461036a906001600160a01b031681565b3480156104c3575f80fd5b506102ca600a5481565b3480156104d8575f80fd5b506102ca6104e7366004611b3d565b6001600160a01b03165f9081526020819052604090205490565b34801561050c575f80fd5b5061025f610bc8565b348015610520575f80fd5b506102ca60105481565b348015610535575f80fd5b506102ca60145481565b34801561054a575f80fd5b506102ca60155481565b34801561055f575f80fd5b506102ca60075481565b348015610574575f80fd5b506012546102aa9060ff1681565b34801561058d575f80fd5b5061025f610c47565b3480156105a1575f80fd5b5061025f6105b0366004611b26565b610cd9565b3480156105c0575f80fd5b5060055461010090046001600160a01b031661036a565b3480156105e2575f80fd5b506102ca60135481565b3480156105f7575f80fd5b50610275610d5b565b34801561060b575f80fd5b506102aa61061a366004611abe565b610d6a565b34801561062a575f80fd5b506102aa610639366004611abe565b610da0565b348015610649575f80fd5b5061025f610658366004611b5f565b610dac565b348015610668575f80fd5b5061025f610677366004611b26565b610def565b348015610687575f80fd5b506102ca600c5481565b34801561069c575f80fd5b5061025f6106ab366004611b26565b610e24565b3480156106bb575f80fd5b506102ca60115481565b3480156106d0575f80fd5b506102ca6106df366004611b7e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610714575f80fd5b50600e5461036a906001600160a01b031681565b348015610733575f80fd5b506102aa610742366004611b3d565b60186020525f908152604090205460ff1681565b348015610761575f80fd5b506102ca600f5481565b348015610776575f80fd5b506102ca60085481565b6005546001600160a01b036101009091041633146107b95760405162461bcd60e51b81526004016107b090611bb5565b60405180910390fd5b600754156108095760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920616c72656164792061646465642e000000000000000060448201526064016107b0565b6009546001600160a01b031661082130825f19610ea6565b5f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108829190611bea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611bea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190611bea565b6001600160a01b038082165f908152601960205260409020805460ff19166001179055909150821663f305d71947306109ac816001600160a01b03165f9081526020819052604090205490565b5f80336109bb42610384611c19565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610a26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4b9190611c2c565b50504360075550504260085550565b606060038054610a6990611c57565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9590611c57565b8015610ae05780601f10610ab757610100808354040283529160200191610ae0565b820191905f5260205f20905b815481529060010190602001808311610ac357829003601f168201915b5050505050905090565b5f610af6338484610ea6565b5060015b92915050565b5f610b0c848484610fca565b6001600160a01b0384165f90815260016020908152604080832033808552925290912054610b46918691610b41908690611c8f565b610ea6565b5060019392505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c19565b610b903382611673565b50565b6005546001600160a01b03610100909104163314610bc35760405162461bcd60e51b81526004016107b090611bb5565b600f55565b6005546001600160a01b03610100909104163314610bf85760405162461bcd60e51b81526004016107b090611bb5565b6005546040515f9161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610c775760405162461bcd60e51b81526004016107b090611bb5565b601a5460ff1615610cca5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107b0565b601a805460ff19166001179055565b6005546001600160a01b03610100909104163314610d095760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610d515760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600c819055600a55565b606060048054610a6990611c57565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610af6918590610b41908690611c8f565b5f610af6338484610fca565b6005546001600160a01b03610100909104163314610ddc5760405162461bcd60e51b81526004016107b090611bb5565b6012805460ff1916911515919091179055565b6005546001600160a01b03610100909104163314610e1f5760405162461bcd60e51b81526004016107b090611bb5565b601055565b6005546001600160a01b03610100909104163314610e545760405162461bcd60e51b81526004016107b090611bb5565b600a54811115610e9c5760405162461bcd60e51b81526020600482015260136024820152722a30bc1032bc31b2b2b2399036b0bc2a30bc1760691b60448201526064016107b0565b600b819055600a55565b6001600160a01b038316610f085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b0565b6001600160a01b038216610f695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b601a54819060ff1615155f03611059576005546001600160a01b0385811661010090920416148061100357506001600160a01b03841630145b8061101657506001600160a01b03831630145b6110595760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107b0565b6007545f036110e1576005546001600160a01b0385811661010090920416148061108b57506001600160a01b03841630145b8061109e57506001600160a01b03831630145b6110e15760405162461bcd60e51b81526020600482015260146024820152732634b8bab4b234ba3c903737ba1030b23232b21760611b60448201526064016107b0565b6001600160a01b0384165f9081526019602052604090205460ff168061111e57506001600160a01b0383165f9081526019602052604090205460ff165b15611465576001600160a01b0384165f9081526018602052604081205460ff168061116057506001600160a01b0384165f9081526018602052604090205460ff165b1561116c57505f6111c1565b6001600160a01b0385165f9081526019602052604090205460ff16156111955750600b546111c1565b6001600160a01b0384165f9081526019602052604090205460ff16156111be5750600c546111c1565b505f5b5f7f00000000000000000000000000000000000000000000000000000000000186a06111ed8386611ca2565b6111f79190611cb9565b90506112038185611c8f565b9250611210863083611763565b8060135f8282546112219190611c19565b90915550506001600160a01b0386165f9081526018602052604090205460ff1661146257601054158061127e57506001600160a01b0385165f9081526019602052604090205460ff16801561127e57506001600160a01b03861630145b806112e157507f00000000000000000000000000000000000000000000000000000000000186a07f000000000000000000000000000000000000000000084595161401484a0000006010546112d39190611ca2565b6112dd9190611cb9565b8411155b61132d5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220616d6f756e742065786365656473206d617854782e000060448201526064016107b0565b6001600160a01b0386165f9081526019602052604090205460ff168061136a57506001600160a01b0385165f9081526019602052604090205460ff165b156114625760125460ff16158061139857506001600160a01b0386165f9081526019602052604090205460ff165b806113cd57506001600160a01b0385165f9081526019602052604090205460ff1680156113cd57506001600160a01b03861630145b806113fb57506011546001600160a01b0387165f908152601760205260409020546113f89042611c8f565b10155b6114475760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657220636f6f6c646f776e206e6f7420657870697265642e000060448201526064016107b0565b6001600160a01b0386165f9081526017602052604090204290555b50505b6001600160a01b0383165f9081526019602052604090205460ff161580156114a557506001600160a01b0383165f9081526018602052604090205460ff16155b156115cf575f600f5411806114d157506001600160a01b0383165f9081526019602052604090205460ff165b806114e457506001600160a01b03831630145b8061156f57507f00000000000000000000000000000000000000000000000000000000000186a07f000000000000000000000000000000000000000000084595161401484a000000600f546115399190611ca2565b6115439190611cb9565b81611562856001600160a01b03165f9081526020819052604090205490565b61156c9190611c19565b11155b6115cf5760405162461bcd60e51b815260206004820152602b60248201527f526563697069656e742077616c6c65742062616c616e6365206578636565647360448201526a1036b0bc2bb0b63632ba1760a91b60648201526084016107b0565b6001600160a01b0384165f9081526019602052604090205460ff161580156115f857505f601354115b8015611611575060145460155461160f9042611c8f565b115b156116625742601555601380545f909155611641611630600283611cb9565b600d546001600160a01b03166118cb565b61166061164f600283611cb9565b600e546001600160a01b03166118cb565b505b61166d848483611763565b50505050565b6001600160a01b0382166116d35760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107b0565b6001600160a01b0382165f908152602081905260409020546116f6908290611c8f565b6001600160a01b0383165f9081526020819052604090205560025461171c908290611c8f565b6002556040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383166117c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b0565b6001600160a01b0382166118295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b0565b6001600160a01b0383165f9081526020819052604090205461184c908290611c8f565b6001600160a01b038085165f90815260208190526040808220939093559084168152205461187b908290611c19565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610fbd565b305f908152602081905260409020548211156118f357305f9081526020819052604090205491505b6009546040805160028082526060820183526001600160a01b03909316925f9260208301908036833701905050905030815f8151811061193557611935611cec565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b59190611bea565b816001815181106119c8576119c8611cec565b6001600160a01b03928316602091820292909201015282166318cbafe5855f84876119f542610384611c19565b6040518663ffffffff1660e01b8152600401611a15959493929190611d00565b5f604051808303815f875af1158015611a30573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a579190810190611d71565b5050505050565b5f602080835283518060208501525f5b81811015611a8a57858101830151858201604001528201611a6e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b90575f80fd5b5f8060408385031215611acf575f80fd5b8235611ada81611aaa565b946020939093013593505050565b5f805f60608486031215611afa575f80fd5b8335611b0581611aaa565b92506020840135611b1581611aaa565b929592945050506040919091013590565b5f60208284031215611b36575f80fd5b5035919050565b5f60208284031215611b4d575f80fd5b8135611b5881611aaa565b9392505050565b5f60208284031215611b6f575f80fd5b81358015158114611b58575f80fd5b5f8060408385031215611b8f575f80fd5b8235611b9a81611aaa565b91506020830135611baa81611aaa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bfa575f80fd5b8151611b5881611aaa565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610afa57610afa611c05565b5f805f60608486031215611c3e575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611c6b57607f821691505b602082108103611c8957634e487b7160e01b5f52602260045260245ffd5b50919050565b81810381811115610afa57610afa611c05565b8082028115828204841417610afa57610afa611c05565b5f82611cd357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d505784516001600160a01b031683529383019391830191600101611d2b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f6020808385031215611d82575f80fd5b825167ffffffffffffffff80821115611d99575f80fd5b818501915085601f830112611dac575f80fd5b815181811115611dbe57611dbe611cd8565b8060051b604051601f19603f83011681018181108582111715611de357611de3611cd8565b604052918252848201925083810185019188831115611e00575f80fd5b938501935b82851015611e1e57845184529385019392850192611e05565b9897505050505050505056fea2646970667358221220aacf061f8798c0ee2e77258c464b028edfb2b67d87345b432864faaffbe9f96364736f6c63430008180033
Deployed Bytecode Sourcemap
12420:6991:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14254:752;;;:::i;:::-;;1712:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2616:194;;;;;;;;;;-1:-1:-1;2616:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2616:194:0;1023:187:1;1989:100:0;;;;;;;;;;-1:-1:-1;2069:12:0;;1989:100;;;1361:25:1;;;1349:2;1334:18;1989:100:0;1215:177:1;12511:39:0;;;;;;;;;;;;;;;2818:358;;;;;;;;;;-1:-1:-1;2818:358:0;;;;;:::i;:::-;;:::i;1898:83::-;;;;;;;;;;-1:-1:-1;1964:9:0;;1898:83;;1964:9;;;;2000:36:1;;1988:2;1973:18;1898:83:0;1858:184:1;12624:28:0;;;;;;;;;;-1:-1:-1;12624:28:0;;;;-1:-1:-1;;;;;12624:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;12624:28:0;2047:203:1;12466:38:0;;;;;;;;;;;;;;;3184:290;;;;;;;;;;-1:-1:-1;3184:290:0;;;;;:::i;:::-;;:::i;15687:83::-;;;;;;;;;;-1:-1:-1;15687:83:0;;;;;:::i;:::-;;:::i;13095:50::-;;;;;;;;;;-1:-1:-1;13095:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;13197:35;;;;;;;;;;-1:-1:-1;13197:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13241:34;;;;;;;;;;-1:-1:-1;13241:34:0;;;;;;;;12687:21;;;;;;;;;;;;;;;;15362:102;;;;;;;;;;-1:-1:-1;15362:102:0;;;;;:::i;:::-;;:::i;12744:33::-;;;;;;;;;;-1:-1:-1;12744:33:0;;;;-1:-1:-1;;;;;12744:33:0;;;12659:21;;;;;;;;;;;;;;;;2097:119;;;;;;;;;;-1:-1:-1;2097:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;2190:18:0;2163:7;2190:18;;;;;;;;;;;;2097:119;6253:148;;;;;;;;;;;;;:::i;12859:20::-;;;;;;;;;;;;;;;;12992:27;;;;;;;;;;;;;;;;13026;;;;;;;;;;;;;;;;12559:25;;;;;;;;;;;;;;;;12918:31;;;;;;;;;;-1:-1:-1;12918:31:0;;;;;;;;19222:149;;;;;;;;;;;;;:::i;15187:167::-;;;;;;;;;;-1:-1:-1;15187:167:0;;;;;:::i;:::-;;:::i;6039:79::-;;;;;;;;;;-1:-1:-1;6104:6:0;;;;;-1:-1:-1;;;;;6104:6:0;6039:79;;12958:27;;;;;;;;;;;;;;;;1803:87;;;;;;;;;;;;;:::i;3482:300::-;;;;;;;;;;-1:-1:-1;3482:300:0;;;;;:::i;:::-;;:::i;2224:200::-;;;;;;;;;;-1:-1:-1;2224:200:0;;;;;:::i;:::-;;:::i;15566:113::-;;;;;;;;;;-1:-1:-1;15566:113:0;;;;;:::i;:::-;;:::i;15472:86::-;;;;;;;;;;-1:-1:-1;15472:86:0;;;;;:::i;:::-;;:::i;12715:22::-;;;;;;;;;;;;;;;;15014:165;;;;;;;;;;-1:-1:-1;15014:165:0;;;;;:::i;:::-;;:::i;12886:25::-;;;;;;;;;;;;;;;;2432:176;;;;;;;;;;-1:-1:-1;2432:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;2573:18:0;;;2546:7;2573:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2432:176;12784:35;;;;;;;;;;-1:-1:-1;12784:35:0;;;;-1:-1:-1;;;;;12784:35:0;;;13152:38;;;;;;;;;;-1:-1:-1;13152:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12828:24;;;;;;;;;;;;;;;;12591;;;;;;;;;;;;;;;;14254:752;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;;;;;;;;;14331:10:::1;::::0;:15;14323:52:::1;;;::::0;-1:-1:-1;;;14323:52:0;;3926:2:1;14323:52:0::1;::::0;::::1;3908:21:1::0;3965:2;3945:18;;;3938:30;4004:26;3984:18;;;3977:54;4048:18;;14323:52:0::1;3724:348:1::0;14323:52:0::1;14435:13;::::0;-1:-1:-1;;;;;14435:13:0::1;14460:51;14477:4;14435:13:::0;-1:-1:-1;;14460:8:0::1;:51::i;:::-;14524:12;14557:6;-1:-1:-1::0;;;;;14557:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14539:46:0::1;;14608:4;14628:6;-1:-1:-1::0;;;;;14628:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14539:113;::::0;-1:-1:-1;;;;;;14539:113:0::1;::::0;;;;;;-1:-1:-1;;;;;4563:15:1;;;14539:113:0::1;::::0;::::1;4545:34:1::0;4615:15;;4595:18;;;4588:43;4480:18;;14539:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14663:9:0;;::::1;;::::0;;;:3:::1;:9;::::0;;;;:16;;-1:-1:-1;;14663:16:0::1;14675:4;14663:16;::::0;;14524:128;;-1:-1:-1;14692:22:0;::::1;;14722:21;14767:4;14787:24;14767:4:::0;-1:-1:-1;;;;;2190:18:0;2163:7;2190:18;;;;;;;;;;;;2097:119;14787:24:::1;14826:1;::::0;14858:10:::1;14883:28;:15;14901:10;14883:28;:::i;:::-;14692:230;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14692:230:0;;;-1:-1:-1;;;;;5263:15:1;;;14692:230:0::1;::::0;::::1;5245:34:1::0;5295:18;;;5288:34;;;;5338:18;;;5331:34;;;;5381:18;;;5374:34;;;;5445:15;;;5424:19;;;5417:44;5477:19;;;5470:35;;;;5179:19;;14692:230:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14948:12:0::1;14935:10;:25:::0;-1:-1:-1;;14983:15:0::1;14971:9;:27:::0;-1:-1:-1;14254:752:0:o;1712:83::-;1749:13;1782:5;1775:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:83;:::o;2616:194::-;2724:4;2741:39;1005:10;2764:7;2773:6;2741:8;:39::i;:::-;-1:-1:-1;2798:4:0;2616:194;;;;;:::o;2818:358::-;2958:4;2975:36;2985:6;2993:9;3004:6;2975:9;:36::i;:::-;-1:-1:-1;;;;;3093:19:0;;;;;;:11;:19;;;;;;;;1005:10;3093:33;;;;;;;;;3022:124;;3045:6;;3093:42;;3129:6;;3093:42;:::i;:::-;3022:8;:124::i;:::-;-1:-1:-1;3164:4:0;2818:358;;;;;:::o;3184:290::-;1005:10;3297:4;3386:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3386:34:0;;;;;;;;;;3297:4;;3314:130;;3364:7;;3386:47;;3423:10;;3386:47;:::i;15687:83::-;15737:25;15743:10;15755:6;15737:5;:25::i;:::-;15687:83;:::o;15362:102::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15434:9:::1;:22:::0;15362:102::o;6253:148::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;6344:6:::1;::::0;6323:40:::1;::::0;6360:1:::1;::::0;6344:6:::1;::::0;::::1;-1:-1:-1::0;;;;;6344:6:0::1;::::0;6323:40:::1;::::0;6360:1;;6323:40:::1;6374:6;:19:::0;;-1:-1:-1;;;;;;6374:19:0::1;::::0;;6253:148::o;19222:149::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;19286:14:::1;::::0;::::1;;19285:15;19277:54;;;::::0;-1:-1:-1;;;19277:54:0;;6547:2:1;19277:54:0::1;::::0;::::1;6529:21:1::0;6586:2;6566:18;;;6559:30;6625:28;6605:18;;;6598:56;6671:18;;19277:54:0::1;6345:350:1::0;19277:54:0::1;19342:14;:21:::0;;-1:-1:-1;;19342:21:0::1;19359:4;19342:21;::::0;;19222:149::o;15187:167::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15267:6:::1;;15259:4;:14;;15251:46;;;::::0;-1:-1:-1;;;15251:46:0;;6902:2:1;15251:46:0::1;::::0;::::1;6884:21:1::0;6941:2;6921:18;;;6914:30;-1:-1:-1;;;6960:18:1;;;6953:49;7019:18;;15251:46:0::1;6700:343:1::0;15251:46:0::1;15308:7;:14:::0;;;15333:6:::1;:13:::0;15187:167::o;1803:87::-;1842:13;1875:7;1868:14;;;;;:::i;3482:300::-;1005:10;3600:4;3689:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3689:34:0;;;;;;;;;;3600:4;;3617:135;;3667:7;;3689:52;;3726:15;;3689:52;:::i;2224:200::-;2335:4;2352:42;1005:10;2376:9;2387:6;2352:9;:42::i;15566:113::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15641:19:::1;:30:::0;;-1:-1:-1;;15641:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15566:113::o;15472:86::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15536:5:::1;:14:::0;15472:86::o;15014:165::-;6166:6;;-1:-1:-1;;;;;6166:6:0;;;;;1005:10;6166:22;6158:67;;;;-1:-1:-1;;;6158:67:0;;;;;;;:::i;:::-;15093:6:::1;;15085:4;:14;;15077:46;;;::::0;-1:-1:-1;;;15077:46:0;;6902:2:1;15077:46:0::1;::::0;::::1;6884:21:1::0;6941:2;6921:18;;;6914:30;-1:-1:-1;;;6960:18:1;;;6953:49;7019:18;;15077:46:0::1;6700:343:1::0;15077:46:0::1;15134:6;:13:::0;;;15158:6:::1;:13:::0;15014:165::o;5085:380::-;-1:-1:-1;;;;;5221:19:0;;5213:68;;;;-1:-1:-1;;;5213:68:0;;7250:2:1;5213:68:0;;;7232:21:1;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:1;;;7372:34;7423:19;;5213:68:0;7048:400:1;5213:68:0;-1:-1:-1;;;;;5300:21:0;;5292:68;;;;-1:-1:-1;;;5292:68:0;;7655:2:1;5292:68:0;;;7637:21:1;7694:2;7674:18;;;7667:30;7733:34;7713:18;;;7706:62;-1:-1:-1;;;7784:18:1;;;7777:32;7826:19;;5292:68:0;7453:398:1;5292:68:0;-1:-1:-1;;;;;5373:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5425:32;;1361:25:1;;;5425:32:0;;1334:18:1;5425:32:0;;;;;;;;5085:380;;;:::o;15778:2858::-;15950:14;;15927:6;;15950:14;;:23;;15902:22;15950:23;15946:201;;6104:6;;-1:-1:-1;;;;;16016:15:0;;;6104:6;;;;;16016:15;;:40;;-1:-1:-1;;;;;;16035:21:0;;16051:4;16035:21;16016:40;:63;;;-1:-1:-1;;;;;;16060:19:0;;16074:4;16060:19;16016:63;15990:145;;;;-1:-1:-1;;;15990:145:0;;8058:2:1;15990:145:0;;;8040:21:1;8097:2;8077:18;;;8070:30;-1:-1:-1;;;8116:18:1;;;8109:50;8176:18;;15990:145:0;7856:344:1;15990:145:0;16163:10;;16177:1;16163:15;16159:193;;6104:6;;-1:-1:-1;;;;;16221:15:0;;;6104:6;;;;;16221:15;;:40;;-1:-1:-1;;;;;;16240:21:0;;16256:4;16240:21;16221:40;:63;;;-1:-1:-1;;;;;;16265:19:0;;16279:4;16265:19;16221:63;16195:145;;;;-1:-1:-1;;;16195:145:0;;8407:2:1;16195:145:0;;;8389:21:1;8446:2;8426:18;;;8419:30;-1:-1:-1;;;8465:18:1;;;8458:50;8525:18;;16195:145:0;8205:344:1;16195:145:0;-1:-1:-1;;;;;16368:9:0;;;;;;:3;:9;;;;;;;;;:20;;-1:-1:-1;;;;;;16381:7:0;;;;;;:3;:7;;;;;;;;16368:20;16364:1418;;;-1:-1:-1;;;;;16441:12:0;;16405:15;16441:12;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;16457:10:0;;;;;;:6;:10;;;;;;;;16441:26;16437:273;;;-1:-1:-1;16498:1:0;16437:273;;;-1:-1:-1;;;;;16525:9:0;;;;;;:3;:9;;;;;;;;16521:189;;;-1:-1:-1;16565:6:0;;16521:189;;;-1:-1:-1;;;;;16597:7:0;;;;;;:3;:7;;;;;;;;16593:117;;;-1:-1:-1;16635:7:0;;16593:117;;;-1:-1:-1;16693:1:0;16593:117;16726:17;16767:14;16747:16;16756:7;16747:6;:16;:::i;:::-;16746:35;;;;:::i;:::-;16726:55;-1:-1:-1;16813:18:0;16726:55;16813:6;:18;:::i;:::-;16796:35;;16846:47;16862:4;16876;16883:9;16846:15;:47::i;:::-;16924:9;16908:12;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16955:12:0;;;;;;:6;:12;;;;;;;;16950:821;;17018:5;;:10;;:73;;-1:-1:-1;;;;;;17058:7:0;;;;;;:3;:7;;;;;;;;:32;;;;-1:-1:-1;;;;;;17069:21:0;;17085:4;17069:21;17058:32;17018:152;;;;17156:14;17139:13;17131:5;;:21;;;;:::i;:::-;17130:40;;;;:::i;:::-;17120:6;:50;;17018:152;16988:256;;;;-1:-1:-1;;;16988:256:0;;9151:2:1;16988:256:0;;;9133:21:1;9190:2;9170:18;;;9163:30;9229:32;9209:18;;;9202:60;9279:18;;16988:256:0;8949:354:1;16988:256:0;-1:-1:-1;;;;;17269:9:0;;;;;;:3;:9;;;;;;;;;:20;;-1:-1:-1;;;;;;17282:7:0;;;;;;:3;:7;;;;;;;;17269:20;17265:491;;;17349:19;;;;17348:20;;:62;;-1:-1:-1;;;;;;17401:9:0;;;;;;:3;:9;;;;;;;;17348:62;:129;;;-1:-1:-1;;;;;;17444:7:0;;;;;;:3;:7;;;;;;;;:32;;;;-1:-1:-1;;;;;;17455:21:0;;17471:4;17455:21;17444:32;17348:244;;;-1:-1:-1;17582:10:0;;-1:-1:-1;;;;;17528:21:0;;;;;;:15;:21;;;;;;17510:39;;:15;:39;:::i;:::-;:82;;17348:244;17314:360;;;;-1:-1:-1;;;17314:360:0;;9510:2:1;17314:360:0;;;9492:21:1;9549:2;9529:18;;;9522:30;9588:32;9568:18;;;9561:60;9638:18;;17314:360:0;9308:354:1;17314:360:0;-1:-1:-1;;;;;17697:21:0;;;;;;:15;:21;;;;;17721:15;17697:39;;17265:491;16390:1392;;16364:1418;-1:-1:-1;;;;;17799:7:0;;;;;;:3;:7;;;;;;;;17798:8;:23;;;;-1:-1:-1;;;;;;17811:10:0;;;;;;:6;:10;;;;;;;;17810:11;17798:23;17794:374;;;17876:1;17864:9;;:13;:45;;;-1:-1:-1;;;;;;17902:7:0;;;;;;:3;:7;;;;;;;;17864:45;:89;;;-1:-1:-1;;;;;;17934:19:0;;17948:4;17934:19;17864:89;:213;;;;18063:14;18046:13;18034:9;;:25;;;;:::i;:::-;18033:44;;;;:::i;:::-;17994:14;17978:13;17988:2;-1:-1:-1;;;;;2190:18:0;2163:7;2190:18;;;;;;;;;;;;2097:119;17978:13;:30;;;;:::i;:::-;:99;;17864:213;17838:318;;;;-1:-1:-1;;;17838:318:0;;9869:2:1;17838:318:0;;;9851:21:1;9908:2;9888:18;;;9881:30;9947:34;9927:18;;;9920:62;-1:-1:-1;;;9998:18:1;;;9991:41;10049:19;;17838:318:0;9667:407:1;17838:318:0;-1:-1:-1;;;;;18199:9:0;;;;;;:3;:9;;;;;;;;18198:10;:43;;;;;18240:1;18225:12;;:16;18198:43;:105;;;;-1:-1:-1;18291:12:0;;18276;;18258:30;;:15;:30;:::i;:::-;:45;18198:105;18180:395;;;18345:15;18330:12;:30;18392:12;;;18375:14;18419:16;;;18450:48;18467:10;-1:-1:-1;18392:12:0;18467:10;:::i;:::-;18479:18;;-1:-1:-1;;;;;18479:18:0;18450:16;:48::i;:::-;18513:50;18530:10;18539:1;18530:6;:10;:::i;:::-;18542:20;;-1:-1:-1;;;;;18542:20:0;18513:16;:50::i;:::-;18315:260;18180:395;18587:41;18603:4;18609:2;18613:14;18587:15;:41::i;:::-;15891:2745;15778:2858;;;:::o;4703:374::-;-1:-1:-1;;;;;4787:21:0;;4779:67;;;;-1:-1:-1;;;4779:67:0;;10281:2:1;4779:67:0;;;10263:21:1;10320:2;10300:18;;;10293:30;10359:34;10339:18;;;10332:62;-1:-1:-1;;;10410:18:1;;;10403:31;10451:19;;4779:67:0;10079:397:1;4779:67:0;-1:-1:-1;;;;;4942:18:0;;:9;:18;;;;;;;;;;;:27;;4963:6;;4942:27;:::i;:::-;-1:-1:-1;;;;;4921:18:0;;:9;:18;;;;;;;;;;:48;4995:12;;:21;;5010:6;;4995:21;:::i;:::-;4980:12;:36;5032:37;;1361:25:1;;;5058:1:0;;-1:-1:-1;;;;;5032:37:0;;;;;1349:2:1;1334:18;5032:37:0;;;;;;;4703:374;;:::o;3790:525::-;-1:-1:-1;;;;;3930:20:0;;3922:70;;;;-1:-1:-1;;;3922:70:0;;10683:2:1;3922:70:0;;;10665:21:1;10722:2;10702:18;;;10695:30;10761:34;10741:18;;;10734:62;-1:-1:-1;;;10812:18:1;;;10805:35;10857:19;;3922:70:0;10481:401:1;3922:70:0;-1:-1:-1;;;;;4011:23:0;;4003:71;;;;-1:-1:-1;;;4003:71:0;;11089:2:1;4003:71:0;;;11071:21:1;11128:2;11108:18;;;11101:30;11167:34;11147:18;;;11140:62;-1:-1:-1;;;11218:18:1;;;11211:33;11261:19;;4003:71:0;10887:399:1;4003:71:0;-1:-1:-1;;;;;4167:17:0;;:9;:17;;;;;;;;;;;:26;;4187:6;;4167:26;:::i;:::-;-1:-1:-1;;;;;4147:17:0;;;:9;:17;;;;;;;;;;;:46;;;;4227:20;;;;;;;:29;;4250:6;;4227:29;:::i;:::-;-1:-1:-1;;;;;4204:20:0;;;:9;:20;;;;;;;;;;;;:52;;;;4272:35;1361:25:1;;;4204:20:0;;4272:35;;;;;;1334:18:1;4272:35:0;1215:177:1;18644:570:0;18765:4;2163:7;2190:18;;;;;;;;;;;18733:11;:38;18729:109;;;18820:4;2163:7;2190:18;;;;;;;;;;;18788:38;;18729:109;18895:13;;18944:16;;;18958:1;18944:16;;;;;;;;-1:-1:-1;;;;;18895:13:0;;;;18848:25;;18944:16;;;;;;;;;;-1:-1:-1;18944:16:0;18920:40;;18989:4;18971;18976:1;18971:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18971:23:0;;;-1:-1:-1;;;;;18971:23:0;;;;;19015:6;-1:-1:-1;;;;;19015:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19005:4;19010:1;19005:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19005:23:0;;;:7;;;;;;;;;:23;19039:28;;;19082:11;19108:1;19124:4;19143:9;19167:28;:15;19185:10;19167:28;:::i;:::-;19039:167;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19039:167:0;;;;;;;;;;;;:::i;:::-;;18718:496;;18644:570;;:::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;2255:180::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;-1:-1:-1;2406:23:1;;2255:180;-1:-1:-1;2255:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2692:273::-;2748:6;2801:2;2789:9;2780:7;2776:23;2772:32;2769:52;;;2817:1;2814;2807:12;2769:52;2856:9;2843:23;2909:5;2902:13;2895:21;2888:5;2885:32;2875:60;;2931:1;2928;2921:12;2970:388;3038:6;3046;3099:2;3087:9;3078:7;3074:23;3070:32;3067:52;;;3115:1;3112;3105:12;3067:52;3154:9;3141:23;3173:31;3198:5;3173:31;:::i;:::-;3223:5;-1:-1:-1;3280:2:1;3265:18;;3252:32;3293:33;3252:32;3293:33;:::i;:::-;3345:7;3335:17;;;2970:388;;;;;:::o;3363:356::-;3565:2;3547:21;;;3584:18;;;3577:30;3643:34;3638:2;3623:18;;3616:62;3710:2;3695:18;;3363:356::o;4077:251::-;4147:6;4200:2;4188:9;4179:7;4175:23;4171:32;4168:52;;;4216:1;4213;4206:12;4168:52;4248:9;4242:16;4267:31;4292:5;4267:31;:::i;4642:127::-;4703:10;4698:3;4694:20;4691:1;4684:31;4734:4;4731:1;4724:15;4758:4;4755:1;4748:15;4774:125;4839:9;;;4860:10;;;4857:36;;;4873:18;;:::i;5516:306::-;5604:6;5612;5620;5673:2;5661:9;5652:7;5648:23;5644:32;5641:52;;;5689:1;5686;5679:12;5641:52;5718:9;5712:16;5702:26;;5768:2;5757:9;5753:18;5747:25;5737:35;;5812:2;5801:9;5797:18;5791:25;5781:35;;5516:306;;;;;:::o;5827:380::-;5906:1;5902:12;;;;5949;;;5970:61;;6024:4;6016:6;6012:17;6002:27;;5970:61;6077:2;6069:6;6066:14;6046:18;6043:38;6040:161;;6123:10;6118:3;6114:20;6111:1;6104:31;6158:4;6155:1;6148:15;6186:4;6183:1;6176:15;6040:161;;5827:380;;;:::o;6212:128::-;6279:9;;;6300:11;;;6297:37;;;6314:18;;:::i;8554:168::-;8627:9;;;8658;;8675:15;;;8669:22;;8655:37;8645:71;;8696:18;;:::i;8727:217::-;8767:1;8793;8783:132;;8837:10;8832:3;8828:20;8825:1;8818:31;8872:4;8869:1;8862:15;8900:4;8897:1;8890:15;8783:132;-1:-1:-1;8929:9:1;;8727:217::o;11291:127::-;11352:10;11347:3;11343:20;11340:1;11333:31;11383:4;11380:1;11373:15;11407:4;11404:1;11397:15;11423:127;11484:10;11479:3;11475:20;11472:1;11465:31;11515:4;11512:1;11505:15;11539:4;11536:1;11529:15;11555:980;11817:4;11865:3;11854:9;11850:19;11896:6;11885:9;11878:25;11922:2;11960:6;11955:2;11944:9;11940:18;11933:34;12003:3;11998:2;11987:9;11983:18;11976:31;12027:6;12062;12056:13;12093:6;12085;12078:22;12131:3;12120:9;12116:19;12109:26;;12170:2;12162:6;12158:15;12144:29;;12191:1;12201:195;12215:6;12212:1;12209:13;12201:195;;;12280:13;;-1:-1:-1;;;;;12276:39:1;12264:52;;12371:15;;;;12336:12;;;;12312:1;12230:9;12201:195;;;-1:-1:-1;;;;;;;12452:32:1;;;;12447:2;12432:18;;12425:60;-1:-1:-1;;;12516:3:1;12501:19;12494:35;12413:3;11555:980;-1:-1:-1;;;11555:980:1:o;12540:1105::-;12635:6;12666:2;12709;12697:9;12688:7;12684:23;12680:32;12677:52;;;12725:1;12722;12715:12;12677:52;12758:9;12752:16;12787:18;12828:2;12820:6;12817:14;12814:34;;;12844:1;12841;12834:12;12814:34;12882:6;12871:9;12867:22;12857:32;;12927:7;12920:4;12916:2;12912:13;12908:27;12898:55;;12949:1;12946;12939:12;12898:55;12978:2;12972:9;13000:2;12996;12993:10;12990:36;;;13006:18;;:::i;:::-;13052:2;13049:1;13045:10;13084:2;13078:9;13147:2;13143:7;13138:2;13134;13130:11;13126:25;13118:6;13114:38;13202:6;13190:10;13187:22;13182:2;13170:10;13167:18;13164:46;13161:72;;;13213:18;;:::i;:::-;13249:2;13242:22;13299:18;;;13333:15;;;;-1:-1:-1;13375:11:1;;;13371:20;;;13403:19;;;13400:39;;;13435:1;13432;13425:12;13400:39;13459:11;;;;13479:135;13495:6;13490:3;13487:15;13479:135;;;13561:10;;13549:23;;13512:12;;;;13592;;;;13479:135;;;13633:6;12540:1105;-1:-1:-1;;;;;;;;12540:1105:1:o
Swarm Source
ipfs://aacf061f8798c0ee2e77258c464b028edfb2b67d87345b432864faaffbe9f963
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.