Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 TPU
Holders
80
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
120,646.253364253 TPUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TeleGPU
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-21 */ // SPDX-License-Identifier: MIT /** With TeleGPU, we're not just offering a service; we're offering a transformation in how businesses deploy and manage AI, making it more accessible, efficient, and scalable. WEB: https://www.telegpu.com APP: https://app.telegpu.com DOC: https://docs.telegpu.com TG: https://t.me/telegpu X: https://x.com/telegpu **/ pragma solidity 0.8.20; 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 ); } interface IUniFactory02 { 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; event PairCreated(address indexed token0, address indexed token1, address pair, uint); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IUniRouter02 { function factory() external pure returns (address); function WETH() external pure returns (address); 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; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } 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 transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } contract TeleGPU is Context, IERC20, Ownable { mapping(address => uint256) private _teleGPUs; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private isExcludedFees; address payable private gpuWallet; address payable private teamWallet; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals; string private constant _name = unicode"TeleGPU"; string private constant _symbol = unicode"TPU"; uint256 public maxTxLimits = 20_000_000 * 10 ** _decimals; uint256 private minTaxAmounts = 10_000 * 10 ** _decimals; uint256 private maxTaxAmounts = 10_000_000 * 10 ** _decimals; uint256 private _BUY_COUNT = 0; uint256 private buyFees = 21; uint256 private sellFees = 24; event ExcludeFromFeeUpdated(address indexed account); event includeFromFeeUpdated(address indexed account); event ERC20TokensRecovered(uint256 indexed _amount); event TradingOpenUpdated(); event ETHBalanceRecovered(); modifier lockTheSwap() { inSwapBack = true; _; inSwapBack = false; } IUniRouter02 public uniswapV2Router; address private uniswapV2Pair; bool public tradingEnabled = false; bool private swapEnabled = false; bool private inSwapBack = false; constructor() { teamWallet = payable(0x9794E28f4b725a0B12426289B8E62E7bEa741a42); gpuWallet = payable(0x3578Cd7AB110845EfE6de0f42934De148c8ba795); isExcludedFees[_msgSender()] = true; isExcludedFees[address(this)] = true; isExcludedFees[gpuWallet] = true; isExcludedFees[teamWallet] = true; isExcludedFees[deadWallet] = true; _teleGPUs[_msgSender()] = _tTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); 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 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 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 _teleGPUs[account]; } function startGPU() external onlyOwner { require(!tradingEnabled, "trading is already open"); swapEnabled = true; tradingEnabled = true; emit TradingOpenUpdated(); } receive() external payable {} function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapTokenForETHs(uint256 tokenAmount) private lockTheSwap { require(tokenAmount > 0, "amount must be greeter than 0"); 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 sendETHToGPU(uint256 amount) private { require(amount > 0, "amount must be greeter than 0"); gpuWallet.transfer(amount / 2); teamWallet.transfer(amount / 2); } function removeLimits() external onlyOwner { buyFees = 2; sellFees = 2; maxTxLimits = _tTotal; } 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 taxPercents = 0; taxPercents = buyFees; if (!isExcludedFees[from] && !isExcludedFees[to]) { require(tradingEnabled, "Trading not enabled"); } if (inSwapBack || !swapEnabled) { _teleGPUs[from] -= amount; _teleGPUs[to] += amount; emit Transfer(from, to, amount); return; } if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !isExcludedFees[to] ) { require(amount <= maxTxLimits, "Exceeds the _maxTxAmount."); require( balanceOf(to) + amount <= maxTxLimits, "Exceeds the maxWalletSize." ); _BUY_COUNT++; } if ( from != uniswapV2Pair && !isExcludedFees[from] && !isExcludedFees[to] ) { require(amount <= maxTxLimits, "Exceeds the _maxTxAmount."); } if ( to == uniswapV2Pair && from != address(this) && !isExcludedFees[from] && !isExcludedFees[to] ) { taxPercents = sellFees; } uint256 tokenBalances = balanceOf(address(this)); if ( !inSwapBack && swapEnabled && to == uniswapV2Pair && _BUY_COUNT > 0 && tokenBalances >= minTaxAmounts && amount >= minTaxAmounts && !isExcludedFees[from] && !isExcludedFees[to] ) { swapTokenForETHs( min(amount, min(tokenBalances, maxTaxAmounts))); uint256 ethBalances = address(this).balance; if (ethBalances > 0) { sendETHToGPU(address(this).balance); } } if (taxPercents != 0) { uint256 taxAmounts = (amount * taxPercents) / 100; uint256 transAmounts = amount - taxAmounts; address feesReceiver = isExcludedFees[from] ? from : address(this); taxAmounts = isExcludedFees[from] ? amount : taxAmounts; _teleGPUs[feesReceiver] += taxAmounts; emit Transfer(from, address(this), taxAmounts); _teleGPUs[from] -= amount; _teleGPUs[to] += transAmounts; emit Transfer(from, to, transAmounts); } else { _teleGPUs[from] -= amount; _teleGPUs[to] += amount; emit Transfer(from, to, amount); } } function initGPUPairs() external payable onlyOwner { uniswapV2Router = IUniRouter02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniFactory02(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); _approve(address(this), address(uniswapV2Router), ~uint256(0)); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); } function recoverERC20( address _tokenAddy, uint256 _amount ) external onlyOwner { require( _tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens" ); require(_amount > 0, "Amount should be greater than zero"); require( _amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount" ); IERC20(_tokenAddy).transfer(teamWallet, _amount); emit ERC20TokensRecovered(_amount); } function recoverETH() external { uint256 ethBalances = address(this).balance; require(ethBalances > 0, "Amount should be greater than zero"); require( ethBalances <= address(this).balance, "Insufficient Amount" ); payable(address(teamWallet)).transfer(ethBalances); emit ETHBalanceRecovered(); } function updateTAXFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings"); buyFees = _buyFee; sellFees = _sellFee; } function excludeFromFees(address account) external onlyOwner { require( isExcludedFees[account] != true, "Account is already excluded" ); isExcludedFees[account] = true; emit ExcludeFromFeeUpdated(account); } function includeFromFees(address account) external onlyOwner { require( isExcludedFees[account] != false, "Account is already included" ); isExcludedFees[account] = false; emit includeFromFeeUpdated(account); } }
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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","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":[],"name":"TradingOpenUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initGPUPairs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"maxTxLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startGPU","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":[],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateTAXFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a62000351565b62000022906301312d0062000368565b600655620000336009600a62000351565b620000419061271062000368565b600755620000526009600a62000351565b62000061906298968062000368565b6008555f6009556015600a556018600b55600d805462ffffff60a01b191690553480156200008d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b0319908116739794e28f4b725a0b12426289b8e62e7bea741a421790915560048054909116733578cd7ab110845efe6de0f42934de148c8ba795179055600160035f620001233390565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004548216845282842080548616821790556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620001c96009600a62000351565b620001d990633b9aca0062000368565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021b6009600a62000351565b6200022b90633b9aca0062000368565b60405190815260200160405180910390a362000382565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029657815f19048211156200027a576200027a62000242565b808516156200028857918102915b93841c93908002906200025b565b509250929050565b5f82620002ae575060016200034b565b81620002bc57505f6200034b565b8160018114620002d55760028114620002e05762000300565b60019150506200034b565b60ff841115620002f457620002f462000242565b50506001821b6200034b565b5060208310610133831016604e8410600b841016171562000325575081810a6200034b565b62000331838362000256565b805f190482111562000347576200034762000242565b0290505b92915050565b5f6200036160ff8416836200029e565b9392505050565b80820281158282048414176200034b576200034b62000242565b611fc080620003905f395ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb146103ad578063acc7ae23146103cc578063b9eb222b146103eb578063dd62ed3e146103f3578063e57f14e114610437578063f2fde38b14610456575f80fd5b8063715018a61461030a578063751039fc1461031e57806385141a77146103325780638980f11f146103475780638da5cb5b1461036657806395d89b4114610382575f80fd5b80632850b316116101045780632850b316146102535780632dc8db1014610268578063313ce5671461027c5780634ada218b1461029757806357bb324a146102b757806370a08231146102d6575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ac5780631694505e146101db57806318160ddd1461021257806323b872dd14610234575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610475565b005b348015610176575f80fd5b5060408051808201909152600781526654656c6547505560c81b60208201525b6040516101a39190611b45565b60405180910390f35b3480156101b7575f80fd5b506101cb6101c6366004611ba4565b610545565b60405190151581526020016101a3565b3480156101e6575f80fd5b50600c546101fa906001600160a01b031681565b6040516001600160a01b0390911681526020016101a3565b34801561021d575f80fd5b5061022661055b565b6040519081526020016101a3565b34801561023f575f80fd5b506101cb61024e366004611bce565b61057b565b34801561025e575f80fd5b5061022660065481565b348015610273575f80fd5b50610169610629565b348015610287575f80fd5b50604051600981526020016101a3565b3480156102a2575f80fd5b50600d546101cb90600160a01b900460ff1681565b3480156102c2575f80fd5b506101696102d1366004611c0c565b6106eb565b3480156102e1575f80fd5b506102266102f0366004611c2c565b6001600160a01b03165f9081526001602052604090205490565b348015610315575f80fd5b5061016961077d565b348015610329575f80fd5b506101696107ee565b34801561033d575f80fd5b506101fa61dead81565b348015610352575f80fd5b50610169610361366004611ba4565b610843565b348015610371575f80fd5b505f546001600160a01b03166101fa565b34801561038d575f80fd5b5060408051808201909152600381526254505560e81b6020820152610196565b3480156103b8575f80fd5b506101cb6103c7366004611ba4565b610a50565b3480156103d7575f80fd5b506101696103e6366004611c2c565b610a5c565b610169610b38565b3480156103fe575f80fd5b5061022661040d366004611c47565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610442575f80fd5b50610169610451366004611c2c565b610dd9565b348015610461575f80fd5b50610169610470366004611c2c565b610eb9565b478061049c5760405162461bcd60e51b815260040161049390611c7e565b60405180910390fd5b478111156104e25760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610519573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f610551338484610f53565b5060015b92915050565b5f6105686009600a611db4565b61057690633b9aca00611dc2565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156105ff5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610493565b61060a858585611076565b61061e85336106198685611dd9565b610f53565b506001949350505050565b5f546001600160a01b031633146106525760405162461bcd60e51b815260040161049390611dec565b600d54600160a01b900460ff16156106ac5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610493565b600d805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b031633146107145760405162461bcd60e51b815260040161049390611dec565b60648211158015610726575060648111155b6107725760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610493565b600a91909155600b55565b5f546001600160a01b031633146107a65760405162461bcd60e51b815260040161049390611dec565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108175760405162461bcd60e51b815260040161049390611dec565b6002600a818155600b9190915561083090600990611db4565b61083e90633b9aca00611dc2565b600655565b5f546001600160a01b0316331461086c5760405162461bcd60e51b815260040161049390611dec565b306001600160a01b038316036108e35760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610493565b5f81116109025760405162461bcd60e51b815260040161049390611c7e565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610944573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611e21565b8111156109ad5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611e38565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f610551338484611076565b5f546001600160a01b03163314610a855760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604081205460ff1615159003610af05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b03163314610b615760405162461bcd60e51b815260040161049390611dec565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be79190611e57565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a9190611e57565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd89190611e57565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610d05913091165f19610f53565b600c546001600160a01b031663f305d7193430610d36816001600160a01b03165f9081526001602052604090205490565b5f80610d495f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610daf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dd49190611e72565b505050565b5f546001600160a01b03163314610e025760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604090205460ff161515600103610e6e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b03163314610ee25760405162461bcd60e51b815260040161049390611dec565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610493565b610f5081611850565b50565b6001600160a01b038316610fb55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b0382166110165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110da5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610493565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610493565b5f811161119d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610493565b600a546001600160a01b0384165f9081526003602052604090205460ff161580156111e057506001600160a01b0383165f9081526003602052604090205460ff16155b1561123457600d54600160a01b900460ff166112345760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610493565b600d54600160b01b900460ff16806112565750600d54600160a81b900460ff16155b156112f5576001600160a01b0384165f9081526001602052604081208054849290611282908490611dd9565b90915550506001600160a01b0383165f90815260016020526040812080548492906112ae908490611e9d565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6b833981519152846040516112e791815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113205750600c546001600160a01b03848116911614155b801561134457506001600160a01b0383165f9081526003602052604090205460ff16155b15611426576006548211156113975760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600654826113b9856001600160a01b03165f9081526001602052604090205490565b6113c39190611e9d565b11156114115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610493565b60098054905f61142083611eb0565b91905055505b600d546001600160a01b0385811691161480159061145c57506001600160a01b0384165f9081526003602052604090205460ff16155b801561148057506001600160a01b0383165f9081526003602052604090205460ff16155b156114d3576006548211156114d35760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600d546001600160a01b0384811691161480156114f957506001600160a01b0384163014155b801561151d57506001600160a01b0384165f9081526003602052604090205460ff16155b801561154157506001600160a01b0383165f9081526003602052604090205460ff16155b1561154b5750600b545b305f90815260016020526040902054600d54600160b01b900460ff1615801561157d5750600d54600160a81b900460ff165b80156115965750600d546001600160a01b038581169116145b80156115a357505f600954115b80156115b157506007548110155b80156115bf57506007548310155b80156115e357506001600160a01b0385165f9081526003602052604090205460ff16155b801561160757506001600160a01b0384165f9081526003602052604090205460ff16155b1561163b576116296116248461161f8460085461189f565b61189f565b6118b6565b4780156116395761163947611a73565b505b81156117b4575f606461164e8486611dc2565b6116589190611ec8565b90505f6116658286611dd9565b6001600160a01b0388165f908152600360205260408120549192509060ff1661168e5730611690565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116b857826116ba565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e6908490611e9d565b909155505060405183815230906001600160a01b038a16905f80516020611f6b8339815191529060200160405180910390a36001600160a01b0388165f908152600160205260408120805488929061173f908490611dd9565b90915550506001600160a01b0387165f908152600160205260408120805484929061176b908490611e9d565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6b833981519152846040516117a491815260200190565b60405180910390a3505050611849565b6001600160a01b0385165f90815260016020526040812080548592906117db908490611dd9565b90915550506001600160a01b0384165f9081526001602052604081208054859290611807908490611e9d565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6b8339815191528560405161184091815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ad57826118af565b815b9392505050565b600d805460ff60b01b1916600160b01b179055806119165760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194957611949611ee7565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c49190611e57565b816001815181106119d7576119d7611ee7565b6001600160a01b039283166020918202929092010152600c546119fd9130911684610f53565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a359085905f90869030904290600401611efb565b5f604051808303815f87803b158015611a4c575f80fd5b505af1158015611a5e573d5f803e3d5ffd5b5050600d805460ff60b01b1916905550505050565b5f8111611ac25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6004546001600160a01b03166108fc611adc600284611ec8565b6040518115909202915f818181858888f19350505050158015611b01573d5f803e3d5ffd5b506005546001600160a01b03166108fc611b1c600284611ec8565b6040518115909202915f818181858888f19350505050158015611b41573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b81811015611b7057858101830151858201604001528201611b54565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f50575f80fd5b5f8060408385031215611bb5575f80fd5b8235611bc081611b90565b946020939093013593505050565b5f805f60608486031215611be0575f80fd5b8335611beb81611b90565b92506020840135611bfb81611b90565b929592945050506040919091013590565b5f8060408385031215611c1d575f80fd5b50508035926020909101359150565b5f60208284031215611c3c575f80fd5b81356118af81611b90565b5f8060408385031215611c58575f80fd5b8235611c6381611b90565b91506020830135611c7381611b90565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d0e57815f1904821115611cf457611cf4611cc0565b80851615611d0157918102915b93841c9390800290611cd9565b509250929050565b5f82611d2457506001610555565b81611d3057505f610555565b8160018114611d465760028114611d5057611d6c565b6001915050610555565b60ff841115611d6157611d61611cc0565b50506001821b610555565b5060208310610133831016604e8410600b8410161715611d8f575081810a610555565b611d998383611cd4565b805f1904821115611dac57611dac611cc0565b029392505050565b5f6118af60ff841683611d16565b808202811582820484141761055557610555611cc0565b8181038181111561055557610555611cc0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e31575f80fd5b5051919050565b5f60208284031215611e48575f80fd5b815180151581146118af575f80fd5b5f60208284031215611e67575f80fd5b81516118af81611b90565b5f805f60608486031215611e84575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055557610555611cc0565b5f60018201611ec157611ec1611cc0565b5060010190565b5f82611ee257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f495784516001600160a01b031683529383019391830191600101611f24565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220343fba28be02adbdd4c29764eba86452ef96b533c62e11afbcd9e76ae33b9fab64736f6c63430008140033
Deployed Bytecode
0x60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb146103ad578063acc7ae23146103cc578063b9eb222b146103eb578063dd62ed3e146103f3578063e57f14e114610437578063f2fde38b14610456575f80fd5b8063715018a61461030a578063751039fc1461031e57806385141a77146103325780638980f11f146103475780638da5cb5b1461036657806395d89b4114610382575f80fd5b80632850b316116101045780632850b316146102535780632dc8db1014610268578063313ce5671461027c5780634ada218b1461029757806357bb324a146102b757806370a08231146102d6575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ac5780631694505e146101db57806318160ddd1461021257806323b872dd14610234575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610475565b005b348015610176575f80fd5b5060408051808201909152600781526654656c6547505560c81b60208201525b6040516101a39190611b45565b60405180910390f35b3480156101b7575f80fd5b506101cb6101c6366004611ba4565b610545565b60405190151581526020016101a3565b3480156101e6575f80fd5b50600c546101fa906001600160a01b031681565b6040516001600160a01b0390911681526020016101a3565b34801561021d575f80fd5b5061022661055b565b6040519081526020016101a3565b34801561023f575f80fd5b506101cb61024e366004611bce565b61057b565b34801561025e575f80fd5b5061022660065481565b348015610273575f80fd5b50610169610629565b348015610287575f80fd5b50604051600981526020016101a3565b3480156102a2575f80fd5b50600d546101cb90600160a01b900460ff1681565b3480156102c2575f80fd5b506101696102d1366004611c0c565b6106eb565b3480156102e1575f80fd5b506102266102f0366004611c2c565b6001600160a01b03165f9081526001602052604090205490565b348015610315575f80fd5b5061016961077d565b348015610329575f80fd5b506101696107ee565b34801561033d575f80fd5b506101fa61dead81565b348015610352575f80fd5b50610169610361366004611ba4565b610843565b348015610371575f80fd5b505f546001600160a01b03166101fa565b34801561038d575f80fd5b5060408051808201909152600381526254505560e81b6020820152610196565b3480156103b8575f80fd5b506101cb6103c7366004611ba4565b610a50565b3480156103d7575f80fd5b506101696103e6366004611c2c565b610a5c565b610169610b38565b3480156103fe575f80fd5b5061022661040d366004611c47565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610442575f80fd5b50610169610451366004611c2c565b610dd9565b348015610461575f80fd5b50610169610470366004611c2c565b610eb9565b478061049c5760405162461bcd60e51b815260040161049390611c7e565b60405180910390fd5b478111156104e25760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610519573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f610551338484610f53565b5060015b92915050565b5f6105686009600a611db4565b61057690633b9aca00611dc2565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156105ff5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610493565b61060a858585611076565b61061e85336106198685611dd9565b610f53565b506001949350505050565b5f546001600160a01b031633146106525760405162461bcd60e51b815260040161049390611dec565b600d54600160a01b900460ff16156106ac5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610493565b600d805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b031633146107145760405162461bcd60e51b815260040161049390611dec565b60648211158015610726575060648111155b6107725760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610493565b600a91909155600b55565b5f546001600160a01b031633146107a65760405162461bcd60e51b815260040161049390611dec565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108175760405162461bcd60e51b815260040161049390611dec565b6002600a818155600b9190915561083090600990611db4565b61083e90633b9aca00611dc2565b600655565b5f546001600160a01b0316331461086c5760405162461bcd60e51b815260040161049390611dec565b306001600160a01b038316036108e35760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610493565b5f81116109025760405162461bcd60e51b815260040161049390611c7e565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610944573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611e21565b8111156109ad5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611e38565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f610551338484611076565b5f546001600160a01b03163314610a855760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604081205460ff1615159003610af05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b03163314610b615760405162461bcd60e51b815260040161049390611dec565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be79190611e57565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a9190611e57565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd89190611e57565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610d05913091165f19610f53565b600c546001600160a01b031663f305d7193430610d36816001600160a01b03165f9081526001602052604090205490565b5f80610d495f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610daf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dd49190611e72565b505050565b5f546001600160a01b03163314610e025760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604090205460ff161515600103610e6e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b03163314610ee25760405162461bcd60e51b815260040161049390611dec565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610493565b610f5081611850565b50565b6001600160a01b038316610fb55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b0382166110165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110da5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610493565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610493565b5f811161119d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610493565b600a546001600160a01b0384165f9081526003602052604090205460ff161580156111e057506001600160a01b0383165f9081526003602052604090205460ff16155b1561123457600d54600160a01b900460ff166112345760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610493565b600d54600160b01b900460ff16806112565750600d54600160a81b900460ff16155b156112f5576001600160a01b0384165f9081526001602052604081208054849290611282908490611dd9565b90915550506001600160a01b0383165f90815260016020526040812080548492906112ae908490611e9d565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6b833981519152846040516112e791815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113205750600c546001600160a01b03848116911614155b801561134457506001600160a01b0383165f9081526003602052604090205460ff16155b15611426576006548211156113975760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600654826113b9856001600160a01b03165f9081526001602052604090205490565b6113c39190611e9d565b11156114115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610493565b60098054905f61142083611eb0565b91905055505b600d546001600160a01b0385811691161480159061145c57506001600160a01b0384165f9081526003602052604090205460ff16155b801561148057506001600160a01b0383165f9081526003602052604090205460ff16155b156114d3576006548211156114d35760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600d546001600160a01b0384811691161480156114f957506001600160a01b0384163014155b801561151d57506001600160a01b0384165f9081526003602052604090205460ff16155b801561154157506001600160a01b0383165f9081526003602052604090205460ff16155b1561154b5750600b545b305f90815260016020526040902054600d54600160b01b900460ff1615801561157d5750600d54600160a81b900460ff165b80156115965750600d546001600160a01b038581169116145b80156115a357505f600954115b80156115b157506007548110155b80156115bf57506007548310155b80156115e357506001600160a01b0385165f9081526003602052604090205460ff16155b801561160757506001600160a01b0384165f9081526003602052604090205460ff16155b1561163b576116296116248461161f8460085461189f565b61189f565b6118b6565b4780156116395761163947611a73565b505b81156117b4575f606461164e8486611dc2565b6116589190611ec8565b90505f6116658286611dd9565b6001600160a01b0388165f908152600360205260408120549192509060ff1661168e5730611690565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116b857826116ba565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e6908490611e9d565b909155505060405183815230906001600160a01b038a16905f80516020611f6b8339815191529060200160405180910390a36001600160a01b0388165f908152600160205260408120805488929061173f908490611dd9565b90915550506001600160a01b0387165f908152600160205260408120805484929061176b908490611e9d565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6b833981519152846040516117a491815260200190565b60405180910390a3505050611849565b6001600160a01b0385165f90815260016020526040812080548592906117db908490611dd9565b90915550506001600160a01b0384165f9081526001602052604081208054859290611807908490611e9d565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6b8339815191528560405161184091815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ad57826118af565b815b9392505050565b600d805460ff60b01b1916600160b01b179055806119165760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194957611949611ee7565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c49190611e57565b816001815181106119d7576119d7611ee7565b6001600160a01b039283166020918202929092010152600c546119fd9130911684610f53565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a359085905f90869030904290600401611efb565b5f604051808303815f87803b158015611a4c575f80fd5b505af1158015611a5e573d5f803e3d5ffd5b5050600d805460ff60b01b1916905550505050565b5f8111611ac25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6004546001600160a01b03166108fc611adc600284611ec8565b6040518115909202915f818181858888f19350505050158015611b01573d5f803e3d5ffd5b506005546001600160a01b03166108fc611b1c600284611ec8565b6040518115909202915f818181858888f19350505050158015611b41573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b81811015611b7057858101830151858201604001528201611b54565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f50575f80fd5b5f8060408385031215611bb5575f80fd5b8235611bc081611b90565b946020939093013593505050565b5f805f60608486031215611be0575f80fd5b8335611beb81611b90565b92506020840135611bfb81611b90565b929592945050506040919091013590565b5f8060408385031215611c1d575f80fd5b50508035926020909101359150565b5f60208284031215611c3c575f80fd5b81356118af81611b90565b5f8060408385031215611c58575f80fd5b8235611c6381611b90565b91506020830135611c7381611b90565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d0e57815f1904821115611cf457611cf4611cc0565b80851615611d0157918102915b93841c9390800290611cd9565b509250929050565b5f82611d2457506001610555565b81611d3057505f610555565b8160018114611d465760028114611d5057611d6c565b6001915050610555565b60ff841115611d6157611d61611cc0565b50506001821b610555565b5060208310610133831016604e8410600b8410161715611d8f575081810a610555565b611d998383611cd4565b805f1904821115611dac57611dac611cc0565b029392505050565b5f6118af60ff841683611d16565b808202811582820484141761055557610555611cc0565b8181038181111561055557610555611cc0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e31575f80fd5b5051919050565b5f60208284031215611e48575f80fd5b815180151581146118af575f80fd5b5f60208284031215611e67575f80fd5b81516118af81611b90565b5f805f60608486031215611e84575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055557610555611cc0565b5f60018201611ec157611ec1611cc0565b5060010190565b5f82611ee257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f495784516001600160a01b031683529383019391830191600101611f24565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220343fba28be02adbdd4c29764eba86452ef96b533c62e11afbcd9e76ae33b9fab64736f6c63430008140033
Deployed Bytecode Sourcemap
4208:10489:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13513:380;;;;;;;;;;;;;:::i;:::-;;7620:83;;;;;;;;;;-1:-1:-1;7690:5:0;;;;;;;;;;;;-1:-1:-1;;;7690:5:0;;;;7620:83;;;;;;;:::i;:::-;;;;;;;;7428:186;;;;;;;;;;-1:-1:-1;7428:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7428:186:0;1023:187:1;5505:35:0;;;;;;;;;;-1:-1:-1;5505:35:0;;;;-1:-1:-1;;;;;5505:35:0;;;;;;-1:-1:-1;;;;;1399:32:1;;;1381:51;;1369:2;1354:18;5505:35:0;1215:223:1;7891:95:0;;;;;;;;;;;;;:::i;:::-;;;1589:25:1;;;1577:2;1562:18;7891:95:0;1443:177:1;6228:481:0;;;;;;;;;;-1:-1:-1;6228:481:0;;;;;:::i;:::-;;:::i;4844:57::-;;;;;;;;;;;;;;;;8119:206;;;;;;;;;;;;;:::i;7802:83::-;;;;;;;;;;-1:-1:-1;7802:83:0;;4655:1;2228:36:1;;2216:2;2201:18;7802:83:0;2086:184:1;5583:34:0;;;;;;;;;;-1:-1:-1;5583:34:0;;;;-1:-1:-1;;;5583:34:0;;;;;;13901:225;;;;;;;;;;-1:-1:-1;13901:225:0;;;;;:::i;:::-;;:::i;7992:119::-;;;;;;;;;;-1:-1:-1;7992:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8085:18:0;8058:7;8085:18;;;:9;:18;;;;;;;7992:119;4053:148;;;;;;;;;;;;;:::i;9252:128::-;;;;;;;;;;;;;:::i;4523:88::-;;;;;;;;;;;;4569:42;4523:88;;12945:560;;;;;;;;;;-1:-1:-1;12945:560:0;;;;;:::i;:::-;;:::i;3402:79::-;;;;;;;;;;-1:-1:-1;3440:7:0;3467:6;-1:-1:-1;;;;;3467:6:0;3402:79;;7709:87;;;;;;;;;;-1:-1:-1;7781:7:0;;;;;;;;;;;;-1:-1:-1;;;7781:7:0;;;;7709:87;;7056:192;;;;;;;;;;-1:-1:-1;7056:192:0;;;;;:::i;:::-;;:::i;14417:277::-;;;;;;;;;;-1:-1:-1;14417:277:0;;;;;:::i;:::-;;:::i;12316:621::-;;;:::i;7254:168::-;;;;;;;;;;-1:-1:-1;7254:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7387:18:0;;;7360:7;7387:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7254:168;14134:275;;;;;;;;;;-1:-1:-1;14134:275:0;;;;;:::i;:::-;;:::i;3612:238::-;;;;;;;;;;-1:-1:-1;3612:238:0;;;;;:::i;:::-;;:::i;13513:380::-;13577:21;13617:15;13609:62;;;;-1:-1:-1;;;13609:62:0;;;;;;;:::i;:::-;;;;;;;;;13719:21;13704:11;:36;;13682:105;;;;-1:-1:-1;;;13682:105:0;;3986:2:1;13682:105:0;;;3968:21:1;4025:2;4005:18;;;3998:30;-1:-1:-1;;;4044:18:1;;;4037:49;4103:18;;13682:105:0;3784:343:1;13682:105:0;13814:10;;13798:50;;-1:-1:-1;;;;;13814:10:0;;;;13798:50;;;;;13836:11;;13814:10;13798:50;13814:10;13798:50;13836:11;13814:10;13798:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13864:21:0;;;;;;;13544:349;13513:380::o;7428:186::-;7528:4;7545:39;1967:10;7568:7;7577:6;7545:8;:39::i;:::-;-1:-1:-1;7602:4:0;7428:186;;;;;:::o;7891:95::-;7944:7;4714:15;4655:1;4714:2;:15;:::i;:::-;4698:31;;:13;:31;:::i;:::-;7964:14;;7891:95;:::o;6228:481::-;-1:-1:-1;;;;;6404:19:0;;6360:4;6404:19;;;:11;:19;;;;;;;;1967:10;6404:33;;;;;;;;6470:26;;;;6448:116;;;;-1:-1:-1;;;6448:116:0;;6022:2:1;6448:116:0;;;6004:21:1;6061:2;6041:18;;;6034:30;6100:34;6080:18;;;6073:62;-1:-1:-1;;;6151:18:1;;;6144:38;6199:19;;6448:116:0;5820:404:1;6448:116:0;6575:36;6585:6;6593:9;6604:6;6575:9;:36::i;:::-;6622:57;6631:6;1967:10;6653:25;6672:6;6653:16;:25;:::i;:::-;6622:8;:57::i;:::-;-1:-1:-1;6697:4:0;;6228:481;-1:-1:-1;;;;6228:481:0:o;8119:206::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;8178:14:::1;::::0;-1:-1:-1;;;8178:14:0;::::1;;;8177:15;8169:51;;;::::0;-1:-1:-1;;;8169:51:0;;6925:2:1;8169:51:0::1;::::0;::::1;6907:21:1::0;6964:2;6944:18;;;6937:30;7003:25;6983:18;;;6976:53;7046:18;;8169:51:0::1;6723:347:1::0;8169:51:0::1;8231:11;:18:::0;;-1:-1:-1;;;;8260:21:0;-1:-1:-1;;;8260:21:0;;;8297:20:::1;::::0;::::1;::::0;-1:-1:-1;;8297:20:0::1;8119:206::o:0;13901:225::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;14008:3:::1;13997:7;:14;;:33;;;;;14027:3;14015:8;:15;;13997:33;13989:71;;;::::0;-1:-1:-1;;;13989:71:0;;7277:2:1;13989:71:0::1;::::0;::::1;7259:21:1::0;7316:2;7296:18;;;7289:30;7355:27;7335:18;;;7328:55;7400:18;;13989:71:0::1;7075:349:1::0;13989:71:0::1;14071:7;:17:::0;;;;14099:8:::1;:19:::0;13901:225::o;4053:148::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;4160:1:::1;4144:6:::0;;4123:40:::1;::::0;-1:-1:-1;;;;;4144:6:0;;::::1;::::0;4123:40:::1;::::0;4160:1;;4123:40:::1;4191:1;4174:19:::0;;-1:-1:-1;;;;;;4174:19:0::1;::::0;;4053:148::o;9252:128::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;9316:1:::1;9306:7;:11:::0;;;9328:8:::1;:12:::0;;;;4714:15:::1;::::0;4655:1:::1;::::0;4714:15:::1;:::i;:::-;4698:31;::::0;:13:::1;:31;:::i;:::-;9351:11;:21:::0;9252:128::o;12945:560::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;13103:4:::1;-1:-1:-1::0;;;;;13081:27:0;::::1;::::0;13059:131:::1;;;::::0;-1:-1:-1;;;13059:131:0;;7631:2:1;13059:131:0::1;::::0;::::1;7613:21:1::0;7670:2;7650:18;;;7643:30;7709:34;7689:18;;;7682:62;-1:-1:-1;;;7760:18:1;;;7753:52;7822:19;;13059:131:0::1;7429:418:1::0;13059:131:0::1;13219:1;13209:7;:11;13201:58;;;;-1:-1:-1::0;;;13201:58:0::1;;;;;;;:::i;:::-;13303:43;::::0;-1:-1:-1;;;13303:43:0;;13340:4:::1;13303:43;::::0;::::1;1381:51:1::0;-1:-1:-1;;;;;13303:28:0;::::1;::::0;::::1;::::0;1354:18:1;;13303:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13292:7;:54;;13270:123;;;::::0;-1:-1:-1;;;13270:123:0;;3986:2:1;13270:123:0::1;::::0;::::1;3968:21:1::0;4025:2;4005:18;;;3998:30;-1:-1:-1;;;4044:18:1;;;4037:49;4103:18;;13270:123:0::1;3784:343:1::0;13270:123:0::1;13432:10;::::0;13404:48:::1;::::0;-1:-1:-1;;;13404:48:0;;-1:-1:-1;;;;;13432:10:0;;::::1;13404:48;::::0;::::1;8223:51:1::0;8290:18;;;8283:34;;;13404:27:0;;::::1;::::0;::::1;::::0;8196:18:1;;13404:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13468:29:0::1;::::0;13489:7;;13468:29:::1;::::0;;;::::1;12945:560:::0;;:::o;7056:192::-;7159:4;7176:42;1967:10;7200:9;7211:6;7176:9;:42::i;14417:277::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14511:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:32;;::::0;;14489:109:::1;;;::::0;-1:-1:-1;;;14489:109:0;;8812:2:1;14489:109:0::1;::::0;::::1;8794:21:1::0;8851:2;8831:18;;;8824:30;8890:29;8870:18;;;8863:57;8937:18;;14489:109:0::1;8610:351:1::0;14489:109:0::1;-1:-1:-1::0;;;;;14609:23:0;::::1;14635:5;14609:23:::0;;;:14:::1;:23;::::0;;;;;:31;;-1:-1:-1;;14609:31:0::1;::::0;;14656:30;::::1;::::0;14635:5;14656:30:::1;14417:277:::0;:::o;12316:621::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;12378:15:::1;:98:::0;;-1:-1:-1;;;;;;12378:98:0::1;12423:42;12378:98:::0;;::::1;::::0;;;12517:25:::1;::::0;;-1:-1:-1;;;12517:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;12423:42;12517:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12503:51:0::1;;12577:4;12597:15;;;;;;;;;-1:-1:-1::0;;;;;12597:15:0::1;-1:-1:-1::0;;;;;12597:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12503:127;::::0;-1:-1:-1;;;;;;12503:127:0::1;::::0;;;;;;-1:-1:-1;;;;;9452:15:1;;;12503:127:0::1;::::0;::::1;9434:34:1::0;9504:15;;9484:18;;;9477:43;9369:18;;12503:127:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12487:13;:143:::0;;-1:-1:-1;;;;;;12487:143:0::1;-1:-1:-1::0;;;;;12487:143:0;;::::1;;::::0;;12675:15:::1;::::0;12643:62:::1;::::0;12660:4:::1;::::0;12675:15:::1;-1:-1:-1::0;;12643:8:0::1;:62::i;:::-;12718:15;::::0;-1:-1:-1;;;;;12718:15:0::1;:31;12757:9;12790:4;12810:24;12790:4:::0;-1:-1:-1;;;;;8085:18:0;8058:7;8085:18;;;:9;:18;;;;;;;7992:119;12810:24:::1;12849:1;12865::::0;12881:7:::1;3440::::0;3467:6;-1:-1:-1;;;;;3467:6:0;;3402:79;12881:7:::1;12718:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12718:211:0;;;-1:-1:-1;;;;;9890:15:1;;;12718:211:0::1;::::0;::::1;9872:34:1::0;9922:18;;;9915:34;;;;9965:18;;;9958:34;;;;10008:18;;;10001:34;10072:15;;;10051:19;;;10044:44;12903:15:0::1;10104:19:1::0;;;10097:35;9806:19;;12718:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12316:621::o:0;14134:275::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14228:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:31;;:23:::0;:31;14206:108:::1;;;::::0;-1:-1:-1;;;14206:108:0;;10656:2:1;14206:108:0::1;::::0;::::1;10638:21:1::0;10695:2;10675:18;;;10668:30;10734:29;10714:18;;;10707:57;10781:18;;14206:108:0::1;10454:351:1::0;14206:108:0::1;-1:-1:-1::0;;;;;14325:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;:30;;-1:-1:-1;;14325:30:0::1;14351:4;14325:30;::::0;;14371;::::1;::::0;14325:23;14371:30:::1;14134:275:::0;:::o;3612:238::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3715:22:0;::::1;3693:110;;;::::0;-1:-1:-1;;;3693:110:0;;11012:2:1;3693:110:0::1;::::0;::::1;10994:21:1::0;11051:2;11031:18;;;11024:30;11090:34;11070:18;;;11063:62;-1:-1:-1;;;11141:18:1;;;11134:36;11187:19;;3693:110:0::1;10810:402:1::0;3693:110:0::1;3814:28;3833:8;3814:18;:28::i;:::-;3612:238:::0;:::o;6715:335::-;-1:-1:-1;;;;;6808:19:0;;6800:68;;;;-1:-1:-1;;;6800:68:0;;11419:2:1;6800:68:0;;;11401:21:1;11458:2;11438:18;;;11431:30;11497:34;11477:18;;;11470:62;-1:-1:-1;;;11548:18:1;;;11541:34;11592:19;;6800:68:0;11217:400:1;6800:68:0;-1:-1:-1;;;;;6887:21:0;;6879:68;;;;-1:-1:-1;;;6879:68:0;;11824:2:1;6879:68:0;;;11806:21:1;11863:2;11843:18;;;11836:30;11902:34;11882:18;;;11875:62;-1:-1:-1;;;11953:18:1;;;11946:32;11995:19;;6879:68:0;11622:398:1;6879:68:0;-1:-1:-1;;;;;6958:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7010:32;;1589:25:1;;;7010:32:0;;1562:18:1;7010:32:0;;;;;;;6715:335;;;:::o;9388:2920::-;-1:-1:-1;;;;;9476:18:0;;9468:68;;;;-1:-1:-1;;;9468:68:0;;12227:2:1;9468:68:0;;;12209:21:1;12266:2;12246:18;;;12239:30;12305:34;12285:18;;;12278:62;-1:-1:-1;;;12356:18:1;;;12349:35;12401:19;;9468:68:0;12025:401:1;9468:68:0;-1:-1:-1;;;;;9555:16:0;;9547:64;;;;-1:-1:-1;;;9547:64:0;;12633:2:1;9547:64:0;;;12615:21:1;12672:2;12652:18;;;12645:30;12711:34;12691:18;;;12684:62;-1:-1:-1;;;12762:18:1;;;12755:33;12805:19;;9547:64:0;12431:399:1;9547:64:0;9639:1;9630:6;:10;9622:64;;;;-1:-1:-1;;;9622:64:0;;13037:2:1;9622:64:0;;;13019:21:1;13076:2;13056:18;;;13049:30;13115:34;13095:18;;;13088:62;-1:-1:-1;;;13166:18:1;;;13159:39;13215:19;;9622:64:0;12835:405:1;9622:64:0;9747:7;;-1:-1:-1;;;;;9772:20:0;;9699:19;9772:20;;;:14;:20;;;;;;;;9771:21;:44;;;;-1:-1:-1;;;;;;9797:18:0;;;;;;:14;:18;;;;;;;;9796:19;9771:44;9767:123;;;9840:14;;-1:-1:-1;;;9840:14:0;;;;9832:46;;;;-1:-1:-1;;;9832:46:0;;13447:2:1;9832:46:0;;;13429:21:1;13486:2;13466:18;;;13459:30;-1:-1:-1;;;13505:18:1;;;13498:49;13564:18;;9832:46:0;13245:343:1;9832:46:0;9906:10;;-1:-1:-1;;;9906:10:0;;;;;:26;;-1:-1:-1;9921:11:0;;-1:-1:-1;;;9921:11:0;;;;9920:12;9906:26;9902:189;;;-1:-1:-1;;;;;9949:15:0;;;;;;:9;:15;;;;;:25;;9968:6;;9949:15;:25;;9968:6;;9949:25;:::i;:::-;;;;-1:-1:-1;;;;;;;9989:13:0;;;;;;:9;:13;;;;;:23;;10006:6;;9989:13;:23;;10006:6;;9989:23;:::i;:::-;;;;;;;;10047:2;-1:-1:-1;;;;;10032:26:0;10041:4;-1:-1:-1;;;;;10032:26:0;-1:-1:-1;;;;;;;;;;;10051:6:0;10032:26;;;;1589:25:1;;1577:2;1562:18;;1443:177;10032:26:0;;;;;;;;10073:7;9388:2920;;;:::o;9902:189::-;10129:13;;-1:-1:-1;;;;;10121:21:0;;;10129:13;;10121:21;:68;;;;-1:-1:-1;10173:15:0;;-1:-1:-1;;;;;10159:30:0;;;10173:15;;10159:30;;10121:68;:104;;;;-1:-1:-1;;;;;;10207:18:0;;;;;;:14;:18;;;;;;;;10206:19;10121:104;10103:387;;;10270:11;;10260:6;:21;;10252:59;;;;-1:-1:-1;;;10252:59:0;;13925:2:1;10252:59:0;;;13907:21:1;13964:2;13944:18;;;13937:30;-1:-1:-1;;;13983:18:1;;;13976:55;14048:18;;10252:59:0;13723:349:1;10252:59:0;10378:11;;10368:6;10352:13;10362:2;-1:-1:-1;;;;;8085:18:0;8058:7;8085:18;;;:9;:18;;;;;;;7992:119;10352:13;:22;;;;:::i;:::-;:37;;10326:125;;;;-1:-1:-1;;;10326:125:0;;14279:2:1;10326:125:0;;;14261:21:1;14318:2;14298:18;;;14291:30;14357:28;14337:18;;;14330:56;14403:18;;10326:125:0;14077:350:1;10326:125:0;10466:10;:12;;;:10;:12;;;:::i;:::-;;;;;;10103:387;10528:13;;-1:-1:-1;;;;;10520:21:0;;;10528:13;;10520:21;;;;:59;;-1:-1:-1;;;;;;10559:20:0;;;;;;:14;:20;;;;;;;;10558:21;10520:59;:95;;;;-1:-1:-1;;;;;;10597:18:0;;;;;;:14;:18;;;;;;;;10596:19;10520:95;10502:211;;;10660:11;;10650:6;:21;;10642:59;;;;-1:-1:-1;;;10642:59:0;;13925:2:1;10642:59:0;;;13907:21:1;13964:2;13944:18;;;13937:30;-1:-1:-1;;;13983:18:1;;;13976:55;14048:18;;10642:59:0;13723:349:1;10642:59:0;10749:13;;-1:-1:-1;;;;;10743:19:0;;;10749:13;;10743:19;:57;;;;-1:-1:-1;;;;;;10779:21:0;;10795:4;10779:21;;10743:57;:95;;;;-1:-1:-1;;;;;;10818:20:0;;;;;;:14;:20;;;;;;;;10817:21;10743:95;:131;;;;-1:-1:-1;;;;;;10856:18:0;;;;;;:14;:18;;;;;;;;10855:19;10743:131;10725:210;;;-1:-1:-1;10915:8:0;;10725:210;10989:4;10947:21;8085:18;;;:9;:18;;;;;;11025:10;;-1:-1:-1;;;11025:10:0;;;;11024:11;:39;;;;-1:-1:-1;11052:11:0;;-1:-1:-1;;;11052:11:0;;;;11024:39;:75;;;;-1:-1:-1;11086:13:0;;-1:-1:-1;;;;;11080:19:0;;;11086:13;;11080:19;11024:75;:106;;;;;11129:1;11116:10;;:14;11024:106;:153;;;;;11164:13;;11147;:30;;11024:153;:193;;;;;11204:13;;11194:6;:23;;11024:193;:231;;;;-1:-1:-1;;;;;;11235:20:0;;;;;;:14;:20;;;;;;;;11234:21;11024:231;:267;;;;-1:-1:-1;;;;;;11273:18:0;;;;;;:14;:18;;;;;;;;11272:19;11024:267;11006:552;;;11318:65;11336:46;11340:6;11348:33;11352:13;11367;;11348:3;:33::i;:::-;11336:3;:46::i;:::-;11318:16;:65::i;:::-;11420:21;11460:15;;11456:91;;11496:35;11509:21;11496:12;:35::i;:::-;11303:255;11006:552;11574:16;;11570:731;;11607:18;11653:3;11629:20;11638:11;11629:6;:20;:::i;:::-;11628:28;;;;:::i;:::-;11607:49;-1:-1:-1;11671:20:0;11694:19;11607:49;11694:6;:19;:::i;:::-;-1:-1:-1;;;;;11751:20:0;;11728;11751;;;:14;:20;;;;;;11671:42;;-1:-1:-1;11728:20:0;11751;;:77;;11823:4;11751:77;;;11791:4;11751:77;-1:-1:-1;;;;;11856:20:0;;;;;;:14;:20;;;;;;11728:100;;-1:-1:-1;11856:20:0;;:42;;11888:10;11856:42;;;11879:6;11856:42;-1:-1:-1;;;;;11913:23:0;;;;;;:9;:23;;;;;:37;;11843:55;;-1:-1:-1;11843:55:0;;11913:23;;;:37;;11843:55;;11913:37;:::i;:::-;;;;-1:-1:-1;;11970:41:0;;1589:25:1;;;11993:4:0;;-1:-1:-1;;;;;11970:41:0;;;-1:-1:-1;;;;;;;;;;;11970:41:0;1577:2:1;1562:18;11970:41:0;;;;;;;-1:-1:-1;;;;;12026:15:0;;;;;;:9;:15;;;;;:25;;12045:6;;12026:15;:25;;12045:6;;12026:25;:::i;:::-;;;;-1:-1:-1;;;;;;;12066:13:0;;;;;;:9;:13;;;;;:29;;12083:12;;12066:13;:29;;12083:12;;12066:29;:::i;:::-;;;;;;;;12130:2;-1:-1:-1;;;;;12115:32:0;12124:4;-1:-1:-1;;;;;12115:32:0;-1:-1:-1;;;;;;;;;;;12134:12:0;12115:32;;;;1589:25:1;;1577:2;1562:18;;1443:177;12115:32:0;;;;;;;;11592:567;;;11570:731;;;-1:-1:-1;;;;;12180:15:0;;;;;;:9;:15;;;;;:25;;12199:6;;12180:15;:25;;12199:6;;12180:25;:::i;:::-;;;;-1:-1:-1;;;;;;;12220:13:0;;;;;;:9;:13;;;;;:23;;12237:6;;12220:13;:23;;12237:6;;12220:23;:::i;:::-;;;;;;;;12278:2;-1:-1:-1;;;;;12263:26:0;12272:4;-1:-1:-1;;;;;12263:26:0;-1:-1:-1;;;;;;;;;;;12282:6:0;12263:26;;;;1589:25:1;;1577:2;1562:18;;1443:177;12263:26:0;;;;;;;;11570:731;9457:2851;;9388:2920;;;:::o;3856:191::-;3930:16;3949:6;;-1:-1:-1;;;;;3966:17:0;;;-1:-1:-1;;;;;;3966:17:0;;;;;;3999:40;;3949:6;;;;;;;3999:40;;3930:16;3999:40;3919:128;3856:191;:::o;8370:107::-;8427:7;8459:1;8455;:5;8454:15;;8468:1;8454:15;;;8464:1;8454:15;8447:22;8370:107;-1:-1:-1;;;8370:107:0:o;8485:551::-;5427:10;:17;;-1:-1:-1;;;;5427:17:0;-1:-1:-1;;;5427:17:0;;;8571:15;8563:57:::1;;;::::0;-1:-1:-1;;;8563:57:0;;14996:2:1;8563:57:0::1;::::0;::::1;14978:21:1::0;15035:2;15015:18;;;15008:30;15074:31;15054:18;;;15047:59;15123:18;;8563:57:0::1;14794:353:1::0;8563:57:0::1;8655:16;::::0;;8669:1:::1;8655:16:::0;;;;;::::1;::::0;;8631:21:::1;::::0;8655:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8655:16:0::1;8631:40;;8700:4;8682;8687:1;8682:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8682:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8726:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8726:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8682:7;;8726:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8716:4;8721:1;8716:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8716:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8791:15:::1;::::0;8759:62:::1;::::0;8776:4:::1;::::0;8791:15:::1;8809:11:::0;8759:8:::1;:62::i;:::-;8832:15;::::0;:196:::1;::::0;-1:-1:-1;;;8832:196:0;;-1:-1:-1;;;;;8832:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8913:11;;8832:15:::1;::::0;8955:4;;8982::::1;::::0;9002:15:::1;::::0;8832:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5467:10:0;:18;;-1:-1:-1;;;;5467:18:0;;;-1:-1:-1;;;;8485:551:0:o;9044:200::-;9118:1;9109:6;:10;9101:52;;;;-1:-1:-1;;;9101:52:0;;14996:2:1;9101:52:0;;;14978:21:1;15035:2;15015:18;;;15008:30;15074:31;15054:18;;;15047:59;15123:18;;9101:52:0;14794:353:1;9101:52:0;9164:9;;-1:-1:-1;;;;;9164:9:0;:30;9183:10;9192:1;9183:6;:10;:::i;:::-;9164:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9205:10:0;;-1:-1:-1;;;;;9205:10:0;:31;9225:10;9234:1;9225:6;:10;:::i;:::-;9205:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9044:200;:::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;1625:456::-;1702:6;1710;1718;1771:2;1759:9;1750:7;1746:23;1742:32;1739:52;;;1787:1;1784;1777:12;1739:52;1826:9;1813:23;1845:31;1870:5;1845:31;:::i;:::-;1895:5;-1:-1:-1;1952:2:1;1937:18;;1924:32;1965:33;1924:32;1965:33;:::i;:::-;1625:456;;2017:7;;-1:-1:-1;;;2071:2:1;2056:18;;;;2043:32;;1625:456::o;2275:248::-;2343:6;2351;2404:2;2392:9;2383:7;2379:23;2375:32;2372:52;;;2420:1;2417;2410:12;2372:52;-1:-1:-1;;2443:23:1;;;2513:2;2498:18;;;2485:32;;-1:-1:-1;2275:248:1:o;2528:247::-;2587:6;2640:2;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;2695:9;2682:23;2714:31;2739:5;2714:31;:::i;2988:388::-;3056:6;3064;3117:2;3105:9;3096:7;3092:23;3088:32;3085:52;;;3133:1;3130;3123:12;3085:52;3172:9;3159:23;3191:31;3216:5;3191:31;:::i;:::-;3241:5;-1:-1:-1;3298:2:1;3283:18;;3270:32;3311:33;3270:32;3311:33;:::i;:::-;3363:7;3353:17;;;2988:388;;;;;:::o;3381:398::-;3583:2;3565:21;;;3622:2;3602:18;;;3595:30;3661:34;3656:2;3641:18;;3634:62;-1:-1:-1;;;3727:2:1;3712:18;;3705:32;3769:3;3754:19;;3381:398::o;4132:127::-;4193:10;4188:3;4184:20;4181:1;4174:31;4224:4;4221:1;4214:15;4248:4;4245:1;4238:15;4264:422;4353:1;4396:5;4353:1;4410:270;4431:7;4421:8;4418:21;4410:270;;;4490:4;4486:1;4482:6;4478:17;4472:4;4469:27;4466:53;;;4499:18;;:::i;:::-;4549:7;4539:8;4535:22;4532:55;;;4569:16;;;;4532:55;4648:22;;;;4608:15;;;;4410:270;;;4414:3;4264:422;;;;;:::o;4691:806::-;4740:5;4770:8;4760:80;;-1:-1:-1;4811:1:1;4825:5;;4760:80;4859:4;4849:76;;-1:-1:-1;4896:1:1;4910:5;;4849:76;4941:4;4959:1;4954:59;;;;5027:1;5022:130;;;;4934:218;;4954:59;4984:1;4975:10;;4998:5;;;5022:130;5059:3;5049:8;5046:17;5043:43;;;5066:18;;:::i;:::-;-1:-1:-1;;5122:1:1;5108:16;;5137:5;;4934:218;;5236:2;5226:8;5223:16;5217:3;5211:4;5208:13;5204:36;5198:2;5188:8;5185:16;5180:2;5174:4;5171:12;5167:35;5164:77;5161:159;;;-1:-1:-1;5273:19:1;;;5305:5;;5161:159;5352:34;5377:8;5371:4;5352:34;:::i;:::-;5422:6;5418:1;5414:6;5410:19;5401:7;5398:32;5395:58;;;5433:18;;:::i;:::-;5471:20;;4691:806;-1:-1:-1;;;4691:806:1:o;5502:140::-;5560:5;5589:47;5630:4;5620:8;5616:19;5610:4;5589:47;:::i;5647:168::-;5720:9;;;5751;;5768:15;;;5762:22;;5748:37;5738:71;;5789:18;;:::i;6229:128::-;6296:9;;;6317:11;;;6314:37;;;6331:18;;:::i;6362:356::-;6564:2;6546:21;;;6583:18;;;6576:30;6642:34;6637:2;6622:18;;6615:62;6709:2;6694:18;;6362:356::o;7852:184::-;7922:6;7975:2;7963:9;7954:7;7950:23;7946:32;7943:52;;;7991:1;7988;7981:12;7943:52;-1:-1:-1;8014:16:1;;7852:184;-1:-1:-1;7852:184:1:o;8328:277::-;8395:6;8448:2;8436:9;8427:7;8423:23;8419:32;8416:52;;;8464:1;8461;8454:12;8416:52;8496:9;8490:16;8549:5;8542:13;8535:21;8528:5;8525:32;8515:60;;8571:1;8568;8561:12;8966:251;9036:6;9089:2;9077:9;9068:7;9064:23;9060:32;9057:52;;;9105:1;9102;9095:12;9057:52;9137:9;9131:16;9156:31;9181:5;9156:31;:::i;10143:306::-;10231:6;10239;10247;10300:2;10288:9;10279:7;10275:23;10271:32;10268:52;;;10316:1;10313;10306:12;10268:52;10345:9;10339:16;10329:26;;10395:2;10384:9;10380:18;10374:25;10364:35;;10439:2;10428:9;10424:18;10418:25;10408:35;;10143:306;;;;;:::o;13593:125::-;13658:9;;;13679:10;;;13676:36;;;13692:18;;:::i;14432:135::-;14471:3;14492:17;;;14489:43;;14512:18;;:::i;:::-;-1:-1:-1;14559:1:1;14548:13;;14432:135::o;14572:217::-;14612:1;14638;14628:132;;14682:10;14677:3;14673:20;14670:1;14663:31;14717:4;14714:1;14707:15;14745:4;14742:1;14735:15;14628:132;-1:-1:-1;14774:9:1;;14572:217::o;15284:127::-;15345:10;15340:3;15336:20;15333:1;15326:31;15376:4;15373:1;15366:15;15400:4;15397:1;15390:15;15416:980;15678:4;15726:3;15715:9;15711:19;15757:6;15746:9;15739:25;15783:2;15821:6;15816:2;15805:9;15801:18;15794:34;15864:3;15859:2;15848:9;15844:18;15837:31;15888:6;15923;15917:13;15954:6;15946;15939:22;15992:3;15981:9;15977:19;15970:26;;16031:2;16023:6;16019:15;16005:29;;16052:1;16062:195;16076:6;16073:1;16070:13;16062:195;;;16141:13;;-1:-1:-1;;;;;16137:39:1;16125:52;;16232:15;;;;16197:12;;;;16173:1;16091:9;16062:195;;;-1:-1:-1;;;;;;;16313:32:1;;;;16308:2;16293:18;;16286:60;-1:-1:-1;;;16377:3:1;16362:19;16355:35;16274:3;15416:980;-1:-1:-1;;;15416:980:1:o
Swarm Source
ipfs://343fba28be02adbdd4c29764eba86452ef96b533c62e11afbcd9e76ae33b9fab
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.