Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 29 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21872571 | 63 days ago | IN | 0 ETH | 0.00009532 | ||||
Transfer | 21869347 | 64 days ago | IN | 0 ETH | 0.00025926 | ||||
Transfer | 21869337 | 64 days ago | IN | 0 ETH | 0.00029423 | ||||
Transfer | 21869323 | 64 days ago | IN | 0 ETH | 0.00026243 | ||||
Approve | 21868869 | 64 days ago | IN | 0 ETH | 0.00010412 | ||||
Set Num Tokens S... | 21856484 | 66 days ago | IN | 0 ETH | 0.00003603 | ||||
Set Num Tokens S... | 21856477 | 66 days ago | IN | 0 ETH | 0.00003575 | ||||
Approve | 21854106 | 66 days ago | IN | 0 ETH | 0.00003787 | ||||
Approve | 21854103 | 66 days ago | IN | 0 ETH | 0.00003799 | ||||
Approve | 21854046 | 66 days ago | IN | 0 ETH | 0.00008394 | ||||
Approve | 21853704 | 66 days ago | IN | 0 ETH | 0.00008226 | ||||
Approve | 21849306 | 67 days ago | IN | 0 ETH | 0.00050123 | ||||
Transfer | 21846363 | 67 days ago | IN | 0 ETH | 0.00026731 | ||||
Transfer | 21846354 | 67 days ago | IN | 0 ETH | 0.00025777 | ||||
Transfer | 21846332 | 67 days ago | IN | 0 ETH | 0.00029045 | ||||
Transfer | 21845405 | 67 days ago | IN | 0 ETH | 0.00031484 | ||||
Transfer | 21845138 | 67 days ago | IN | 0 ETH | 0.00020277 | ||||
Approve | 21843428 | 68 days ago | IN | 0 ETH | 0.00005764 | ||||
Approve | 21843360 | 68 days ago | IN | 0 ETH | 0.00009543 | ||||
Approve | 21843352 | 68 days ago | IN | 0 ETH | 0.00008243 | ||||
Transfer | 21842873 | 68 days ago | IN | 0 ETH | 0.00006506 | ||||
Transfer | 21841807 | 68 days ago | IN | 0 ETH | 0.00018183 | ||||
Transfer | 21841777 | 68 days ago | IN | 0 ETH | 0.000184 | ||||
Transfer | 21841513 | 68 days ago | IN | 0 ETH | 0.00008503 | ||||
Approve | 21841483 | 68 days ago | IN | 0 ETH | 0.00026726 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CoinToken
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-02-13 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.6.12; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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 ); } /** * @dev Wrappers over Solidity's arithmetic operations. * From OpenZeppelin (SafeMath for 0.6). */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require( c / a == b, "SafeMath: multiplication overflow" ); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require( b > 0, errorMessage ); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require( b != 0, errorMessage ); return a % b; } } /** * @dev Provides information about the current execution context. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning return msg.data; } } /** * @dev Collection of functions related to the address type * (Full OpenZeppelin v3.x version, including `_functionCallWithValue`.) */ library Address { /** * @dev Returns true if `account` is a contract. */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 // is returned for accounts without code (i.e. `keccak256('')`) bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return ( codehash != accountHash && codehash != 0x0 ); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei * to `recipient`, forwarding all available gas and reverting on errors. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall( target, data, "Address: low-level call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but with `errorMessage` as a fallback revert reason when `target` reverts. */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue( target, data, 0, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`] * but also transferring `value` wei to `target`. */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], * but with `errorMessage` as a fallback revert reason when `target` reverts. */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); return _functionCallWithValue( target, data, value, errorMessage ); } /** * @dev Private function that actually does the call * and reverts if the call fails. */ function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require( isContract(target), "Address: call to non-contract" ); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert( add(32, returndata), returndata_size ) } } else { revert(errorMessage); } } } } /** * @dev Ownable: basic access control mechanism. */ contract Ownable is Context { address public _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() internal { _owner = _msgSender(); emit OwnershipTransferred( address(0), _owner ); } modifier onlyOwner() { require( _owner == _msgSender(), "Ownable: caller is not the owner" ); _; } function owner() public view returns (address) { return _owner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred( _owner, address(0) ); _owner = address(0); } function transferOwnership( address newOwner ) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred( _owner, newOwner ); _owner = newOwner; } function geUnlockTime() public view returns (uint256) { return _lockTime; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = now + time; emit OwnershipTransferred( _owner, address(0) ); } function unlock() public virtual { require( _previousOwner == msg.sender, "You don't have permission to unlock" ); require( now > _lockTime, "Contract is locked" ); emit OwnershipTransferred( _owner, _previousOwner ); _owner = _previousOwner; } } /** * @dev Interfaces for Uniswap V2. */ 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 IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint value ); event Transfer( address indexed from, address indexed to, uint value ); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf( address owner ) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve( address spender, uint value ) external returns (bool); function transfer( address to, uint value ) external returns (bool); function transferFrom( address from, address to, uint value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces( address owner ) external view returns (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint( address indexed sender, uint amount0, uint amount1 ); event Burn( address indexed sender, uint amount0, uint amount1, address indexed to ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync( uint112 reserve0, uint112 reserve1 ); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint( address to ) external returns (uint liquidity); function burn( address to ) external returns ( uint amount0, uint amount1 ); function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external; function skim( address to ) external; function sync() external; function initialize( address, 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; } /** * @title CoinToken (Reflection-based) * @dev Example reflection token with full Address library included. */ contract CoinToken is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; // Standard ERC-20 info string private _name; string private _symbol; // IMPORTANT: reflection tokens typically use uint8 for decimals uint8 private _decimals; // Reflection mappings mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; // Allowances mapping(address => mapping(address => uint256)) private _allowances; // Excluded from fees mapping(address => bool) private _isExcludedFromFee; // Excluded from reward mapping(address => bool) private _isExcluded; address[] private _excluded; // Constants uint256 private constant MAX = ~uint256(0); // Actual supply and reflection supply uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; // Fees uint256 public _taxFee; uint256 private _previousTaxFee; uint256 public _liquidityFee; uint256 private _previousLiquidityFee; // Uniswap references IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; // Liquidity bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; // Limits uint256 public _maxTxAmount; uint256 public numTokensSellToAddToLiquidity; // Events event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } /** * @dev Constructor. * @param _NAME token name * @param _SYMBOL token symbol * @param _DECIMALS token decimals (uint8) * @param _supply total supply in "whole tokens" (will be multiplied by 10**_DECIMALS) * @param _txFee reflection fee (percent) * @param _lpFee liquidity fee (percent) * @param _MAXAMOUNT maxTxAmount in "whole tokens" (will be multiplied by 10**_DECIMALS) * @param SELLMAXAMOUNT threshold for auto-liquidity (in "whole tokens") * @param routerAddress uniswap router address * @param tokenOwner who should receive the initial supply and be owner */ constructor( string memory _NAME, string memory _SYMBOL, uint8 _DECIMALS, uint256 _supply, uint256 _txFee, uint256 _lpFee, uint256 _MAXAMOUNT, uint256 SELLMAXAMOUNT, address routerAddress, address tokenOwner ) public { _name = _NAME; _symbol = _SYMBOL; _decimals = _DECIMALS; _tTotal = _supply * 10**uint256(_decimals); _rTotal = (MAX - (MAX % _tTotal)); _taxFee = _txFee; _liquidityFee = _lpFee; _previousTaxFee = _taxFee; _previousLiquidityFee = _liquidityFee; _maxTxAmount = _MAXAMOUNT * 10**uint256(_decimals); numTokensSellToAddToLiquidity = SELLMAXAMOUNT * 10**uint256(_decimals); // Give the entire reflection supply to tokenOwner _rOwned[tokenOwner] = _rTotal; // Initialize Uniswap IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( routerAddress ); // Create a uniswap pair for this new token address _pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Pair = _pair; uniswapV2Router = _uniswapV2Router; // Exclude owner and contract from fee _isExcludedFromFee[tokenOwner] = true; _isExcludedFromFee[address(this)] = true; // Transfer ownership to tokenOwner _owner = tokenOwner; // Emit supply emit Transfer(address(0), tokenOwner, _tTotal); } // ------------------------------------------------------------------------ // Standard ERC-20 metadata // ------------------------------------------------------------------------ function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } // ------------------------------------------------------------------------ // ERC-20 functions // ------------------------------------------------------------------------ function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer( _msgSender(), recipient, amount ); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve( _msgSender(), spender, amount ); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer( sender, recipient, amount ); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } // ------------------------------------------------------------------------ // Reflection / RFI logic // ------------------------------------------------------------------------ function deliver(uint256 tAmount) public { address sender = _msgSender(); require( !_isExcluded[sender], "Excluded addresses cannot call this function" ); ( uint256 rAmount, , , , , ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub( rAmount ); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add( tAmount ); } function reflectionFromToken( uint256 tAmount, bool deductTransferFee ) public view returns (uint256) { require( tAmount <= _tTotal, "Amount must be less than supply" ); if (!deductTransferFee) { ( uint256 rAmount, , , , , ) = _getValues(tAmount); return rAmount; } else { ( , uint256 rTransferAmount, , , , ) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection( uint256 rAmount ) public view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function isExcludedFromReward( address account ) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function excludeFromReward( address account ) public onlyOwner { require( !_isExcluded[account], "Account is already excluded" ); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection( _rOwned[account] ); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward( address account ) external onlyOwner { require( _isExcluded[account], "Account is not excluded" ); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[ _excluded.length - 1 ]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } // ------------------------------------------------------------------------ // Fee / Liquidity // ------------------------------------------------------------------------ function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function setTaxFeePercent( uint256 taxFee ) external onlyOwner { _taxFee = taxFee; } function setLiquidityFeePercent( uint256 liquidityFee ) external onlyOwner { _liquidityFee = liquidityFee; } function setNumTokensSellToAddToLiquidity( uint256 swapNumber ) public onlyOwner { numTokensSellToAddToLiquidity = swapNumber * 10**uint256(_decimals); } function setMaxTxPercent( uint256 maxTxPercent ) public onlyOwner { _maxTxAmount = maxTxPercent * 10**uint256(_decimals); } function setSwapAndLiquifyEnabled( bool _enabled ) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated( _enabled ); } // to receive ETH from uniswapV2Router receive() external payable {} // ------------------------------------------------------------------------ // Internal reflection helpers // ------------------------------------------------------------------------ function _reflectFee( uint256 rFee, uint256 tFee ) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) { ( tTransferAmount, tFee, tLiquidity ) = _getTValues(tAmount); ( rAmount, rTransferAmount, rFee ) = _getRValues( tAmount, tFee, tLiquidity, _getRate() ); } function _getTValues(uint256 tAmount) private view returns ( uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) { tFee = calculateTaxFee(tAmount); tLiquidity = calculateLiquidityFee( tAmount ); tTransferAmount = tAmount .sub(tFee) .sub(tLiquidity); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate ) private pure returns ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee ) { rAmount = tAmount.mul(currentRate); rFee = tFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul( currentRate ); rTransferAmount = rAmount .sub(rFee) .sub(rLiquidity); } function _getRate() private view returns (uint256) { ( uint256 rSupply, uint256 tSupply ) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for ( uint256 i = 0; i < _excluded.length; i++ ) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) { return (_rTotal, _tTotal); } rSupply = rSupply.sub( _rOwned[_excluded[i]] ); tSupply = tSupply.sub( _tOwned[_excluded[i]] ); } if ( rSupply < _rTotal.div(_tTotal) ) { return (_rTotal, _tTotal); } return (rSupply, tSupply); } function _takeLiquidity( uint256 tLiquidity ) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity.mul( currentRate ); _rOwned[address(this)] = _rOwned[ address(this) ].add(rLiquidity); if (_isExcluded[address(this)]) { _tOwned[address(this)] = _tOwned[ address(this) ].add(tLiquidity); } } function claimTokens() public onlyOwner { payable(_owner).transfer( address(this).balance ); } function calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_taxFee).div( 10**2 ); } function calculateLiquidityFee( uint256 _amount ) private view returns (uint256) { return _amount.mul(_liquidityFee).div( 10**2 ); } function removeAllFee() private { if (_taxFee == 0 && _liquidityFee == 0) return; _previousTaxFee = _taxFee; _previousLiquidityFee = _liquidityFee; _taxFee = 0; _liquidityFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _liquidityFee = _previousLiquidityFee; } function isExcludedFromFee( address account ) public view returns (bool) { return _isExcludedFromFee[account]; } 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 ); } // ------------------------------------------------------------------------ // Transfer logic // ------------------------------------------------------------------------ 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" ); if (from != owner() && to != owner()) { require( amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount." ); } // check contract balance uint256 contractTokenBalance = balanceOf( address(this) ); if ( contractTokenBalance >= _maxTxAmount ) { contractTokenBalance = _maxTxAmount; } bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; // swap & liquify if ( overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { contractTokenBalance = numTokensSellToAddToLiquidity; swapAndLiquify(contractTokenBalance); } bool takeFee = true; // if excluded from fee, remove fees if ( _isExcludedFromFee[from] || _isExcludedFromFee[to] ) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function swapAndLiquify( uint256 contractTokenBalance ) private lockTheSwap { // split the contract balance into halves uint256 half = contractTokenBalance.div( 2 ); uint256 otherHalf = contractTokenBalance.sub( half ); // capture current ETH uint256 initialBalance = address(this) .balance; // swap tokens for ETH swapTokensForEth(half); // how much ETH did we get? uint256 newBalance = address(this) .balance .sub(initialBalance); // add liquidity addLiquidity(otherHalf, newBalance); emit SwapAndLiquify( half, newBalance, otherHalf ); } function swapTokensForEth( uint256 tokenAmount ) private { address[] memory path = new address[]( 2 ); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve( address(this), address(uniswapV2Router), tokenAmount ); // make the swap uniswapV2Router .swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity( uint256 tokenAmount, uint256 ethAmount ) private { // approve token transfer _approve( address(this), address(uniswapV2Router), tokenAmount ); // add the liquidity uniswapV2Router.addLiquidityETH{ value: ethAmount }( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } // transfer with reflection function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); if ( _isExcluded[sender] && !_isExcluded[recipient] ) { _transferFromExcluded( sender, recipient, amount ); } else if ( !_isExcluded[sender] && _isExcluded[recipient] ) { _transferToExcluded( sender, recipient, amount ); } else if ( !_isExcluded[sender] && !_isExcluded[recipient] ) { _transferStandard( sender, recipient, amount ); } else if ( _isExcluded[sender] && _isExcluded[recipient] ) { _transferBothExcluded( sender, recipient, amount ); } else { _transferStandard( sender, recipient, amount ); } if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub( rAmount ); _rOwned[recipient] = _rOwned[recipient] .add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer( sender, recipient, tTransferAmount ); } function _transferToExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub( rAmount ); _tOwned[recipient] = _tOwned[recipient] .add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient] .add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer( sender, recipient, tTransferAmount ); } function _transferFromExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub( tAmount ); _rOwned[sender] = _rOwned[sender].sub( rAmount ); _rOwned[recipient] = _rOwned[recipient] .add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer( sender, recipient, tTransferAmount ); } function _transferBothExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub( tAmount ); _rOwned[sender] = _rOwned[sender].sub( rAmount ); _tOwned[recipient] = _tOwned[recipient] .add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient] .add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer( sender, recipient, tTransferAmount ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"_NAME","type":"string"},{"internalType":"string","name":"_SYMBOL","type":"string"},{"internalType":"uint8","name":"_DECIMALS","type":"uint8"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"uint256","name":"_txFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_MAXAMOUNT","type":"uint256"},{"internalType":"uint256","name":"SELLMAXAMOUNT","type":"uint256"},{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapNumber","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526013805461ff0019166101001790553480156200002057600080fd5b506040516200300c3803806200300c83398181016040526101408110156200004757600080fd5b81019080805160405193929190846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b5060409081526020820151908201516060830151608084015160a085015160c086015160e08701516101009097015195985093965091949093919291620001ee620004f1565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a389516200024b9060039060208d0190620004f5565b508851620002619060049060208c0190620004f5565b506005805460ff191660ff8a8116919091179182905516600a0a8702600c819055600019816200028d57fe5b0619600d819055600f87905560118690556010879055601286905560055460ff16600a0a85810260145584026015556001600160a01b03808316600090815260066020908152604080832094909455835163c45a015560e01b815293518694929385169263c45a0155926004808301939192829003018186803b1580156200031457600080fd5b505afa15801562000329573d6000803e3d6000fd5b505050506040513d60208110156200034057600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b1580156200039157600080fd5b505afa158015620003a6573d6000803e3d6000fd5b505050506040513d6020811015620003bd57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200041057600080fd5b505af115801562000425573d6000803e3d6000fd5b505050506040513d60208110156200043c57600080fd5b50516001600160601b0319606082811b821660a05284901b166080526001600160a01b0384166000818152600960209081526040808320805460ff1990811660019081179092553085528285208054909116909117905582546001600160a01b03191684178355600c5481519081529051949550929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050505050505050505062000591565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200053857805160ff191683800117855562000568565b8280016001018555821562000568579182015b82811115620005685782518255916020019190600101906200054b565b50620005769291506200057a565b5090565b5b808211156200057657600081556001016200057b565b60805160601c60a05160601c612a33620005d960003980610f0e52806119f65250806109ae528061213152806121e9528061221052806122f6528061231d5250612a336000f3fe6080604052600436106102345760003560e01c80636bc87c3a1161012e578063b2bdfa7b116100ab578063dd4670641161006f578063dd467064146107a0578063dd62ed3e146107ca578063ea2f0b3714610805578063f0f165af14610838578063f2fde38b146108625761023b565b8063b2bdfa7b1461070b578063b6c5232414610720578063c49b9a8014610735578063d12a768814610761578063d543dbeb146107765761023b565b80638da5cb5b116100f25780638da5cb5b146106695780638ee88c531461067e57806395d89b41146106a8578063a69df4b5146106bd578063a9059cbb146106d25761023b565b80636bc87c3a146105c457806370a08231146105d9578063715018a61461060c5780637d1db4a51461062157806388f82020146106365761023b565b80633685d419116101bc57806348c54b9d1161018057806348c54b9d1461051f57806349bd5a5e146105345780634a74bb021461054957806352390c021461055e5780635342acb4146105915761023b565b80633685d419146104485780633b124fe71461047b5780633bd5d17314610490578063437823ec146104ba5780634549b039146104ed5761023b565b80631694505e116102035780631694505e1461036a57806318160ddd1461039b57806323b872dd146103b05780632d838119146103f3578063313ce5671461041d5761023b565b8063061c82d01461024057806306fdde031461026c578063095ea7b3146102f657806313114a9d146103435761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026a6004803603602081101561026357600080fd5b5035610895565b005b34801561027857600080fd5b506102816108f2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030257600080fd5b5061032f6004803603604081101561031957600080fd5b506001600160a01b038135169060200135610988565b604080519115158252519081900360200190f35b34801561034f57600080fd5b506103586109a6565b60408051918252519081900360200190f35b34801561037657600080fd5b5061037f6109ac565b604080516001600160a01b039092168252519081900360200190f35b3480156103a757600080fd5b506103586109d0565b3480156103bc57600080fd5b5061032f600480360360608110156103d357600080fd5b506001600160a01b038135811691602081013590911690604001356109d6565b3480156103ff57600080fd5b506103586004803603602081101561041657600080fd5b5035610a5d565b34801561042957600080fd5b50610432610abf565b6040805160ff9092168252519081900360200190f35b34801561045457600080fd5b5061026a6004803603602081101561046b57600080fd5b50356001600160a01b0316610ac8565b34801561048757600080fd5b50610358610c89565b34801561049c57600080fd5b5061026a600480360360208110156104b357600080fd5b5035610c8f565b3480156104c657600080fd5b5061026a600480360360208110156104dd57600080fd5b50356001600160a01b0316610d69565b3480156104f957600080fd5b506103586004803603604081101561051057600080fd5b50803590602001351515610de5565b34801561052b57600080fd5b5061026a610e77565b34801561054057600080fd5b5061037f610f0c565b34801561055557600080fd5b5061032f610f30565b34801561056a57600080fd5b5061026a6004803603602081101561058157600080fd5b50356001600160a01b0316610f3e565b34801561059d57600080fd5b5061032f600480360360208110156105b457600080fd5b50356001600160a01b03166110c4565b3480156105d057600080fd5b506103586110e2565b3480156105e557600080fd5b50610358600480360360208110156105fc57600080fd5b50356001600160a01b03166110e8565b34801561061857600080fd5b5061026a61114a565b34801561062d57600080fd5b506103586111da565b34801561064257600080fd5b5061032f6004803603602081101561065957600080fd5b50356001600160a01b03166111e0565b34801561067557600080fd5b5061037f6111fe565b34801561068a57600080fd5b5061026a600480360360208110156106a157600080fd5b503561120d565b3480156106b457600080fd5b5061028161126a565b3480156106c957600080fd5b5061026a6112cb565b3480156106de57600080fd5b5061032f600480360360408110156106f557600080fd5b506001600160a01b0381351690602001356113ae565b34801561071757600080fd5b5061037f6113c2565b34801561072c57600080fd5b506103586113d1565b34801561074157600080fd5b5061026a6004803603602081101561075857600080fd5b503515156113d7565b34801561076d57600080fd5b5061035861147e565b34801561078257600080fd5b5061026a6004803603602081101561079957600080fd5b5035611484565b3480156107ac57600080fd5b5061026a600480360360208110156107c357600080fd5b50356114eb565b3480156107d657600080fd5b50610358600480360360408110156107ed57600080fd5b506001600160a01b0381358116916020013516611589565b34801561081157600080fd5b5061026a6004803603602081101561082857600080fd5b50356001600160a01b03166115b4565b34801561084457600080fd5b5061026a6004803603602081101561085b57600080fd5b503561162d565b34801561086e57600080fd5b5061026a6004803603602081101561088557600080fd5b50356001600160a01b0316611694565b61089d61177a565b6000546001600160a01b039081169116146108ed576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b600f55565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561097e5780601f106109535761010080835404028352916020019161097e565b820191906000526020600020905b81548152906001019060200180831161096157829003601f168201915b5050505050905090565b600061099c61099561177a565b848461177e565b5060015b92915050565b600e5490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600c5490565b60006109e384848461186a565b610a53846109ef61177a565b610a4e856040518060600160405280602881526020016128d5602891396001600160a01b038a16600090815260086020526040812090610a2d61177a565b6001600160a01b031681526020810191909152604001600020549190611ab0565b61177e565b5060019392505050565b6000600d54821115610aa05760405162461bcd60e51b815260040180806020018281038252602a81526020018061281a602a913960400191505060405180910390fd5b6000610aaa611b47565b9050610ab68382611b6a565b9150505b919050565b60055460ff1690565b610ad061177a565b6000546001600160a01b03908116911614610b20576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a602052604090205460ff16610b8d576040805162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015290519081900360640190fd5b60005b600b54811015610c8557816001600160a01b0316600b8281548110610bb157fe5b6000918252602090912001546001600160a01b03161415610c7d57600b80546000198101908110610bde57fe5b600091825260209091200154600b80546001600160a01b039092169183908110610c0457fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600782526040808220829055600a90925220805460ff19169055600b805480610c5657fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610c85565b600101610b90565b5050565b600f5481565b6000610c9961177a565b6001600160a01b0381166000908152600a602052604090205490915060ff1615610cf45760405162461bcd60e51b815260040180806020018281038252602c8152602001806129af602c913960400191505060405180910390fd5b6000610cff83611bb3565b505050506001600160a01b038416600090815260066020526040902054919250610d2b91905082611bf0565b6001600160a01b038316600090815260066020526040902055600d54610d519082611bf0565b600d55600e54610d619084611c32565b600e55505050565b610d7161177a565b6000546001600160a01b03908116911614610dc1576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000600c54831115610e3e576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610e5d576000610e4e84611bb3565b509395506109a0945050505050565b6000610e6884611bb3565b509295506109a0945050505050565b610e7f61177a565b6000546001600160a01b03908116911614610ecf576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f09573d6000803e3d6000fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601354610100900460ff1681565b610f4661177a565b6000546001600160a01b03908116911614610f96576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a602052604090205460ff1615611004576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020541561105e576001600160a01b03811660009081526006602052604090205461104490610a5d565b6001600160a01b0382166000908152600760205260409020555b6001600160a01b03166000818152600a60205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b6001600160a01b031660009081526009602052604090205460ff1690565b60115481565b6001600160a01b0381166000908152600a602052604081205460ff161561112857506001600160a01b038116600090815260076020526040902054610aba565b6001600160a01b0382166000908152600660205260409020546109a090610a5d565b61115261177a565b6000546001600160a01b039081169116146111a2576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b600080546040516001600160a01b039091169060008051602061291d833981519152908390a3600080546001600160a01b0319169055565b60145481565b6001600160a01b03166000908152600a602052604090205460ff1690565b6000546001600160a01b031690565b61121561177a565b6000546001600160a01b03908116911614611265576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b601155565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561097e5780601f106109535761010080835404028352916020019161097e565b6001546001600160a01b031633146113145760405162461bcd60e51b81526004018080602001828103825260238152602001806129db6023913960400191505060405180910390fd5b600254421161135f576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b604482015290519081900360640190fd5b600154600080546040516001600160a01b03938416939091169160008051602061291d83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061099c6113bb61177a565b848461186a565b6000546001600160a01b031681565b60025490565b6113df61177a565b6000546001600160a01b0390811691161461142f576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60138054821515610100810261ff00199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b60155481565b61148c61177a565b6000546001600160a01b039081169116146114dc576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60055460ff16600a0a02601455565b6114f361177a565b6000546001600160a01b03908116911614611543576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b03841617909155168155428201600255604051819060008051602061291d833981519152908290a350565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6115bc61177a565b6000546001600160a01b0390811691161461160c576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b61163561177a565b6000546001600160a01b03908116911614611685576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60055460ff16600a0a02601555565b61169c61177a565b6000546001600160a01b039081169116146116ec576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b0381166117315760405162461bcd60e51b81526004018080602001828103825260268152602001806128446026913960400191505060405180910390fd5b600080546040516001600160a01b038085169392169160008051602061291d83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b0383166117c35760405162461bcd60e51b815260040180806020018281038252602481526020018061298b6024913960400191505060405180910390fd5b6001600160a01b0382166118085760405162461bcd60e51b815260040180806020018281038252602281526020018061286a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118af5760405162461bcd60e51b81526004018080602001828103825260258152602001806129666025913960400191505060405180910390fd5b6001600160a01b0382166118f45760405162461bcd60e51b81526004018080602001828103825260238152602001806127f76023913960400191505060405180910390fd5b600081116119335760405162461bcd60e51b815260040180806020018281038252602981526020018061293d6029913960400191505060405180910390fd5b61193b6111fe565b6001600160a01b0316836001600160a01b031614158015611975575061195f6111fe565b6001600160a01b0316826001600160a01b031614155b156119bb576014548111156119bb5760405162461bcd60e51b815260040180806020018281038252602881526020018061288c6028913960400191505060405180910390fd5b60006119c6306110e8565b905060145481106119d657506014545b601554811080159081906119ed575060135460ff16155b8015611a2b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611a3e5750601354610100900460ff165b15611a51576015549150611a5182611c8c565b6001600160a01b03851660009081526009602052604090205460019060ff1680611a9357506001600160a01b03851660009081526009602052604090205460ff165b15611a9c575060005b611aa886868684611d29565b505050505050565b60008184841115611b3f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b04578181015183820152602001611aec565b50505050905090810190601f168015611b315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611b54611e9d565b9092509050611b638282611b6a565b9250505090565b6000611bac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612000565b9392505050565b600080600080600080611bc587612065565b91945092509050611bdf878383611bda611b47565b61209c565b919990985090965092945090925090565b6000611bac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ab0565b600082820183811015611bac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6013805460ff191660011790556000611ca6826002611b6a565b90506000611cb48383611bf0565b905047611cc0836120e1565b6000611ccc4783611bf0565b9050611cd883826122f0565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a150506013805460ff19169055505050565b80611d3657611d366123ee565b6001600160a01b0384166000908152600a602052604090205460ff168015611d7757506001600160a01b0383166000908152600a602052604090205460ff16155b15611d8c57611d87848484612420565b611e8a565b6001600160a01b0384166000908152600a602052604090205460ff16158015611dcd57506001600160a01b0383166000908152600a602052604090205460ff165b15611ddd57611d87848484612544565b6001600160a01b0384166000908152600a602052604090205460ff16158015611e1f57506001600160a01b0383166000908152600a602052604090205460ff16155b15611e2f57611d878484846125ed565b6001600160a01b0384166000908152600a602052604090205460ff168015611e6f57506001600160a01b0383166000908152600a602052604090205460ff165b15611e7f57611d87848484612631565b611e8a8484846125ed565b80611e9757611e976126a4565b50505050565b600d54600c546000918291825b600b54811015611fce578260066000600b8481548110611ec657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f2b57508160076000600b8481548110611f0457fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f4257600d54600c5494509450505050611ffc565b611f8260066000600b8481548110611f5657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611bf0565b9250611fc460076000600b8481548110611f9857fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611bf0565b9150600101611eaa565b50600c54600d54611fde91611b6a565b821015611ff657600d54600c54935093505050611ffc565b90925090505b9091565b6000818361204f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611b04578181015183820152602001611aec565b50600083858161205b57fe5b0495945050505050565b6000806000612073846126b2565b915061207e846126d4565b90506120948161208e8685611bf0565b90611bf0565b949193509150565b600080806120aa87856126f0565b92506120b686856126f0565b905060006120c486866126f0565b90506120d48161208e8685611bf0565b9250509450945094915050565b6040805160028082526060808301845292602083019080368337019050509050308160008151811061210f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561218857600080fd5b505afa15801561219c573d6000803e3d6000fd5b505050506040513d60208110156121b257600080fd5b50518151829060019081106121c357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061220e307f00000000000000000000000000000000000000000000000000000000000000008461177e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156122b357818101518382015260200161229b565b505050509050019650505050505050600060405180830381600087803b1580156122dc57600080fd5b505af1158015611aa8573d6000803e3d6000fd5b61231b307f00000000000000000000000000000000000000000000000000000000000000008461177e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806123586111fe565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50505050506040513d6060811015611e9757600080fd5b600f541580156123fe5750601154155b156124085761241e565b600f805460105560118054601255600091829055555b565b60008060008060008061243287611bb3565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506124649088611bf0565b6001600160a01b038a166000908152600760209081526040808320939093556006905220546124939087611bf0565b6001600160a01b03808b1660009081526006602052604080822093909355908a16815220546124c29086611c32565b6001600160a01b0389166000908152600660205260409020556124e481612749565b6124ee84836127d2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061255687611bb3565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506125889087611bf0565b6001600160a01b03808b16600090815260066020908152604080832094909455918b168152600790915220546125be9084611c32565b6001600160a01b0389166000908152600760209081526040808320939093556006905220546124c29086611c32565b6000806000806000806125ff87611bb3565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506124939087611bf0565b60008060008060008061264387611bb3565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506126759088611bf0565b6001600160a01b038a166000908152600760209081526040808320939093556006905220546125889087611bf0565b601054600f55601254601155565b60006109a060646126ce600f54856126f090919063ffffffff16565b90611b6a565b60006109a060646126ce601154856126f090919063ffffffff16565b6000826126ff575060006109a0565b8282028284828161270c57fe5b0414611bac5760405162461bcd60e51b81526004018080602001828103825260218152602001806128b46021913960400191505060405180910390fd5b6000612753611b47565b9050600061276183836126f0565b3060009081526006602052604090205490915061277e9082611c32565b30600090815260066020908152604080832093909355600a9052205460ff16156127cd57306000908152600760205260409020546127bc9084611c32565b306000908152600760205260409020555b505050565b600d546127df9083611bf0565b600d55600e546127ef9082611c32565b600e55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636ba264697066735822122099f296dcdd8bd7aba99d91ebfba0b2ce456f9a3108d5778e5a3e7c72c64ad62b64736f6c634300060c003300000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009935f581f05000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000007a919134c04000000000000000000000000000000000000000000000000000007a919134c040000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000b7b3b7244710e4ef1eb7eef57ba71275bb032757000000000000000000000000000000000000000000000000000000000000000d42726f63636f6c6920546573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057442524f43000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102345760003560e01c80636bc87c3a1161012e578063b2bdfa7b116100ab578063dd4670641161006f578063dd467064146107a0578063dd62ed3e146107ca578063ea2f0b3714610805578063f0f165af14610838578063f2fde38b146108625761023b565b8063b2bdfa7b1461070b578063b6c5232414610720578063c49b9a8014610735578063d12a768814610761578063d543dbeb146107765761023b565b80638da5cb5b116100f25780638da5cb5b146106695780638ee88c531461067e57806395d89b41146106a8578063a69df4b5146106bd578063a9059cbb146106d25761023b565b80636bc87c3a146105c457806370a08231146105d9578063715018a61461060c5780637d1db4a51461062157806388f82020146106365761023b565b80633685d419116101bc57806348c54b9d1161018057806348c54b9d1461051f57806349bd5a5e146105345780634a74bb021461054957806352390c021461055e5780635342acb4146105915761023b565b80633685d419146104485780633b124fe71461047b5780633bd5d17314610490578063437823ec146104ba5780634549b039146104ed5761023b565b80631694505e116102035780631694505e1461036a57806318160ddd1461039b57806323b872dd146103b05780632d838119146103f3578063313ce5671461041d5761023b565b8063061c82d01461024057806306fdde031461026c578063095ea7b3146102f657806313114a9d146103435761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061026a6004803603602081101561026357600080fd5b5035610895565b005b34801561027857600080fd5b506102816108f2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030257600080fd5b5061032f6004803603604081101561031957600080fd5b506001600160a01b038135169060200135610988565b604080519115158252519081900360200190f35b34801561034f57600080fd5b506103586109a6565b60408051918252519081900360200190f35b34801561037657600080fd5b5061037f6109ac565b604080516001600160a01b039092168252519081900360200190f35b3480156103a757600080fd5b506103586109d0565b3480156103bc57600080fd5b5061032f600480360360608110156103d357600080fd5b506001600160a01b038135811691602081013590911690604001356109d6565b3480156103ff57600080fd5b506103586004803603602081101561041657600080fd5b5035610a5d565b34801561042957600080fd5b50610432610abf565b6040805160ff9092168252519081900360200190f35b34801561045457600080fd5b5061026a6004803603602081101561046b57600080fd5b50356001600160a01b0316610ac8565b34801561048757600080fd5b50610358610c89565b34801561049c57600080fd5b5061026a600480360360208110156104b357600080fd5b5035610c8f565b3480156104c657600080fd5b5061026a600480360360208110156104dd57600080fd5b50356001600160a01b0316610d69565b3480156104f957600080fd5b506103586004803603604081101561051057600080fd5b50803590602001351515610de5565b34801561052b57600080fd5b5061026a610e77565b34801561054057600080fd5b5061037f610f0c565b34801561055557600080fd5b5061032f610f30565b34801561056a57600080fd5b5061026a6004803603602081101561058157600080fd5b50356001600160a01b0316610f3e565b34801561059d57600080fd5b5061032f600480360360208110156105b457600080fd5b50356001600160a01b03166110c4565b3480156105d057600080fd5b506103586110e2565b3480156105e557600080fd5b50610358600480360360208110156105fc57600080fd5b50356001600160a01b03166110e8565b34801561061857600080fd5b5061026a61114a565b34801561062d57600080fd5b506103586111da565b34801561064257600080fd5b5061032f6004803603602081101561065957600080fd5b50356001600160a01b03166111e0565b34801561067557600080fd5b5061037f6111fe565b34801561068a57600080fd5b5061026a600480360360208110156106a157600080fd5b503561120d565b3480156106b457600080fd5b5061028161126a565b3480156106c957600080fd5b5061026a6112cb565b3480156106de57600080fd5b5061032f600480360360408110156106f557600080fd5b506001600160a01b0381351690602001356113ae565b34801561071757600080fd5b5061037f6113c2565b34801561072c57600080fd5b506103586113d1565b34801561074157600080fd5b5061026a6004803603602081101561075857600080fd5b503515156113d7565b34801561076d57600080fd5b5061035861147e565b34801561078257600080fd5b5061026a6004803603602081101561079957600080fd5b5035611484565b3480156107ac57600080fd5b5061026a600480360360208110156107c357600080fd5b50356114eb565b3480156107d657600080fd5b50610358600480360360408110156107ed57600080fd5b506001600160a01b0381358116916020013516611589565b34801561081157600080fd5b5061026a6004803603602081101561082857600080fd5b50356001600160a01b03166115b4565b34801561084457600080fd5b5061026a6004803603602081101561085b57600080fd5b503561162d565b34801561086e57600080fd5b5061026a6004803603602081101561088557600080fd5b50356001600160a01b0316611694565b61089d61177a565b6000546001600160a01b039081169116146108ed576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b600f55565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561097e5780601f106109535761010080835404028352916020019161097e565b820191906000526020600020905b81548152906001019060200180831161096157829003601f168201915b5050505050905090565b600061099c61099561177a565b848461177e565b5060015b92915050565b600e5490565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600c5490565b60006109e384848461186a565b610a53846109ef61177a565b610a4e856040518060600160405280602881526020016128d5602891396001600160a01b038a16600090815260086020526040812090610a2d61177a565b6001600160a01b031681526020810191909152604001600020549190611ab0565b61177e565b5060019392505050565b6000600d54821115610aa05760405162461bcd60e51b815260040180806020018281038252602a81526020018061281a602a913960400191505060405180910390fd5b6000610aaa611b47565b9050610ab68382611b6a565b9150505b919050565b60055460ff1690565b610ad061177a565b6000546001600160a01b03908116911614610b20576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a602052604090205460ff16610b8d576040805162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604482015290519081900360640190fd5b60005b600b54811015610c8557816001600160a01b0316600b8281548110610bb157fe5b6000918252602090912001546001600160a01b03161415610c7d57600b80546000198101908110610bde57fe5b600091825260209091200154600b80546001600160a01b039092169183908110610c0457fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600782526040808220829055600a90925220805460ff19169055600b805480610c5657fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610c85565b600101610b90565b5050565b600f5481565b6000610c9961177a565b6001600160a01b0381166000908152600a602052604090205490915060ff1615610cf45760405162461bcd60e51b815260040180806020018281038252602c8152602001806129af602c913960400191505060405180910390fd5b6000610cff83611bb3565b505050506001600160a01b038416600090815260066020526040902054919250610d2b91905082611bf0565b6001600160a01b038316600090815260066020526040902055600d54610d519082611bf0565b600d55600e54610d619084611c32565b600e55505050565b610d7161177a565b6000546001600160a01b03908116911614610dc1576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000600c54831115610e3e576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610e5d576000610e4e84611bb3565b509395506109a0945050505050565b6000610e6884611bb3565b509295506109a0945050505050565b610e7f61177a565b6000546001600160a01b03908116911614610ecf576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f09573d6000803e3d6000fd5b50565b7f000000000000000000000000bdb2f9a3f85ceec397d7276a666b3b1796e7e9ac81565b601354610100900460ff1681565b610f4661177a565b6000546001600160a01b03908116911614610f96576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a602052604090205460ff1615611004576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020541561105e576001600160a01b03811660009081526006602052604090205461104490610a5d565b6001600160a01b0382166000908152600760205260409020555b6001600160a01b03166000818152600a60205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b6001600160a01b031660009081526009602052604090205460ff1690565b60115481565b6001600160a01b0381166000908152600a602052604081205460ff161561112857506001600160a01b038116600090815260076020526040902054610aba565b6001600160a01b0382166000908152600660205260409020546109a090610a5d565b61115261177a565b6000546001600160a01b039081169116146111a2576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b600080546040516001600160a01b039091169060008051602061291d833981519152908390a3600080546001600160a01b0319169055565b60145481565b6001600160a01b03166000908152600a602052604090205460ff1690565b6000546001600160a01b031690565b61121561177a565b6000546001600160a01b03908116911614611265576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b601155565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561097e5780601f106109535761010080835404028352916020019161097e565b6001546001600160a01b031633146113145760405162461bcd60e51b81526004018080602001828103825260238152602001806129db6023913960400191505060405180910390fd5b600254421161135f576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b604482015290519081900360640190fd5b600154600080546040516001600160a01b03938416939091169160008051602061291d83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061099c6113bb61177a565b848461186a565b6000546001600160a01b031681565b60025490565b6113df61177a565b6000546001600160a01b0390811691161461142f576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60138054821515610100810261ff00199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b60155481565b61148c61177a565b6000546001600160a01b039081169116146114dc576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60055460ff16600a0a02601455565b6114f361177a565b6000546001600160a01b03908116911614611543576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b03841617909155168155428201600255604051819060008051602061291d833981519152908290a350565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6115bc61177a565b6000546001600160a01b0390811691161461160c576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b61163561177a565b6000546001600160a01b03908116911614611685576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b60055460ff16600a0a02601555565b61169c61177a565b6000546001600160a01b039081169116146116ec576040805162461bcd60e51b815260206004820181905260248201526000805160206128fd833981519152604482015290519081900360640190fd5b6001600160a01b0381166117315760405162461bcd60e51b81526004018080602001828103825260268152602001806128446026913960400191505060405180910390fd5b600080546040516001600160a01b038085169392169160008051602061291d83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b0383166117c35760405162461bcd60e51b815260040180806020018281038252602481526020018061298b6024913960400191505060405180910390fd5b6001600160a01b0382166118085760405162461bcd60e51b815260040180806020018281038252602281526020018061286a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118af5760405162461bcd60e51b81526004018080602001828103825260258152602001806129666025913960400191505060405180910390fd5b6001600160a01b0382166118f45760405162461bcd60e51b81526004018080602001828103825260238152602001806127f76023913960400191505060405180910390fd5b600081116119335760405162461bcd60e51b815260040180806020018281038252602981526020018061293d6029913960400191505060405180910390fd5b61193b6111fe565b6001600160a01b0316836001600160a01b031614158015611975575061195f6111fe565b6001600160a01b0316826001600160a01b031614155b156119bb576014548111156119bb5760405162461bcd60e51b815260040180806020018281038252602881526020018061288c6028913960400191505060405180910390fd5b60006119c6306110e8565b905060145481106119d657506014545b601554811080159081906119ed575060135460ff16155b8015611a2b57507f000000000000000000000000bdb2f9a3f85ceec397d7276a666b3b1796e7e9ac6001600160a01b0316856001600160a01b031614155b8015611a3e5750601354610100900460ff165b15611a51576015549150611a5182611c8c565b6001600160a01b03851660009081526009602052604090205460019060ff1680611a9357506001600160a01b03851660009081526009602052604090205460ff165b15611a9c575060005b611aa886868684611d29565b505050505050565b60008184841115611b3f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b04578181015183820152602001611aec565b50505050905090810190601f168015611b315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611b54611e9d565b9092509050611b638282611b6a565b9250505090565b6000611bac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612000565b9392505050565b600080600080600080611bc587612065565b91945092509050611bdf878383611bda611b47565b61209c565b919990985090965092945090925090565b6000611bac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ab0565b600082820183811015611bac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6013805460ff191660011790556000611ca6826002611b6a565b90506000611cb48383611bf0565b905047611cc0836120e1565b6000611ccc4783611bf0565b9050611cd883826122f0565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a150506013805460ff19169055505050565b80611d3657611d366123ee565b6001600160a01b0384166000908152600a602052604090205460ff168015611d7757506001600160a01b0383166000908152600a602052604090205460ff16155b15611d8c57611d87848484612420565b611e8a565b6001600160a01b0384166000908152600a602052604090205460ff16158015611dcd57506001600160a01b0383166000908152600a602052604090205460ff165b15611ddd57611d87848484612544565b6001600160a01b0384166000908152600a602052604090205460ff16158015611e1f57506001600160a01b0383166000908152600a602052604090205460ff16155b15611e2f57611d878484846125ed565b6001600160a01b0384166000908152600a602052604090205460ff168015611e6f57506001600160a01b0383166000908152600a602052604090205460ff165b15611e7f57611d87848484612631565b611e8a8484846125ed565b80611e9757611e976126a4565b50505050565b600d54600c546000918291825b600b54811015611fce578260066000600b8481548110611ec657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f2b57508160076000600b8481548110611f0457fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f4257600d54600c5494509450505050611ffc565b611f8260066000600b8481548110611f5657fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611bf0565b9250611fc460076000600b8481548110611f9857fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611bf0565b9150600101611eaa565b50600c54600d54611fde91611b6a565b821015611ff657600d54600c54935093505050611ffc565b90925090505b9091565b6000818361204f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611b04578181015183820152602001611aec565b50600083858161205b57fe5b0495945050505050565b6000806000612073846126b2565b915061207e846126d4565b90506120948161208e8685611bf0565b90611bf0565b949193509150565b600080806120aa87856126f0565b92506120b686856126f0565b905060006120c486866126f0565b90506120d48161208e8685611bf0565b9250509450945094915050565b6040805160028082526060808301845292602083019080368337019050509050308160008151811061210f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561218857600080fd5b505afa15801561219c573d6000803e3d6000fd5b505050506040513d60208110156121b257600080fd5b50518151829060019081106121c357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061220e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461177e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156122b357818101518382015260200161229b565b505050509050019650505050505050600060405180830381600087803b1580156122dc57600080fd5b505af1158015611aa8573d6000803e3d6000fd5b61231b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461177e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806123586111fe565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50505050506040513d6060811015611e9757600080fd5b600f541580156123fe5750601154155b156124085761241e565b600f805460105560118054601255600091829055555b565b60008060008060008061243287611bb3565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506124649088611bf0565b6001600160a01b038a166000908152600760209081526040808320939093556006905220546124939087611bf0565b6001600160a01b03808b1660009081526006602052604080822093909355908a16815220546124c29086611c32565b6001600160a01b0389166000908152600660205260409020556124e481612749565b6124ee84836127d2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061255687611bb3565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506125889087611bf0565b6001600160a01b03808b16600090815260066020908152604080832094909455918b168152600790915220546125be9084611c32565b6001600160a01b0389166000908152600760209081526040808320939093556006905220546124c29086611c32565b6000806000806000806125ff87611bb3565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506124939087611bf0565b60008060008060008061264387611bb3565b6001600160a01b038f16600090815260076020526040902054959b509399509197509550935091506126759088611bf0565b6001600160a01b038a166000908152600760209081526040808320939093556006905220546125889087611bf0565b601054600f55601254601155565b60006109a060646126ce600f54856126f090919063ffffffff16565b90611b6a565b60006109a060646126ce601154856126f090919063ffffffff16565b6000826126ff575060006109a0565b8282028284828161270c57fe5b0414611bac5760405162461bcd60e51b81526004018080602001828103825260218152602001806128b46021913960400191505060405180910390fd5b6000612753611b47565b9050600061276183836126f0565b3060009081526006602052604090205490915061277e9082611c32565b30600090815260066020908152604080832093909355600a9052205460ff16156127cd57306000908152600760205260409020546127bc9084611c32565b306000908152600760205260409020555b505050565b600d546127df9083611bf0565b600d55600e546127ef9082611c32565b600e55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636ba264697066735822122099f296dcdd8bd7aba99d91ebfba0b2ce456f9a3108d5778e5a3e7c72c64ad62b64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009935f581f05000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000007a919134c04000000000000000000000000000000000000000000000000000007a919134c040000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000b7b3b7244710e4ef1eb7eef57ba71275bb032757000000000000000000000000000000000000000000000000000000000000000d42726f63636f6c6920546573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057442524f43000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _NAME (string): Broccoli Test
Arg [1] : _SYMBOL (string): tBROC
Arg [2] : _DECIMALS (uint8): 2
Arg [3] : _supply (uint256): 690000000000000000
Arg [4] : _txFee (uint256): 5
Arg [5] : _lpFee (uint256): 5
Arg [6] : _MAXAMOUNT (uint256): 34500000000000000
Arg [7] : SELLMAXAMOUNT (uint256): 34500000000000000
Arg [8] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [9] : tokenOwner (address): 0xb7B3b7244710e4Ef1eb7EeF57bA71275bb032757
-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [3] : 00000000000000000000000000000000000000000000000009935f581f050000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 000000000000000000000000000000000000000000000000007a919134c04000
Arg [7] : 000000000000000000000000000000000000000000000000007a919134c04000
Arg [8] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [9] : 000000000000000000000000b7b3b7244710e4ef1eb7eef57ba71275bb032757
Arg [10] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [11] : 42726f63636f6c69205465737400000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [13] : 7442524f43000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
20846:24484:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30786:112;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30786:112:0;;:::i;:::-;;25130:115;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26507:236;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26507:236:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29191:119;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21978:51;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;21978:51:0;;;;;;;;;;;;;;25503:136;;;;;;;;;;;;;:::i;26751:496::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26751:496:0;;;;;;;;;;;;;;;;;:::i;28733:306::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28733:306:0;;:::i;25380:115::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29743:566;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29743:566:0;-1:-1:-1;;;;;29743:566:0;;:::i;21803:22::-;;;;;;;;;;;;;:::i;27448:558::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27448:558:0;;:::i;30503:134::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30503:134:0;-1:-1:-1;;;;;30503:134:0;;:::i;28014:711::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28014:711:0;;;;;;;;;:::i;35340:130::-;;;;;;;;;;;;;:::i;22036:38::-;;;;;;;;;;;;;:::i;22129:40::-;;;;;;;;;;;;;:::i;29318:417::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29318:417:0;-1:-1:-1;;;;;29318:417:0;;:::i;36247:140::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36247:140:0;-1:-1:-1;;;;;36247:140:0;;:::i;21870:28::-;;;;;;;;;;;;;:::i;25834:239::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25834:239:0;-1:-1:-1;;;;;25834:239:0;;:::i;8956:217::-;;;;;;;;;;;;;:::i;22193:27::-;;;;;;;;;;;;;:::i;29047:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29047:136:0;-1:-1:-1;;;;;29047:136:0;;:::i;8869:79::-;;;;;;;;;;;;;:::i;30906:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30906:136:0;;:::i;25253:119::-;;;;;;;;;;;;;:::i;9943:390::-;;;;;;;;;;;;;:::i;26081:242::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26081:242:0;;;;;;;;:::i;8325:21::-;;;;;;;;;;;;;:::i;9523:121::-;;;;;;;;;;;;;:::i;31437:211::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31437:211:0;;;;:::i;22227:44::-;;;;;;;;;;;;;:::i;31252:177::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31252:177:0;;:::i;9652:283::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9652:283:0;;:::i;26331:168::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26331:168:0;;;;;;;;;;:::i;30645:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30645:133:0;-1:-1:-1;;;;;30645:133:0;;:::i;31050:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31050:194:0;;:::i;9181:334::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9181:334:0;-1:-1:-1;;;;;9181:334:0;;:::i;30786:112::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;30874:7:::1;:16:::0;30786:112::o;25130:115::-;25232:5;25225:12;;;;;;;;-1:-1:-1;;25225:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25194:13;;25225:12;;25232:5;;25225:12;;25232:5;25225:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25130:115;:::o;26507:236::-;26607:4;26624:89;26647:12;:10;:12::i;:::-;26674:7;26696:6;26624:8;:89::i;:::-;-1:-1:-1;26731:4:0;26507:236;;;;;:::o;29191:119::-;29292:10;;29191:119;:::o;21978:51::-;;;:::o;25503:136::-;25624:7;;25503:136;:::o;26751:496::-;26883:4;26900:86;26924:6;26945:9;26969:6;26900:9;:86::i;:::-;26997:220;27020:6;27041:12;:10;:12::i;:::-;27068:138;27124:6;27068:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27068:19:0;;;;;;:11;:19;;;;;;27088:12;:10;:12::i;:::-;-1:-1:-1;;;;;27068:33:0;;;;;;;;;;;;-1:-1:-1;27068:33:0;;;:138;:37;:138::i;:::-;26997:8;:220::i;:::-;-1:-1:-1;27235:4:0;26751:496;;;;;:::o;28733:306::-;28816:7;28869;;28858;:18;;28836:110;;;;-1:-1:-1;;;28836:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28957:19;28979:10;:8;:10::i;:::-;28957:32;-1:-1:-1;29007:24:0;:7;28957:32;29007:11;:24::i;:::-;29000:31;;;28733:306;;;;:::o;25380:115::-;25478:9;;;;25380:115;:::o;29743:566::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;29853:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;29831:93;;;::::0;;-1:-1:-1;;;29831:93:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;29940:9;29935:367;29959:9;:16:::0;29955:20;::::1;29935:367;;;30017:7;-1:-1:-1::0;;;;;30001:23:0::1;:9;30011:1;30001:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;30001:12:0::1;:23;29997:294;;;30060:9;30092:16:::0;;-1:-1:-1;;30092:20:0;;;30060:71;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;30045:9:::1;:12:::0;;-1:-1:-1;;;;;30060:71:0;;::::1;::::0;30055:1;;30045:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:86:::0;;-1:-1:-1;;;;;;30045:86:0::1;-1:-1:-1::0;;;;;30045:86:0;;::::1;;::::0;;30150:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;30189:11:::1;:20:::0;;;;:28;;-1:-1:-1;;30189:28:0::1;::::0;;30236:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;30236:15:0;;;;;-1:-1:-1;;;;;;30236:15:0::1;::::0;;;;;30270:5:::1;;29997:294;29977:3;;29935:367;;;;29743:566:::0;:::o;21803:22::-;;;;:::o;27448:558::-;27514:14;27531:12;:10;:12::i;:::-;-1:-1:-1;;;;;27577:19:0;;;;;;:11;:19;;;;;;27514:29;;-1:-1:-1;27577:19:0;;27576:20;27554:114;;;;-1:-1:-1;;;27554:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27694:15;27786:19;27797:7;27786:10;:19::i;:::-;-1:-1:-1;;;;;;;;;27834:15:0;;;;;;:7;:15;;;;;;27679:126;;-1:-1:-1;27834:52:0;;:15;-1:-1:-1;27679:126:0;27834:19;:52::i;:::-;-1:-1:-1;;;;;27816:15:0;;;;;;:7;:15;;;;;:70;27907:7;;:20;;27919:7;27907:11;:20::i;:::-;27897:7;:30;27951:10;;:47;;27980:7;27951:14;:47::i;:::-;27938:10;:60;-1:-1:-1;;;27448:558:0:o;30503:134::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;30595:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;30595:34:0::1;30625:4;30595:34;::::0;;30503:134::o;28014:711::-;28130:7;28183;;28172;:18;;28150:99;;;;;-1:-1:-1;;;28150:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;28265:17;28260:458;;28318:15;28430:19;28441:7;28430:10;:19::i;:::-;-1:-1:-1;28299:150:0;;-1:-1:-1;28464:14:0;;-1:-1:-1;;;;;28464:14:0;28260:458;28549:23;28650:19;28661:7;28650:10;:19::i;:::-;-1:-1:-1;28511:158:0;;-1:-1:-1;28684:22:0;;-1:-1:-1;;;;;28684:22:0;35340:130;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;35399:6:::1;::::0;;35391:71:::1;::::0;-1:-1:-1;;;;;35399:6:0;;::::1;::::0;35430:21:::1;35391:71:::0;::::1;;;::::0;35430:21;;35391:71;35399:6;35391:71;35430:21;35399:6;35391:71;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;35340:130::o:0;22036:38::-;;;:::o;22129:40::-;;;;;;;;;:::o;29318:417::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;29429:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;29428:21;29406:98;;;::::0;;-1:-1:-1;;;29406:98:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;29519:16:0;::::1;29538:1;29519:16:::0;;;:7:::1;:16;::::0;;;;;:20;29515:141:::1;;-1:-1:-1::0;;;;;29613:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;29575:69:::1;::::0;:19:::1;:69::i;:::-;-1:-1:-1::0;;;;;29556:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:88;29515:141:::1;-1:-1:-1::0;;;;;29666:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;29666:27:0::1;29689:4;29666:27:::0;;::::1;::::0;;;29704:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;29704:23:0::1;::::0;;::::1;::::0;;29318:417::o;36247:140::-;-1:-1:-1;;;;;36352:27:0;36328:4;36352:27;;;:18;:27;;;;;;;;;36247:140::o;21870:28::-;;;;:::o;25834:239::-;-1:-1:-1;;;;;25965:20:0;;25936:7;25965:20;;;:11;:20;;;;;;;;25961:49;;;-1:-1:-1;;;;;;25994:16:0;;;;;;:7;:16;;;;;;25987:23;;25961:49;-1:-1:-1;;;;;26048:16:0;;;;;;:7;:16;;;;;;26028:37;;:19;:37::i;8956:217::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;9122:1:::1;9093:6:::0;;9058:77:::1;::::0;-1:-1:-1;;;;;9093:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;9058:77:0;9122:1;;9058:77:::1;9163:1;9146:19:::0;;-1:-1:-1;;;;;;9146:19:0::1;::::0;;8956:217::o;22193:27::-;;;;:::o;29047:136::-;-1:-1:-1;;;;;29155:20:0;29131:4;29155:20;;;:11;:20;;;;;;;;;29047:136::o;8869:79::-;8907:7;8934:6;-1:-1:-1;;;;;8934:6:0;8869:79;:::o;30906:136::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;31006:13:::1;:28:::0;30906:136::o;25253:119::-;25357:7;25350:14;;;;;;;;-1:-1:-1;;25350:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25319:13;;25350:14;;25357:7;;25350:14;;25357:7;25350:14;;;;;;;;;;;;;;;;;;;;;;;;9943:390;10009:14;;-1:-1:-1;;;;;10009:14:0;10027:10;10009:28;9987:113;;;;-1:-1:-1;;;9987:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10139:9;;10133:3;:15;10111:83;;;;;-1:-1:-1;;;10111:83:0;;;;;;;;;;;;-1:-1:-1;;;10111:83:0;;;;;;;;;;;;;;;10266:14;;;10245:6;;10210:81;;-1:-1:-1;;;;;10266:14:0;;;;10245:6;;;;-1:-1:-1;;;;;;;;;;;10210:81:0;;10311:14;;;10302:23;;-1:-1:-1;;;;;;10302:23:0;-1:-1:-1;;;;;10311:14:0;;;10302:23;;;;;;9943:390::o;26081:242::-;26184:4;26201:92;26225:12;:10;:12::i;:::-;26252:9;26276:6;26201:9;:92::i;8325:21::-;;;-1:-1:-1;;;;;8325:21:0;;:::o;9523:121::-;9627:9;;9523:121;:::o;31437:211::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;31530:21:::1;:32:::0;;;::::1;;;::::0;::::1;-1:-1:-1::0;;31530:32:0;;::::1;::::0;;;::::1;::::0;;;31578:62:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;31437:211:::0;:::o;22227:44::-;;;;:::o;31252:177::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;31411:9:::1;::::0;::::1;;31399:2;:22;31371:50;31343:12;:78:::0;31252:177::o;9652:283::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;9765:6:::1;::::0;;;9748:23;;-1:-1:-1;;;;;;9748:23:0;;::::1;-1:-1:-1::0;;;;;9765:6:0;::::1;9748:23;::::0;;;9782:19:::1;::::0;;9824:3:::1;:10:::0;::::1;9812:9;:22:::0;9850:77:::1;::::0;9765:6;;-1:-1:-1;;;;;;;;;;;9850:77:0;9765:6;;9850:77:::1;9652:283:::0;:::o;26331:168::-;-1:-1:-1;;;;;26464:18:0;;;26437:7;26464:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;26331:168::o;30645:133::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;30735:27:0::1;30765:5;30735:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;30735:35:0::1;::::0;;30645:133::o;31050:194::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;31226:9:::1;::::0;::::1;;31214:2;:22;31188:48;31156:29;:80:::0;31050:194::o;9181:334::-;8769:12;:10;:12::i;:::-;8759:6;;-1:-1:-1;;;;;8759:6:0;;;:22;;;8737:104;;;;;-1:-1:-1;;;8737:104:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8737:104:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9300:22:0;::::1;9278:110;;;;-1:-1:-1::0;;;9278:110:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9439:6;::::0;;9404:75:::1;::::0;-1:-1:-1;;;;;9404:75:0;;::::1;::::0;9439:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;9404:75:0;::::1;9490:6;:17:::0;;-1:-1:-1;;;;;;9490:17:0::1;-1:-1:-1::0;;;;;9490:17:0;;;::::1;::::0;;;::::1;::::0;;9181:334::o;3019:147::-;3148:10;3019:147;:::o;36395:495::-;-1:-1:-1;;;;;36536:19:0;;36514:105;;;;-1:-1:-1;;;36514:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36652:21:0;;36630:105;;;;-1:-1:-1;;;36630:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36748:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;36800:82;;;;;;;;;;;;;;;;;36395:495;;;:::o;37083:1628::-;-1:-1:-1;;;;;37219:18:0;;37197:105;;;;-1:-1:-1;;;37197:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;37335:16:0;;37313:101;;;;-1:-1:-1;;;37313:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37456:1;37447:6;:10;37425:101;;;;-1:-1:-1;;;37425:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37549:7;:5;:7::i;:::-;-1:-1:-1;;;;;37541:15:0;:4;-1:-1:-1;;;;;37541:15:0;;;:32;;;;;37566:7;:5;:7::i;:::-;-1:-1:-1;;;;;37560:13:0;:2;-1:-1:-1;;;;;37560:13:0;;;37541:32;37537:189;;;37626:12;;37616:6;:22;;37590:124;;;;-1:-1:-1;;;37590:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37773:28;37804:48;37836:4;37804:9;:48::i;:::-;37773:79;;37907:12;;37883:20;:36;37865:128;;-1:-1:-1;37969:12:0;;37865:128;38069:29;;38032:66;;;;;;;38156:53;;-1:-1:-1;38193:16:0;;;;38192:17;38156:53;:91;;;;;38234:13;-1:-1:-1;;;;;38226:21:0;:4;-1:-1:-1;;;;;38226:21:0;;;38156:91;:129;;;;-1:-1:-1;38264:21:0;;;;;;;38156:129;38138:289;;;38335:29;;38312:52;;38379:36;38394:20;38379:14;:36::i;:::-;-1:-1:-1;;;;;38533:24:0;;38439:12;38533:24;;;:18;:24;;;;;;38454:4;;38533:24;;;:63;;-1:-1:-1;;;;;;38574:22:0;;;;;;:18;:22;;;;;;;;38533:63;38515:135;;;-1:-1:-1;38633:5:0;38515:135;38662:41;38677:4;38683:2;38687:6;38695:7;38662:14;:41::i;:::-;37083:1628;;;;;;:::o;1526:224::-;1646:7;1682:12;1674:6;;;;1666:29;;;;-1:-1:-1;;;1666:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1718:5:0;;;1526:224::o;33750:233::-;33819:7;33859:15;33889;33918:19;:17;:19::i;:::-;33844:93;;-1:-1:-1;33844:93:0;-1:-1:-1;33955:20:0;33844:93;;33955:11;:20::i;:::-;33948:27;;;;33750:233;:::o;2055:164::-;2140:7;2172:39;2176:1;2179;2172:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2165:46;2055:164;-1:-1:-1;;;2055:164:0:o;32115:631::-;32215:15;32245:23;32283:12;32310:23;32348:12;32375:18;32509:20;32521:7;32509:11;:20::i;:::-;32421:108;;-1:-1:-1;32421:108:0;-1:-1:-1;32421:108:0;-1:-1:-1;32625:113:0;32651:7;32421:108;;32717:10;:8;:10::i;:::-;32625:11;:113::i;:::-;32540:198;;;;-1:-1:-1;32540:198:0;;-1:-1:-1;32115:631:0;;-1:-1:-1;32115:631:0;;-1:-1:-1;32115:631:0;:::o;1350:168::-;1435:7;1467:43;1471:1;1474;1467:43;;;;;;;;;;;;;;;;;:3;:43::i;1131:211::-;1216:7;1253:5;;;1277:6;;;;1269:46;;;;;-1:-1:-1;;;1269:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;38719:808;22585:16;:23;;-1:-1:-1;;22585:23:0;22604:4;22585:23;;;:16;38886:51:::1;:20:::0;38925:1:::1;38886:24;:51::i;:::-;38871:66:::0;-1:-1:-1;38948:17:0::1;38968:54;:20:::0;38871:66;38968:24:::1;:54::i;:::-;38948:74:::0;-1:-1:-1;39092:35:0::1;39172:22;39189:4:::0;39172:16:::1;:22::i;:::-;39244:18;39265:69;:35;39319:14:::0;39265:53:::1;:69::i;:::-;39244:90;;39373:35;39386:9;39397:10;39373:12;:35::i;:::-;39426:93;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;22631:16:0;:24;;-1:-1:-1;;22631:24:0;;;-1:-1:-1;;;38719:808:0:o;40761:1316::-;40917:7;40912:28;;40926:14;:12;:14::i;:::-;-1:-1:-1;;;;;40971:19:0;;;;;;:11;:19;;;;;;;;:59;;;;-1:-1:-1;;;;;;41008:22:0;;;;;;:11;:22;;;;;;;;41007:23;40971:59;40953:1075;;;41057:114;41097:6;41122:9;41150:6;41057:21;:114::i;:::-;40953:1075;;;-1:-1:-1;;;;;41208:19:0;;;;;;:11;:19;;;;;;;;41207:20;:59;;;;-1:-1:-1;;;;;;41244:22:0;;;;;;:11;:22;;;;;;;;41207:59;41189:839;;;41293:112;41331:6;41356:9;41384:6;41293:19;:112::i;41189:839::-;-1:-1:-1;;;;;41442:19:0;;;;;;:11;:19;;;;;;;;41441:20;:60;;;;-1:-1:-1;;;;;;41479:22:0;;;;;;:11;:22;;;;;;;;41478:23;41441:60;41423:605;;;41528:110;41564:6;41589:9;41617:6;41528:17;:110::i;41423:605::-;-1:-1:-1;;;;;41674:19:0;;;;;;:11;:19;;;;;;;;:58;;;;-1:-1:-1;;;;;;41710:22:0;;;;;;:11;:22;;;;;;;;41674:58;41656:372;;;41759:114;41799:6;41824:9;41852:6;41759:21;:114::i;41656:372::-;41906:110;41942:6;41967:9;41995:6;41906:17;:110::i;:::-;42045:7;42040:29;;42054:15;:13;:15::i;:::-;40761:1316;;;;:::o;33991:869::-;34121:7;;34157;;34069;;;;;34175:520;34226:9;:16;34222:20;;34175:520;;;34350:7;34309;:21;34317:9;34327:1;34317:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34317:12:0;34309:21;;;;;;;;;;;;;:48;;:117;;;34419:7;34378;:21;34386:9;34396:1;34386:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34386:12:0;34378:21;;;;;;;;;;;;;:48;34309:117;34287:215;;;34469:7;;34478;;34461:25;;;;;;;;;34287:215;34526:66;34556:7;:21;34564:9;34574:1;34564:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34564:12:0;34556:21;;;;;;;;;;;;;34526:7;;:11;:66::i;:::-;34516:76;;34617:66;34647:7;:21;34655:9;34665:1;34655:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34655:12:0;34647:21;;;;;;;;;;;;;34617:7;;:11;:66::i;:::-;34607:76;-1:-1:-1;34257:3:0;;34175:520;;;-1:-1:-1;34745:7:0;;34733;;:20;;:11;:20::i;:::-;34723:7;:30;34705:112;;;34788:7;;34797;;34780:25;;;;;;;;34705:112;34835:7;;-1:-1:-1;34844:7:0;-1:-1:-1;33991:869:0;;;:::o;2227:260::-;2347:7;2409:12;2389:5;2367:65;;;;-1:-1:-1;;;2367:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2443:9;2459:1;2455;:5;;;;;;;2227:260;-1:-1:-1;;;;;2227:260:0:o;32754:419::-;32855:23;32893:12;32920:18;32973:24;32989:7;32973:15;:24::i;:::-;32966:31;;33021:54;33057:7;33021:21;:54::i;:::-;33008:67;-1:-1:-1;33104:61:0;33008:67;33104:31;:7;33130:4;33104:25;:31::i;:::-;:49;;:61::i;:::-;33086:79;32754:419;;-1:-1:-1;32754:419:0;-1:-1:-1;32754:419:0:o;33181:561::-;33380:15;;;33498:24;:7;33510:11;33498;:24::i;:::-;33488:34;-1:-1:-1;33540:21:0;:4;33549:11;33540:8;:21::i;:::-;33533:28;-1:-1:-1;33572:18:0;33593:51;:10;33622:11;33593:14;:51::i;:::-;33572:72;-1:-1:-1;33673:61:0;33572:72;33673:31;:7;33699:4;33673:25;:31::i;:61::-;33655:79;;33181:561;;;;;;;;;:::o;39535:653::-;39641:40;;;39669:1;39641:40;;;39617:21;39641:40;;;;;39617:21;39641:40;;;;;;;;;;-1:-1:-1;39641:40:0;39617:64;;39710:4;39692;39697:1;39692:7;;;;;;;;;;;;;:23;-1:-1:-1;;;;;39692:23:0;;;-1:-1:-1;;;;;39692:23:0;;;;;39736:15;-1:-1:-1;;;;;39736:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39736:22:0;39726:7;;:4;;39731:1;;39726:7;;;;;;;;;;;:32;-1:-1:-1;;;;;39726:32:0;;;-1:-1:-1;;;;;39726:32:0;;;;;39769:112;39800:4;39828:15;39859:11;39769:8;:112::i;:::-;39918:15;-1:-1:-1;;;;;39918:80:0;;40017:11;40047:1;40095:4;40126;40150:15;39918:262;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;39918:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40196:524;40337:112;40368:4;40396:15;40427:11;40337:8;:112::i;:::-;40490:15;-1:-1:-1;;;;;40490:31:0;;40543:9;40586:4;40606:11;40632:1;40648;40664:7;:5;:7::i;:::-;40686:15;40490:222;;;;;;;;;;;;;-1:-1:-1;;;;;40490:222:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;40490:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35862:244;35909:7;;:12;:34;;;;-1:-1:-1;35925:13:0;;:18;35909:34;35905:60;;;35958:7;;35905:60;35993:7;;;35975:15;:25;36035:13;;;36011:21;:37;-1:-1:-1;36059:11:0;;;;36081:17;35862:244;:::o;43626:804::-;43777:15;43807:23;43845:12;43872:23;43910:12;43937:18;43969:19;43980:7;43969:10;:19::i;:::-;-1:-1:-1;;;;;44019:15:0;;;;;;:7;:15;;;;;;43762:226;;-1:-1:-1;43762:226:0;;-1:-1:-1;43762:226:0;;-1:-1:-1;43762:226:0;-1:-1:-1;43762:226:0;-1:-1:-1;43762:226:0;-1:-1:-1;44019:52:0;;44053:7;44019:19;:52::i;:::-;-1:-1:-1;;;;;44001:15:0;;;;;;:7;:15;;;;;;;;:70;;;;44100:7;:15;;;;:52;;44134:7;44100:19;:52::i;:::-;-1:-1:-1;;;;;44082:15:0;;;;;;;:7;:15;;;;;;:70;;;;44184:18;;;;;;;:53;;44221:15;44184:36;:53::i;:::-;-1:-1:-1;;;;;44163:18:0;;;;;;:7;:18;;;;;:74;44250:26;44265:10;44250:14;:26::i;:::-;44287:23;44299:4;44305;44287:11;:23::i;:::-;44372:9;-1:-1:-1;;;;;44328:94:0;44351:6;-1:-1:-1;;;;;44328:94:0;;44396:15;44328:94;;;;;;;;;;;;;;;;;;43626:804;;;;;;;;;:::o;42812:806::-;42961:15;42991:23;43029:12;43056:23;43094:12;43121:18;43153:19;43164:7;43153:10;:19::i;:::-;-1:-1:-1;;;;;43203:15:0;;;;;;:7;:15;;;;;;42946:226;;-1:-1:-1;42946:226:0;;-1:-1:-1;42946:226:0;;-1:-1:-1;42946:226:0;-1:-1:-1;42946:226:0;-1:-1:-1;42946:226:0;-1:-1:-1;43203:52:0;;42946:226;43203:19;:52::i;:::-;-1:-1:-1;;;;;43185:15:0;;;;;;;:7;:15;;;;;;;;:70;;;;43287:18;;;;;:7;:18;;;;;:53;;43324:15;43287:36;:53::i;:::-;-1:-1:-1;;;;;43266:18:0;;;;;;:7;:18;;;;;;;;:74;;;;43372:7;:18;;;;:53;;43409:15;43372:36;:53::i;42085:719::-;42232:15;42262:23;42300:12;42327:23;42365:12;42392:18;42424:19;42435:7;42424:10;:19::i;:::-;-1:-1:-1;;;;;42474:15:0;;;;;;:7;:15;;;;;;42217:226;;-1:-1:-1;42217:226:0;;-1:-1:-1;42217:226:0;;-1:-1:-1;42217:226:0;-1:-1:-1;42217:226:0;-1:-1:-1;42217:226:0;-1:-1:-1;42474:52:0;;42217:226;42474:19;:52::i;44438:889::-;44589:15;44619:23;44657:12;44684:23;44722:12;44749:18;44781:19;44792:7;44781:10;:19::i;:::-;-1:-1:-1;;;;;44831:15:0;;;;;;:7;:15;;;;;;44574:226;;-1:-1:-1;44574:226:0;;-1:-1:-1;44574:226:0;;-1:-1:-1;44574:226:0;-1:-1:-1;44574:226:0;-1:-1:-1;44574:226:0;-1:-1:-1;44831:52:0;;44865:7;44831:19;:52::i;:::-;-1:-1:-1;;;;;44813:15:0;;;;;;:7;:15;;;;;;;;:70;;;;44912:7;:15;;;;:52;;44946:7;44912:19;:52::i;36114:125::-;36168:15;;36158:7;:25;36210:21;;36194:13;:37;36114:125::o;35478:186::-;35569:7;35601:55;35640:5;35601:20;35613:7;;35601;:11;;:20;;;;:::i;:::-;:24;;:55::i;35672:182::-;35758:7;35785:61;35830:5;35785:26;35797:13;;35785:7;:11;;:26;;;;:::i;1758:289::-;1843:7;1872:6;1868:20;;-1:-1:-1;1887:1:0;1880:8;;1868:20;1911:5;;;1915:1;1911;:5;:1;1949:5;;;;;:10;1927:93;;;;-1:-1:-1;;;1927:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34868:464;34947:19;34969:10;:8;:10::i;:::-;34947:32;-1:-1:-1;34990:18:0;35011:51;:10;34947:32;35011:14;:51::i;:::-;35128:4;35098:46;;;;:7;:46;;;;;;34990:72;;-1:-1:-1;35098:62:0;;34990:72;35098:50;:62::i;:::-;35089:4;35073:22;;;;:7;:22;;;;;;;;:87;;;;35175:11;:26;;;;;;35171:154;;;35277:4;35243:54;;;;:7;:54;;;;;;:70;;35302:10;35243:58;:70::i;:::-;35234:4;35218:22;;;;:7;:22;;;;;:95;35171:154;34868:464;;;:::o;31935:172::-;32038:7;;:17;;32050:4;32038:11;:17::i;:::-;32028:7;:27;32079:10;;:20;;32094:4;32079:14;:20::i;:::-;32066:10;:33;-1:-1:-1;;31935:172:0:o
Swarm Source
ipfs://99f296dcdd8bd7aba99d91ebfba0b2ce456f9a3108d5778e5a3e7c72c64ad62b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BSC | 100.00% | $614.35 | 0.000000593657 | $0.000365 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.