ERC-20
Overview
Max Total Supply
1,000,000,000 OD
Holders
61
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,470,588 ODValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Overdose
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-05 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; 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); } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } 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"); } 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"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address public _owner; address private _previousOwner; uint256 public _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner when _lockTime is exceeds function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock."); require(block.timestamp > _lockTime , "Contract is locked."); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } 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; } contract Overdose is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; address public _devWalletAddress; // TODO - team wallet here uint256 private constant MAX = ~uint256(0); uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; string private _name; string private _symbol; uint256 private _decimals; uint256 public _taxFee; uint256 private _previousTaxFee; uint256 public _devFee; uint256 private _previousDevFee; uint256 public _liquidityFee; uint256 private _previousLiquidityFee; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxTxAmount; uint256 public numTokensSellToAddToLiquidity; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor (string memory _NAME, string memory _SYMBOL, uint256 _DECIMALS, uint256 _supply, uint256 _txFee,uint256 _lpFee,uint256 _DexFee,address routerAddress,address feeaddress,address tokenOwner,address service) public payable { _name = _NAME; _symbol = _SYMBOL; _decimals = _DECIMALS; _tTotal = _supply * 10 ** _decimals; _rTotal = (MAX - (MAX % _tTotal)); _taxFee = _txFee; _liquidityFee = _lpFee; _previousTaxFee = _txFee; _devFee = _DexFee; _previousDevFee = _devFee; _previousLiquidityFee = _lpFee; _maxTxAmount = (_tTotal * 5 / 1000) * 10 ** _decimals; numTokensSellToAddToLiquidity = (_tTotal * 5 / 10000) * 10 ** _decimals; _devWalletAddress = feeaddress; _rOwned[tokenOwner] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(routerAddress); // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; //exclude owner and this contract from fee _isExcludedFromFee[tokenOwner] = true; _isExcludedFromFee[address(this)] = true; _owner = tokenOwner; payable(service).transfer(msg.value); emit Transfer(address(0), tokenOwner, _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint256) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } 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; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } 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 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 already included"); 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; } } } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _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); _takeDev(tDev); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } 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 setDevFeePercent(uint256 devFee) external onlyOwner() { _devFee = devFee; } function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() { _liquidityFee = liquidityFee; } function setMaxTxPercent(uint256 maxTxPercent) public onlyOwner { _maxTxAmount = maxTxPercent * 10 ** _decimals; } function setDevWalletAddress(address _addr) public onlyOwner { _devWalletAddress = _addr; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tDev, _getRate()); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity, tDev); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) { uint256 tFee = calculateTaxFee(tAmount); uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tDev = calculateDevFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity).sub(tDev); return (tTransferAmount, tFee, tLiquidity, tDev); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rDev = tDev.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity).sub(rDev); return (rAmount, rTransferAmount, rFee); } 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 _takeDev(uint256 tDev) private { uint256 currentRate = _getRate(); uint256 rDev = tDev.mul(currentRate); _rOwned[_devWalletAddress] = _rOwned[_devWalletAddress].add(rDev); if(_isExcluded[_devWalletAddress]) _tOwned[_devWalletAddress] = _tOwned[_devWalletAddress].add(tDev); } function calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_taxFee).div( 10**2 ); } function calculateDevFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_devFee).div( 10**2 ); } function calculateLiquidityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_liquidityFee).div( 10**2 ); } function removeAllFee() private { _previousTaxFee = _taxFee; _previousDevFee = _devFee; _previousLiquidityFee = _liquidityFee; _taxFee = 0; _devFee = 0; _liquidityFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _devFee = _previousDevFee; _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); } 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."); uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { contractTokenBalance = numTokensSellToAddToLiquidity; swapAndLiquify(contractTokenBalance); } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){ takeFee = false; } _tokenTransfer(from,to,amount,takeFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(half); uint256 newBalance = address(this).balance.sub(initialBalance); 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); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } 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, uint256 tDev) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _takeDev(tDev); _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, uint256 tDev) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _takeDev(tDev); _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, uint256 tDev) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _takeDev(tDev); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function setRouterAddress(address newRouter) external onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; } function setNumTokensSellToAddToLiquidity(uint256 amountToUpdate) external onlyOwner { numTokensSellToAddToLiquidity = amountToUpdate; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_NAME","type":"string"},{"internalType":"string","name":"_SYMBOL","type":"string"},{"internalType":"uint256","name":"_DECIMALS","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"uint256","name":"_txFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_DexFee","type":"uint256"},{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"feeaddress","type":"address"},{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"service","type":"address"}],"stateMutability":"payable","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":"_devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lockTime","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":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":[{"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"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":"devFee","type":"uint256"}],"name":"setDevFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setDevWalletAddress","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":"amountToUpdate","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","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
608060408190526017805460ff60a81b1916600160a81b17905562003430388190039081908339810160408190526200003891620005cf565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38a516200008c90600d9060208e019062000430565b508951620000a290600e9060208d019062000430565b50600f899055620000b589600a6200071d565b620000c19089620007db565b600a819055620000d49060001962000854565b620000e290600019620007fd565b600b55601087905560148690556011879055601285905560138590556015869055600f546200011390600a6200071d565b6103e8600a546005620001279190620007db565b620001339190620006bd565b6200013f9190620007db565b601855600f546200015290600a6200071d565b612710600a546005620001669190620007db565b620001729190620006bd565b6200017e9190620007db565b601955600980546001600160a01b0319166001600160a01b0385811691909117909155600b5483821660009081526003602090815260409182902092909255805163c45a015560e01b81529051879384169263c45a01559260048082019391829003018186803b158015620001f257600080fd5b505afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d9190620005aa565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027657600080fd5b505afa1580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b19190620005aa565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002fa57600080fd5b505af11580156200030f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003359190620005aa565b601780546001600160a01b039283166001600160a01b03199182161790915560168054848416908316179055848216600081815260066020526040808220805460ff19908116600190811790925530845282842080549091169091179055815490931690911781559051918416913480156108fc0292909190818181858888f19350505050158015620003cc573d6000803e3d6000fd5b50826001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200041691815260200190565b60405180910390a3505050505050505050505050620008ad565b8280546200043e9062000817565b90600052602060002090601f016020900481019282620004625760008555620004ad565b82601f106200047d57805160ff1916838001178555620004ad565b82800160010185558215620004ad579182015b82811115620004ad57825182559160200191906001019062000490565b50620004bb929150620004bf565b5090565b5b80821115620004bb5760008155600101620004c0565b80516001600160a01b0381168114620004ee57600080fd5b919050565b600082601f8301126200050557600080fd5b81516001600160401b038082111562000522576200052262000897565b604051601f8301601f19908116603f011681019082821181831017156200054d576200054d62000897565b816040528381526020925086838588010111156200056a57600080fd5b600091505b838210156200058e57858201830151818301840152908201906200056f565b83821115620005a05760008385830101525b9695505050505050565b600060208284031215620005bd57600080fd5b620005c882620004d6565b9392505050565b60008060008060008060008060008060006101608c8e031215620005f257600080fd5b8b516001600160401b038111156200060957600080fd5b620006178e828f01620004f3565b60208e0151909c5090506001600160401b038111156200063657600080fd5b620006448e828f01620004f3565b9a505060408c0151985060608c0151975060808c0151965060a08c0151955060c08c015194506200067860e08d01620004d6565b9350620006896101008d01620004d6565b92506200069a6101208d01620004d6565b9150620006ab6101408d01620004d6565b90509295989b509295989b9093969950565b600082620006cf57620006cf62000881565b500490565b600181815b8085111562000715578160001904821115620006f957620006f96200086b565b808516156200070757918102915b93841c9390800290620006d9565b509250929050565b6000620005c883836000826200073657506001620007d5565b816200074557506000620007d5565b81600181146200075e5760028114620007695762000789565b6001915050620007d5565b60ff8411156200077d576200077d6200086b565b50506001821b620007d5565b5060208310610133831016604e8410600b8410161715620007ae575081810a620007d5565b620007ba8383620006d4565b8060001904821115620007d157620007d16200086b565b0290505b92915050565b6000816000190483118215151615620007f857620007f86200086b565b500290565b6000828210156200081257620008126200086b565b500390565b600181811c908216806200082c57607f821691505b602082108114156200084e57634e487b7160e01b600052602260045260246000fd5b50919050565b60008262000866576200086662000881565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b612b7380620008bd6000396000f3fe6080604052600436106102765760003560e01c80636bc87c3a1161014f578063a9059cbb116100c1578063d543dbeb1161007a578063d543dbeb14610754578063dd46706414610774578063dd62ed3e14610794578063ea2f0b37146107da578063f0f165af146107fa578063f2fde38b1461081a57600080fd5b8063a9059cbb146106a8578063aa45026b146106c8578063b2bdfa7b146106de578063b425bac3146106fe578063c49b9a801461071e578063d12a76881461073e57600080fd5b806388f820201161011357806388f82020146105e75780638da5cb5b146106205780638ee88c531461063e57806395d89b411461065e578063a457c2d714610673578063a69df4b51461069357600080fd5b80636bc87c3a1461057057806370a0823114610586578063715018a6146105a657806379af25a6146105bb5780637d1db4a5146105d157600080fd5b8063379e2919116101e8578063437823ec116101ac578063437823ec146104965780634549b039146104b657806349bd5a5e146104d65780634a74bb02146104f657806352390c02146105175780635342acb41461053757600080fd5b8063379e29191461040057806339509351146104205780633b124fe7146104405780633bd5d1731461045657806341cb87fc1461047657600080fd5b80631694505e1161023a5780631694505e1461033e57806318160ddd1461037657806323b872dd1461038b5780632d838119146103ab578063313ce567146103cb5780633685d419146103e057600080fd5b8063061c82d01461028257806306fdde03146102a4578063095ea7b3146102cf578063120a0612146102ff57806313114a9d1461031f57600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506102a261029d366004612757565b61083a565b005b3480156102b057600080fd5b506102b9610872565b6040516102c691906127ca565b60405180910390f35b3480156102db57600080fd5b506102ef6102ea366004612710565b610904565b60405190151581526020016102c6565b34801561030b57600080fd5b506102a261031a36600461265c565b61091b565b34801561032b57600080fd5b50600c545b6040519081526020016102c6565b34801561034a57600080fd5b5060165461035e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c6565b34801561038257600080fd5b50600a54610330565b34801561039757600080fd5b506102ef6103a63660046126cf565b610967565b3480156103b757600080fd5b506103306103c6366004612757565b6109d0565b3480156103d757600080fd5b50600f54610330565b3480156103ec57600080fd5b506102a26103fb36600461265c565b610a54565b34801561040c57600080fd5b506102a261041b366004612757565b610c0b565b34801561042c57600080fd5b506102ef61043b366004612710565b610c3a565b34801561044c57600080fd5b5061033060105481565b34801561046257600080fd5b506102a2610471366004612757565b610c70565b34801561048257600080fd5b506102a261049136600461265c565b610d5c565b3480156104a257600080fd5b506102a26104b136600461265c565b610f2e565b3480156104c257600080fd5b506103306104d1366004612770565b610f7c565b3480156104e257600080fd5b5060175461035e906001600160a01b031681565b34801561050257600080fd5b506017546102ef90600160a81b900460ff1681565b34801561052357600080fd5b506102a261053236600461265c565b61100b565b34801561054357600080fd5b506102ef61055236600461265c565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561057c57600080fd5b5061033060145481565b34801561059257600080fd5b506103306105a136600461265c565b61115e565b3480156105b257600080fd5b506102a26111bd565b3480156105c757600080fd5b5061033060025481565b3480156105dd57600080fd5b5061033060185481565b3480156105f357600080fd5b506102ef61060236600461265c565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561062c57600080fd5b506000546001600160a01b031661035e565b34801561064a57600080fd5b506102a2610659366004612757565b61121f565b34801561066a57600080fd5b506102b961124e565b34801561067f57600080fd5b506102ef61068e366004612710565b61125d565b34801561069f57600080fd5b506102a26112ac565b3480156106b457600080fd5b506102ef6106c3366004612710565b6113a8565b3480156106d457600080fd5b5061033060125481565b3480156106ea57600080fd5b5060005461035e906001600160a01b031681565b34801561070a57600080fd5b5060095461035e906001600160a01b031681565b34801561072a57600080fd5b506102a261073936600461273c565b6113b5565b34801561074a57600080fd5b5061033060195481565b34801561076057600080fd5b506102a261076f366004612757565b611437565b34801561078057600080fd5b506102a261078f366004612757565b61147f565b3480156107a057600080fd5b506103306107af366004612696565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107e657600080fd5b506102a26107f536600461265c565b6114ee565b34801561080657600080fd5b506102a2610815366004612757565b611539565b34801561082657600080fd5b506102a261083536600461265c565b611568565b6000546001600160a01b0316331461086d5760405162461bcd60e51b81526004016108649061281f565b60405180910390fd5b601055565b6060600d805461088190612a20565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90612a20565b80156108fa5780601f106108cf576101008083540402835291602001916108fa565b820191906000526020600020905b8154815290600101906020018083116108dd57829003601f168201915b5050505050905090565b6000610911338484611640565b5060015b92915050565b6000546001600160a01b031633146109455760405162461bcd60e51b81526004016108649061281f565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610974848484611764565b6109c684336109c185604051806060016040528060288152602001612ad1602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906119fa565b611640565b5060019392505050565b6000600b54821115610a375760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610864565b6000610a41611a26565b9050610a4d8382611a49565b9392505050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03811660009081526007602052604090205460ff16610ae65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610864565b60005b600854811015610c0757816001600160a01b031660088281548110610b1057610b10612aa2565b6000918252602090912001546001600160a01b03161415610bf55760088054610b3b90600190612a09565b81548110610b4b57610b4b612aa2565b600091825260209091200154600880546001600160a01b039092169183908110610b7757610b77612aa2565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff191690556008805480610bcf57610bcf612a8c565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610bff81612a5b565b915050610ae9565b5050565b6000546001600160a01b03163314610c355760405162461bcd60e51b81526004016108649061281f565b601255565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109119185906109c19086611a55565b3360008181526007602052604090205460ff1615610ce55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610864565b6000610cf083611a61565b5050506001600160a01b038616600090815260036020526040902054939450610d1e93925084915050611abc565b6001600160a01b038316600090815260036020526040902055600b54610d449082611abc565b600b55600c54610d549084611a55565b600c55505050565b6000546001600160a01b03163314610d865760405162461bcd60e51b81526004016108649061281f565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc457600080fd5b505afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190612679565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4457600080fd5b505afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190612679565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610ec457600080fd5b505af1158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc9190612679565b601780546001600160a01b039283166001600160a01b0319918216179091556016805493909216921691909117905550565b6000546001600160a01b03163314610f585760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000600a54831115610fd05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610864565b81610ff0576000610fe084611a61565b5094965061091595505050505050565b6000610ffb84611a61565b5093965061091595505050505050565b6000546001600160a01b031633146110355760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03811660009081526007602052604090205460ff161561109e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610864565b6001600160a01b038116600090815260036020526040902054156110f8576001600160a01b0381166000908152600360205260409020546110de906109d0565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff161561119b57506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610915906109d0565b6000546001600160a01b031633146111e75760405162461bcd60e51b81526004016108649061281f565b600080546040516001600160a01b0390911690600080516020612af9833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112495760405162461bcd60e51b81526004016108649061281f565b601455565b6060600e805461088190612a20565b600061091133846109c185604051806060016040528060258152602001612b19602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906119fa565b6001546001600160a01b031633146113125760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60448201526337b1b59760e11b6064820152608401610864565b60025442116113595760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903637b1b5b2b21760691b6044820152606401610864565b600154600080546040516001600160a01b039384169390911691600080516020612af983398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610911338484611764565b6000546001600160a01b031633146113df5760405162461bcd60e51b81526004016108649061281f565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061142c90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114615760405162461bcd60e51b81526004016108649061281f565b600f5461146f90600a612942565b61147990826129ea565b60185550565b6000546001600160a01b031633146114a95760405162461bcd60e51b81526004016108649061281f565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516815560028290556040518190600080516020612af9833981519152908290a350565b6000546001600160a01b031633146115185760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146115635760405162461bcd60e51b81526004016108649061281f565b601955565b6000546001600160a01b031633146115925760405162461bcd60e51b81526004016108649061281f565b6001600160a01b0381166115f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610864565b600080546040516001600160a01b0380851693921691600080516020612af983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166116a25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610864565b6001600160a01b0382166117035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610864565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610864565b6001600160a01b03821661182a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610864565b6000811161188c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610864565b6000546001600160a01b038481169116148015906118b857506000546001600160a01b03838116911614155b15611920576018548111156119205760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610864565b600061192b3061115e565b9050601854811061193b57506018545b601954811080159081906119595750601754600160a01b900460ff16155b801561197357506017546001600160a01b03868116911614155b80156119885750601754600160a81b900460ff165b1561199b57601954915061199b82611ac8565b6001600160a01b03851660009081526006602052604090205460019060ff16806119dd57506001600160a01b03851660009081526006602052604090205460ff165b156119e6575060005b6119f286868684611b6f565b505050505050565b60008184841115611a1e5760405162461bcd60e51b815260040161086491906127ca565b505050900390565b6000806000611a33611d0f565b9092509050611a428282611a49565b9250505090565b6000610a4d82846128dd565b6000610a4d82846128c5565b6000806000806000806000806000806000611a7b8c611e91565b93509350935093506000806000611a9c8f878787611a97611a26565b611ee6565b919f509d509b509599509397509195509350505050919395979092949650565b6000610a4d8284612a09565b6017805460ff60a01b1916600160a01b1790556000611ae8826002611a49565b90506000611af68383611abc565b905047611b0283611f48565b6000611b0e4783611abc565b9050611b1a83826120a9565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506017805460ff60a01b19169055505050565b80611b9957611b996010805460115560128054601355601480546015556000928390559082905555565b6001600160a01b03841660009081526007602052604090205460ff168015611bda57506001600160a01b03831660009081526007602052604090205460ff16155b15611bef57611bea84848461218d565b611ced565b6001600160a01b03841660009081526007602052604090205460ff16158015611c3057506001600160a01b03831660009081526007602052604090205460ff165b15611c4057611bea8484846122d3565b6001600160a01b03841660009081526007602052604090205460ff16158015611c8257506001600160a01b03831660009081526007602052604090205460ff16155b15611c9257611bea848484612392565b6001600160a01b03841660009081526007602052604090205460ff168015611cd257506001600160a01b03831660009081526007602052604090205460ff165b15611ce257611bea8484846123ec565b611ced848484612392565b80611d0957611d09601154601055601354601255601554601455565b50505050565b600b54600a546000918291825b600854811015611e6157826003600060088481548110611d3e57611d3e612aa2565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611da95750816004600060088481548110611d8257611d82612aa2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611dbf57600b54600a54945094505050509091565b611e056003600060088481548110611dd957611dd9612aa2565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611abc565b9250611e4d6004600060088481548110611e2157611e21612aa2565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611abc565b915080611e5981612a5b565b915050611d1c565b50600a54600b54611e7191611a49565b821015611e8857600b54600a549350935050509091565b90939092509050565b6000806000806000611ea286612475565b90506000611eaf87612497565b90506000611ebc886124b3565b90506000611ed682611ed085818d89611abc565b90611abc565b9993985091965094509092505050565b6000808080611ef589866124cf565b90506000611f0389876124cf565b90506000611f1189886124cf565b90506000611f1f89896124cf565b90506000611f3382611ed085818989611abc565b949d949c50929a509298505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f7d57611f7d612aa2565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611fd157600080fd5b505afa158015611fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120099190612679565b8160018151811061201c5761201c612aa2565b6001600160a01b0392831660209182029290920101526016546120429130911684611640565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061207b908590600090869030904290600401612854565b600060405180830381600087803b15801561209557600080fd5b505af11580156119f2573d6000803e3d6000fd5b6016546120c19030906001600160a01b031684611640565b6016546001600160a01b031663f305d7198230856000806120ea6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561214d57600080fd5b505af1158015612161573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612186919061279c565b5050505050565b60008060008060008060006121a188611a61565b96509650965096509650965096506121e788600460008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546122169088611abc565b6001600160a01b03808c1660009081526003602052604080822093909355908b16815220546122459087611a55565b6001600160a01b038a16600090815260036020526040902055612267826124db565b61227081612564565b61227a8584612623565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122bf91815260200190565b60405180910390a350505050505050505050565b60008060008060008060006122e788611a61565b965096509650965096509650965061232d87600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152600490915220546123639085611a55565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546122459087611a55565b60008060008060008060006123a688611a61565b965096509650965096509650965061221687600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b600080600080600080600061240088611a61565b965096509650965096509650965061244688600460008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b6001600160a01b038b1660009081526004602090815260408083209390935560039052205461232d9088611abc565b60006109156064612491601054856124cf90919063ffffffff16565b90611a49565b60006109156064612491601454856124cf90919063ffffffff16565b60006109156064612491601254856124cf90919063ffffffff16565b6000610a4d82846129ea565b60006124e5611a26565b905060006124f383836124cf565b306000908152600360205260409020549091506125109082611a55565b3060009081526003602090815260408083209390935560079052205460ff161561255f573060009081526004602052604090205461254e9084611a55565b306000908152600460205260409020555b505050565b600061256e611a26565b9050600061257c83836124cf565b6009546001600160a01b03166000908152600360205260409020549091506125a49082611a55565b600980546001600160a01b03908116600090815260036020908152604080832095909555925490911681526007909152205460ff161561255f576009546001600160a01b03166000908152600460205260409020546126039084611a55565b6009546001600160a01b0316600090815260046020526040902055505050565b600b546126309083611abc565b600b55600c546126409082611a55565b600c555050565b8035801515811461265757600080fd5b919050565b60006020828403121561266e57600080fd5b8135610a4d81612ab8565b60006020828403121561268b57600080fd5b8151610a4d81612ab8565b600080604083850312156126a957600080fd5b82356126b481612ab8565b915060208301356126c481612ab8565b809150509250929050565b6000806000606084860312156126e457600080fd5b83356126ef81612ab8565b925060208401356126ff81612ab8565b929592945050506040919091013590565b6000806040838503121561272357600080fd5b823561272e81612ab8565b946020939093013593505050565b60006020828403121561274e57600080fd5b610a4d82612647565b60006020828403121561276957600080fd5b5035919050565b6000806040838503121561278357600080fd5b8235915061279360208401612647565b90509250929050565b6000806000606084860312156127b157600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156127f7578581018301518582016040015282016127db565b81811115612809576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128a45784516001600160a01b03168352938301939183019160010161287f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128d8576128d8612a76565b500190565b6000826128fa57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561293a57816000190482111561292057612920612a76565b8085161561292d57918102915b93841c9390800290612904565b509250929050565b6000610a4d838360008261295857506001610915565b8161296557506000610915565b816001811461297b5760028114612985576129a1565b6001915050610915565b60ff84111561299657612996612a76565b50506001821b610915565b5060208310610133831016604e8410600b84101617156129c4575081810a610915565b6129ce83836128ff565b80600019048211156129e2576129e2612a76565b029392505050565b6000816000190483118215151615612a0457612a04612a76565b500290565b600082821015612a1b57612a1b612a76565b500390565b600181811c90821680612a3457607f821691505b60208210811415612a5557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a6f57612a6f612a76565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612acd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204ca132f5c6a6baa0ebeb35c90c9fd50c9db0aba8fcad2e7791ab7e302311d52764736f6c63430008070033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000094a896e7ff6626cacb36cc9802259ad6f6fccc58000000000000000000000000dcfc09ebaf6c428b6045599e404a0bc9ac572c8e00000000000000000000000051e46fddf884518d96ebea18023f7b2d0a82582a00000000000000000000000000000000000000000000000000000000000000084f766572646f736500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f44000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102765760003560e01c80636bc87c3a1161014f578063a9059cbb116100c1578063d543dbeb1161007a578063d543dbeb14610754578063dd46706414610774578063dd62ed3e14610794578063ea2f0b37146107da578063f0f165af146107fa578063f2fde38b1461081a57600080fd5b8063a9059cbb146106a8578063aa45026b146106c8578063b2bdfa7b146106de578063b425bac3146106fe578063c49b9a801461071e578063d12a76881461073e57600080fd5b806388f820201161011357806388f82020146105e75780638da5cb5b146106205780638ee88c531461063e57806395d89b411461065e578063a457c2d714610673578063a69df4b51461069357600080fd5b80636bc87c3a1461057057806370a0823114610586578063715018a6146105a657806379af25a6146105bb5780637d1db4a5146105d157600080fd5b8063379e2919116101e8578063437823ec116101ac578063437823ec146104965780634549b039146104b657806349bd5a5e146104d65780634a74bb02146104f657806352390c02146105175780635342acb41461053757600080fd5b8063379e29191461040057806339509351146104205780633b124fe7146104405780633bd5d1731461045657806341cb87fc1461047657600080fd5b80631694505e1161023a5780631694505e1461033e57806318160ddd1461037657806323b872dd1461038b5780632d838119146103ab578063313ce567146103cb5780633685d419146103e057600080fd5b8063061c82d01461028257806306fdde03146102a4578063095ea7b3146102cf578063120a0612146102ff57806313114a9d1461031f57600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506102a261029d366004612757565b61083a565b005b3480156102b057600080fd5b506102b9610872565b6040516102c691906127ca565b60405180910390f35b3480156102db57600080fd5b506102ef6102ea366004612710565b610904565b60405190151581526020016102c6565b34801561030b57600080fd5b506102a261031a36600461265c565b61091b565b34801561032b57600080fd5b50600c545b6040519081526020016102c6565b34801561034a57600080fd5b5060165461035e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c6565b34801561038257600080fd5b50600a54610330565b34801561039757600080fd5b506102ef6103a63660046126cf565b610967565b3480156103b757600080fd5b506103306103c6366004612757565b6109d0565b3480156103d757600080fd5b50600f54610330565b3480156103ec57600080fd5b506102a26103fb36600461265c565b610a54565b34801561040c57600080fd5b506102a261041b366004612757565b610c0b565b34801561042c57600080fd5b506102ef61043b366004612710565b610c3a565b34801561044c57600080fd5b5061033060105481565b34801561046257600080fd5b506102a2610471366004612757565b610c70565b34801561048257600080fd5b506102a261049136600461265c565b610d5c565b3480156104a257600080fd5b506102a26104b136600461265c565b610f2e565b3480156104c257600080fd5b506103306104d1366004612770565b610f7c565b3480156104e257600080fd5b5060175461035e906001600160a01b031681565b34801561050257600080fd5b506017546102ef90600160a81b900460ff1681565b34801561052357600080fd5b506102a261053236600461265c565b61100b565b34801561054357600080fd5b506102ef61055236600461265c565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561057c57600080fd5b5061033060145481565b34801561059257600080fd5b506103306105a136600461265c565b61115e565b3480156105b257600080fd5b506102a26111bd565b3480156105c757600080fd5b5061033060025481565b3480156105dd57600080fd5b5061033060185481565b3480156105f357600080fd5b506102ef61060236600461265c565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561062c57600080fd5b506000546001600160a01b031661035e565b34801561064a57600080fd5b506102a2610659366004612757565b61121f565b34801561066a57600080fd5b506102b961124e565b34801561067f57600080fd5b506102ef61068e366004612710565b61125d565b34801561069f57600080fd5b506102a26112ac565b3480156106b457600080fd5b506102ef6106c3366004612710565b6113a8565b3480156106d457600080fd5b5061033060125481565b3480156106ea57600080fd5b5060005461035e906001600160a01b031681565b34801561070a57600080fd5b5060095461035e906001600160a01b031681565b34801561072a57600080fd5b506102a261073936600461273c565b6113b5565b34801561074a57600080fd5b5061033060195481565b34801561076057600080fd5b506102a261076f366004612757565b611437565b34801561078057600080fd5b506102a261078f366004612757565b61147f565b3480156107a057600080fd5b506103306107af366004612696565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107e657600080fd5b506102a26107f536600461265c565b6114ee565b34801561080657600080fd5b506102a2610815366004612757565b611539565b34801561082657600080fd5b506102a261083536600461265c565b611568565b6000546001600160a01b0316331461086d5760405162461bcd60e51b81526004016108649061281f565b60405180910390fd5b601055565b6060600d805461088190612a20565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90612a20565b80156108fa5780601f106108cf576101008083540402835291602001916108fa565b820191906000526020600020905b8154815290600101906020018083116108dd57829003601f168201915b5050505050905090565b6000610911338484611640565b5060015b92915050565b6000546001600160a01b031633146109455760405162461bcd60e51b81526004016108649061281f565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610974848484611764565b6109c684336109c185604051806060016040528060288152602001612ad1602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906119fa565b611640565b5060019392505050565b6000600b54821115610a375760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610864565b6000610a41611a26565b9050610a4d8382611a49565b9392505050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03811660009081526007602052604090205460ff16610ae65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610864565b60005b600854811015610c0757816001600160a01b031660088281548110610b1057610b10612aa2565b6000918252602090912001546001600160a01b03161415610bf55760088054610b3b90600190612a09565b81548110610b4b57610b4b612aa2565b600091825260209091200154600880546001600160a01b039092169183908110610b7757610b77612aa2565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff191690556008805480610bcf57610bcf612a8c565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610bff81612a5b565b915050610ae9565b5050565b6000546001600160a01b03163314610c355760405162461bcd60e51b81526004016108649061281f565b601255565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109119185906109c19086611a55565b3360008181526007602052604090205460ff1615610ce55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610864565b6000610cf083611a61565b5050506001600160a01b038616600090815260036020526040902054939450610d1e93925084915050611abc565b6001600160a01b038316600090815260036020526040902055600b54610d449082611abc565b600b55600c54610d549084611a55565b600c55505050565b6000546001600160a01b03163314610d865760405162461bcd60e51b81526004016108649061281f565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc457600080fd5b505afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190612679565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4457600080fd5b505afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190612679565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610ec457600080fd5b505af1158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc9190612679565b601780546001600160a01b039283166001600160a01b0319918216179091556016805493909216921691909117905550565b6000546001600160a01b03163314610f585760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000600a54831115610fd05760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610864565b81610ff0576000610fe084611a61565b5094965061091595505050505050565b6000610ffb84611a61565b5093965061091595505050505050565b6000546001600160a01b031633146110355760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03811660009081526007602052604090205460ff161561109e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610864565b6001600160a01b038116600090815260036020526040902054156110f8576001600160a01b0381166000908152600360205260409020546110de906109d0565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff161561119b57506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610915906109d0565b6000546001600160a01b031633146111e75760405162461bcd60e51b81526004016108649061281f565b600080546040516001600160a01b0390911690600080516020612af9833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112495760405162461bcd60e51b81526004016108649061281f565b601455565b6060600e805461088190612a20565b600061091133846109c185604051806060016040528060258152602001612b19602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906119fa565b6001546001600160a01b031633146113125760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60448201526337b1b59760e11b6064820152608401610864565b60025442116113595760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903637b1b5b2b21760691b6044820152606401610864565b600154600080546040516001600160a01b039384169390911691600080516020612af983398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610911338484611764565b6000546001600160a01b031633146113df5760405162461bcd60e51b81526004016108649061281f565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061142c90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114615760405162461bcd60e51b81526004016108649061281f565b600f5461146f90600a612942565b61147990826129ea565b60185550565b6000546001600160a01b031633146114a95760405162461bcd60e51b81526004016108649061281f565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516815560028290556040518190600080516020612af9833981519152908290a350565b6000546001600160a01b031633146115185760405162461bcd60e51b81526004016108649061281f565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146115635760405162461bcd60e51b81526004016108649061281f565b601955565b6000546001600160a01b031633146115925760405162461bcd60e51b81526004016108649061281f565b6001600160a01b0381166115f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610864565b600080546040516001600160a01b0380851693921691600080516020612af983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166116a25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610864565b6001600160a01b0382166117035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610864565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610864565b6001600160a01b03821661182a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610864565b6000811161188c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610864565b6000546001600160a01b038481169116148015906118b857506000546001600160a01b03838116911614155b15611920576018548111156119205760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610864565b600061192b3061115e565b9050601854811061193b57506018545b601954811080159081906119595750601754600160a01b900460ff16155b801561197357506017546001600160a01b03868116911614155b80156119885750601754600160a81b900460ff165b1561199b57601954915061199b82611ac8565b6001600160a01b03851660009081526006602052604090205460019060ff16806119dd57506001600160a01b03851660009081526006602052604090205460ff165b156119e6575060005b6119f286868684611b6f565b505050505050565b60008184841115611a1e5760405162461bcd60e51b815260040161086491906127ca565b505050900390565b6000806000611a33611d0f565b9092509050611a428282611a49565b9250505090565b6000610a4d82846128dd565b6000610a4d82846128c5565b6000806000806000806000806000806000611a7b8c611e91565b93509350935093506000806000611a9c8f878787611a97611a26565b611ee6565b919f509d509b509599509397509195509350505050919395979092949650565b6000610a4d8284612a09565b6017805460ff60a01b1916600160a01b1790556000611ae8826002611a49565b90506000611af68383611abc565b905047611b0283611f48565b6000611b0e4783611abc565b9050611b1a83826120a9565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506017805460ff60a01b19169055505050565b80611b9957611b996010805460115560128054601355601480546015556000928390559082905555565b6001600160a01b03841660009081526007602052604090205460ff168015611bda57506001600160a01b03831660009081526007602052604090205460ff16155b15611bef57611bea84848461218d565b611ced565b6001600160a01b03841660009081526007602052604090205460ff16158015611c3057506001600160a01b03831660009081526007602052604090205460ff165b15611c4057611bea8484846122d3565b6001600160a01b03841660009081526007602052604090205460ff16158015611c8257506001600160a01b03831660009081526007602052604090205460ff16155b15611c9257611bea848484612392565b6001600160a01b03841660009081526007602052604090205460ff168015611cd257506001600160a01b03831660009081526007602052604090205460ff165b15611ce257611bea8484846123ec565b611ced848484612392565b80611d0957611d09601154601055601354601255601554601455565b50505050565b600b54600a546000918291825b600854811015611e6157826003600060088481548110611d3e57611d3e612aa2565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611da95750816004600060088481548110611d8257611d82612aa2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611dbf57600b54600a54945094505050509091565b611e056003600060088481548110611dd957611dd9612aa2565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611abc565b9250611e4d6004600060088481548110611e2157611e21612aa2565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611abc565b915080611e5981612a5b565b915050611d1c565b50600a54600b54611e7191611a49565b821015611e8857600b54600a549350935050509091565b90939092509050565b6000806000806000611ea286612475565b90506000611eaf87612497565b90506000611ebc886124b3565b90506000611ed682611ed085818d89611abc565b90611abc565b9993985091965094509092505050565b6000808080611ef589866124cf565b90506000611f0389876124cf565b90506000611f1189886124cf565b90506000611f1f89896124cf565b90506000611f3382611ed085818989611abc565b949d949c50929a509298505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f7d57611f7d612aa2565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611fd157600080fd5b505afa158015611fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120099190612679565b8160018151811061201c5761201c612aa2565b6001600160a01b0392831660209182029290920101526016546120429130911684611640565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061207b908590600090869030904290600401612854565b600060405180830381600087803b15801561209557600080fd5b505af11580156119f2573d6000803e3d6000fd5b6016546120c19030906001600160a01b031684611640565b6016546001600160a01b031663f305d7198230856000806120ea6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561214d57600080fd5b505af1158015612161573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612186919061279c565b5050505050565b60008060008060008060006121a188611a61565b96509650965096509650965096506121e788600460008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546122169088611abc565b6001600160a01b03808c1660009081526003602052604080822093909355908b16815220546122459087611a55565b6001600160a01b038a16600090815260036020526040902055612267826124db565b61227081612564565b61227a8584612623565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122bf91815260200190565b60405180910390a350505050505050505050565b60008060008060008060006122e788611a61565b965096509650965096509650965061232d87600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152600490915220546123639085611a55565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546122459087611a55565b60008060008060008060006123a688611a61565b965096509650965096509650965061221687600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b600080600080600080600061240088611a61565b965096509650965096509650965061244688600460008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611abc90919063ffffffff16565b6001600160a01b038b1660009081526004602090815260408083209390935560039052205461232d9088611abc565b60006109156064612491601054856124cf90919063ffffffff16565b90611a49565b60006109156064612491601454856124cf90919063ffffffff16565b60006109156064612491601254856124cf90919063ffffffff16565b6000610a4d82846129ea565b60006124e5611a26565b905060006124f383836124cf565b306000908152600360205260409020549091506125109082611a55565b3060009081526003602090815260408083209390935560079052205460ff161561255f573060009081526004602052604090205461254e9084611a55565b306000908152600460205260409020555b505050565b600061256e611a26565b9050600061257c83836124cf565b6009546001600160a01b03166000908152600360205260409020549091506125a49082611a55565b600980546001600160a01b03908116600090815260036020908152604080832095909555925490911681526007909152205460ff161561255f576009546001600160a01b03166000908152600460205260409020546126039084611a55565b6009546001600160a01b0316600090815260046020526040902055505050565b600b546126309083611abc565b600b55600c546126409082611a55565b600c555050565b8035801515811461265757600080fd5b919050565b60006020828403121561266e57600080fd5b8135610a4d81612ab8565b60006020828403121561268b57600080fd5b8151610a4d81612ab8565b600080604083850312156126a957600080fd5b82356126b481612ab8565b915060208301356126c481612ab8565b809150509250929050565b6000806000606084860312156126e457600080fd5b83356126ef81612ab8565b925060208401356126ff81612ab8565b929592945050506040919091013590565b6000806040838503121561272357600080fd5b823561272e81612ab8565b946020939093013593505050565b60006020828403121561274e57600080fd5b610a4d82612647565b60006020828403121561276957600080fd5b5035919050565b6000806040838503121561278357600080fd5b8235915061279360208401612647565b90509250929050565b6000806000606084860312156127b157600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156127f7578581018301518582016040015282016127db565b81811115612809576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128a45784516001600160a01b03168352938301939183019160010161287f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128d8576128d8612a76565b500190565b6000826128fa57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561293a57816000190482111561292057612920612a76565b8085161561292d57918102915b93841c9390800290612904565b509250929050565b6000610a4d838360008261295857506001610915565b8161296557506000610915565b816001811461297b5760028114612985576129a1565b6001915050610915565b60ff84111561299657612996612a76565b50506001821b610915565b5060208310610133831016604e8410600b84101617156129c4575081810a610915565b6129ce83836128ff565b80600019048211156129e2576129e2612a76565b029392505050565b6000816000190483118215151615612a0457612a04612a76565b500290565b600082821015612a1b57612a1b612a76565b500390565b600181811c90821680612a3457607f821691505b60208210811415612a5557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a6f57612a6f612a76565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612acd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204ca132f5c6a6baa0ebeb35c90c9fd50c9db0aba8fcad2e7791ab7e302311d52764736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000094a896e7ff6626cacb36cc9802259ad6f6fccc58000000000000000000000000dcfc09ebaf6c428b6045599e404a0bc9ac572c8e00000000000000000000000051e46fddf884518d96ebea18023f7b2d0a82582a00000000000000000000000000000000000000000000000000000000000000084f766572646f736500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f44000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _NAME (string): Overdose
Arg [1] : _SYMBOL (string): OD
Arg [2] : _DECIMALS (uint256): 18
Arg [3] : _supply (uint256): 1000000000
Arg [4] : _txFee (uint256): 0
Arg [5] : _lpFee (uint256): 0
Arg [6] : _DexFee (uint256): 5
Arg [7] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [8] : feeaddress (address): 0x94A896e7fF6626CaCB36cC9802259AD6F6fCcC58
Arg [9] : tokenOwner (address): 0xDCFC09eBaF6C428b6045599e404A0BC9AC572c8e
Arg [10] : service (address): 0x51e46fDDF884518d96EbeA18023f7B2d0A82582a
-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [8] : 00000000000000000000000094a896e7ff6626cacb36cc9802259ad6f6fccc58
Arg [9] : 000000000000000000000000dcfc09ebaf6c428b6045599e404a0bc9ac572c8e
Arg [10] : 00000000000000000000000051e46fddf884518d96ebea18023f7b2d0a82582a
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [12] : 4f766572646f7365000000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [14] : 4f44000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
16664:19225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24778:98;;;;;;;;;;-1:-1:-1;24778:98:0;;;;;:::i;:::-;;:::i;:::-;;19787:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20701:161;;;;;;;;;;-1:-1:-1;20701:161:0;;;;;:::i;:::-;;:::i;:::-;;;4089:14:1;;4082:22;4064:41;;4052:2;4037:18;20701:161:0;3924:187:1;25268:105:0;;;;;;;;;;-1:-1:-1;25268:105:0;;;;;:::i;:::-;;:::i;21822:87::-;;;;;;;;;;-1:-1:-1;21891:10:0;;21822:87;;;10953:25:1;;;10941:2;10926:18;21822:87:0;10807:177:1;17620:41:0;;;;;;;;;;-1:-1:-1;17620:41:0;;;;-1:-1:-1;;;;;17620:41:0;;;;;;-1:-1:-1;;;;;2959:32:1;;;2941:51;;2929:2;2914:18;17620:41:0;2795:203:1;20066:95:0;;;;;;;;;;-1:-1:-1;20146:7:0;;20066:95;;20870:313;;;;;;;;;;-1:-1:-1;20870:313:0;;;;;:::i;:::-;;:::i;22749:253::-;;;;;;;;;;-1:-1:-1;22749:253:0;;;;;:::i;:::-;;:::i;19973:85::-;;;;;;;;;;-1:-1:-1;20041:9:0;;19973:85;;23351:479;;;;;;;;;;-1:-1:-1;23351:479:0;;;;;:::i;:::-;;:::i;24884:98::-;;;;;;;;;;-1:-1:-1;24884:98:0;;;;;:::i;:::-;;:::i;21191:218::-;;;;;;;;;;-1:-1:-1;21191:218:0;;;;;:::i;:::-;;:::i;17407:22::-;;;;;;;;;;;;;;;;21917:378;;;;;;;;;;-1:-1:-1;21917:378:0;;;;;:::i;:::-;;:::i;35404:318::-;;;;;;;;;;-1:-1:-1;35404:318:0;;;;;:::i;:::-;;:::i;24533:111::-;;;;;;;;;;-1:-1:-1;24533:111:0;;;;;:::i;:::-;;:::i;22303:438::-;;;;;;;;;;-1:-1:-1;22303:438:0;;;;;:::i;:::-;;:::i;17668:28::-;;;;;;;;;;-1:-1:-1;17668:28:0;;;;-1:-1:-1;;;;;17668:28:0;;;17731:40;;;;;;;;;;-1:-1:-1;17731:40:0;;;;-1:-1:-1;;;17731:40:0;;;;;;23010:333;;;;;;;;;;-1:-1:-1;23010:333:0;;;;;:::i;:::-;;:::i;29594:123::-;;;;;;;;;;-1:-1:-1;29594:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;29682:27:0;29658:4;29682:27;;;:18;:27;;;;;;;;;29594:123;17541:28;;;;;;;;;;;;;;;;20169:198;;;;;;;;;;-1:-1:-1;20169:198:0;;;;;:::i;:::-;;:::i;7658:148::-;;;;;;;;;;;;;:::i;7181:24::-;;;;;;;;;;;;;;;;17778:27;;;;;;;;;;;;;;;;21694:120;;;;;;;;;;-1:-1:-1;21694:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;21786:20:0;21762:4;21786:20;;;:11;:20;;;;;;;;;21694:120;7427:87;;;;;;;;;;-1:-1:-1;7473:7:0;7500:6;-1:-1:-1;;;;;7500:6:0;7427:87;;24994:122;;;;;;;;;;-1:-1:-1;24994:122:0;;;;;:::i;:::-;;:::i;19878:87::-;;;;;;;;;;;;;:::i;21417:269::-;;;;;;;;;;-1:-1:-1;21417:269:0;;;;;:::i;:::-;;:::i;8426:294::-;;;;;;;;;;;;;:::i;20375:167::-;;;;;;;;;;-1:-1:-1;20375:167:0;;;;;:::i;:::-;;:::i;17474:22::-;;;;;;;;;;;;;;;;7116:21;;;;;;;;;;-1:-1:-1;7116:21:0;;;;-1:-1:-1;;;;;7116:21:0;;;17107:32;;;;;;;;;;-1:-1:-1;17107:32:0;;;;-1:-1:-1;;;;;17107:32:0;;;25387:171;;;;;;;;;;-1:-1:-1;25387:171:0;;;;;:::i;:::-;;:::i;17812:44::-;;;;;;;;;;;;;;;;25127:129;;;;;;;;;;-1:-1:-1;25127:129:0;;;;;:::i;:::-;;:::i;8142:208::-;;;;;;;;;;-1:-1:-1;8142:208:0;;;;;:::i;:::-;;:::i;20550:143::-;;;;;;;;;;-1:-1:-1;20550:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;20658:18:0;;;20631:7;20658:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20550:143;24656:110;;;;;;;;;;-1:-1:-1;24656:110:0;;;;;:::i;:::-;;:::i;35730:150::-;;;;;;;;;;-1:-1:-1;35730:150:0;;;;;:::i;:::-;;:::i;7816:244::-;;;;;;;;;;-1:-1:-1;7816:244:0;;;;;:::i;:::-;;:::i;24778:98::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;;;;;;;;;24852:7:::1;:16:::0;24778:98::o;19787:83::-;19824:13;19857:5;19850:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19787:83;:::o;20701:161::-;20776:4;20793:39;3463:10;20816:7;20825:6;20793:8;:39::i;:::-;-1:-1:-1;20850:4:0;20701:161;;;;;:::o;25268:105::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;25340:17:::1;:25:::0;;-1:-1:-1;;;;;;25340:25:0::1;-1:-1:-1::0;;;;;25340:25:0;;;::::1;::::0;;;::::1;::::0;;25268:105::o;20870:313::-;20968:4;20985:36;20995:6;21003:9;21014:6;20985:9;:36::i;:::-;21032:121;21041:6;3463:10;21063:89;21101:6;21063:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21063:19:0;;;;;;:11;:19;;;;;;;;3463:10;21063:33;;;;;;;;;;:37;:89::i;:::-;21032:8;:121::i;:::-;-1:-1:-1;21171:4:0;20870:313;;;;;:::o;22749:253::-;22815:7;22854;;22843;:18;;22835:73;;;;-1:-1:-1;;;22835:73:0;;5559:2:1;22835:73:0;;;5541:21:1;5598:2;5578:18;;;5571:30;5637:34;5617:18;;;5610:62;-1:-1:-1;;;5688:18:1;;;5681:40;5738:19;;22835:73:0;5357:406:1;22835:73:0;22919:19;22942:10;:8;:10::i;:::-;22919:33;-1:-1:-1;22970:24:0;:7;22919:33;22970:11;:24::i;:::-;22963:31;22749:253;-1:-1:-1;;;22749:253:0:o;23351:479::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23433:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23425:60;;;::::0;-1:-1:-1;;;23425:60:0;;7136:2:1;23425:60:0::1;::::0;::::1;7118:21:1::0;7175:2;7155:18;;;7148:30;7214:29;7194:18;;;7187:57;7261:18;;23425:60:0::1;6934:351:1::0;23425:60:0::1;23501:9;23496:327;23520:9;:16:::0;23516:20;::::1;23496:327;;;23578:7;-1:-1:-1::0;;;;;23562:23:0::1;:9;23572:1;23562:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;23562:12:0::1;:23;23558:254;;;23621:9;23631:16:::0;;:20:::1;::::0;23650:1:::1;::::0;23631:20:::1;:::i;:::-;23621:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;23606:9:::1;:12:::0;;-1:-1:-1;;;;;23621:31:0;;::::1;::::0;23616:1;;23606:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;23606:46:0::1;-1:-1:-1::0;;;;;23606:46:0;;::::1;;::::0;;23671:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;23710:11:::1;:20:::0;;;;:28;;-1:-1:-1;;23710:28:0::1;::::0;;23757:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;23757:15:0;;;;;-1:-1:-1;;;;;;23757:15:0::1;::::0;;;;;23496:327:::1;23351:479:::0;:::o;23558:254::-:1;23538:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23496:327;;;;23351:479:::0;:::o;24884:98::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;24958:7:::1;:16:::0;24884:98::o;21191:218::-;3463:10;21279:4;21328:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21328:34:0;;;;;;;;;;21279:4;;21296:83;;21319:7;;21328:50;;21367:10;21328:38;:50::i;21917:378::-;3463:10;21969:14;22018:19;;;:11;:19;;;;;;;;22017:20;22009:77;;;;-1:-1:-1;;;22009:77:0;;10596:2:1;22009:77:0;;;10578:21:1;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;-1:-1:-1;;;10725:18:1;;;10718:42;10777:19;;22009:77:0;10394:408:1;22009:77:0;22098:15;22123:19;22134:7;22123:10;:19::i;:::-;-1:-1:-1;;;;;;;;22171:15:0;;;;;;:7;:15;;;;;;22097:45;;-1:-1:-1;22171:28:0;;:15;-1:-1:-1;22097:45:0;;-1:-1:-1;;22171:19:0;:28::i;:::-;-1:-1:-1;;;;;22153:15:0;;;;;;:7;:15;;;;;:46;22220:7;;:20;;22232:7;22220:11;:20::i;:::-;22210:7;:30;22264:10;;:23;;22279:7;22264:14;:23::i;:::-;22251:10;:36;-1:-1:-1;;;21917:378:0:o;35404:318::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;35479:35:::1;35536:9;35479:67;;35591:16;-1:-1:-1::0;;;;;35591:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;35573:56:0::1;;35638:4;35645:16;-1:-1:-1::0;;;;;35645:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35573:96;::::0;-1:-1:-1;;;;;;35573:96:0::1;::::0;;;;;;-1:-1:-1;;;;;3233:15:1;;;35573:96:0::1;::::0;::::1;3215:34:1::0;3285:15;;3265:18;;;3258:43;3150:18;;35573:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35557:13;:112:::0;;-1:-1:-1;;;;;35557:112:0;;::::1;-1:-1:-1::0;;;;;;35557:112:0;;::::1;;::::0;;;35680:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;35404:318:0:o;24533:111::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24602:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;24602:34:0::1;24632:4;24602:34;::::0;;24533:111::o;22303:438::-;22393:7;22432;;22421;:18;;22413:62;;;;-1:-1:-1;;;22413:62:0;;7492:2:1;22413:62:0;;;7474:21:1;7531:2;7511:18;;;7504:30;7570:33;7550:18;;;7543:61;7621:18;;22413:62:0;7290:355:1;22413:62:0;22491:17;22486:248;;22526:15;22551:19;22562:7;22551:10;:19::i;:::-;-1:-1:-1;22525:45:0;;-1:-1:-1;22585:14:0;;-1:-1:-1;;;;;;22585:14:0;22486:248;22634:23;22666:19;22677:7;22666:10;:19::i;:::-;-1:-1:-1;22632:53:0;;-1:-1:-1;22700:22:0;;-1:-1:-1;;;;;;22700:22:0;23010:333;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23093:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23092:21;23084:61;;;::::0;-1:-1:-1;;;23084:61:0;;6780:2:1;23084:61:0::1;::::0;::::1;6762:21:1::0;6819:2;6799:18;;;6792:30;6858:29;6838:18;;;6831:57;6905:18;;23084:61:0::1;6578:351:1::0;23084:61:0::1;-1:-1:-1::0;;;;;23159:16:0;::::1;23178:1;23159:16:::0;;;:7:::1;:16;::::0;;;;;:20;23156:108:::1;;-1:-1:-1::0;;;;;23235:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23215:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;23196:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;23156:108:::1;-1:-1:-1::0;;;;;23274:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;23274:27:0::1;23297:4;23274:27:::0;;::::1;::::0;;;23312:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;23312:23:0::1;::::0;;::::1;::::0;;23010:333::o;20169:198::-;-1:-1:-1;;;;;20259:20:0;;20235:7;20259:20;;;:11;:20;;;;;;;;20255:49;;;-1:-1:-1;;;;;;20288:16:0;;;;;:7;:16;;;;;;;20169:198::o;20255:49::-;-1:-1:-1;;;;;20342:16:0;;;;;;:7;:16;;;;;;20322:37;;:19;:37::i;7658:148::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;7765:1:::1;7749:6:::0;;7728:40:::1;::::0;-1:-1:-1;;;;;7749:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7728:40:0;7765:1;;7728:40:::1;7796:1;7779:19:::0;;-1:-1:-1;;;;;;7779:19:0::1;::::0;;7658:148::o;24994:122::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;25080:13:::1;:28:::0;24994:122::o;19878:87::-;19917:13;19950:7;19943:14;;;;;:::i;21417:269::-;21510:4;21527:129;3463:10;21550:7;21559:96;21598:15;21559:96;;;;;;;;;;;;;;;;;3463:10;21559:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21559:34:0;;;;;;;;;;;;:38;:96::i;8426:294::-;8478:14;;-1:-1:-1;;;;;8478:14:0;8496:10;8478:28;8470:77;;;;-1:-1:-1;;;8470:77:0;;9032:2:1;8470:77:0;;;9014:21:1;9071:2;9051:18;;;9044:30;9110:34;9090:18;;;9083:62;-1:-1:-1;;;9161:18:1;;;9154:34;9205:19;;8470:77:0;8830:400:1;8470:77:0;8584:9;;8566:15;:27;8558:60;;;;-1:-1:-1;;;8558:60:0;;10248:2:1;8558:60:0;;;10230:21:1;10287:2;10267:18;;;10260:30;-1:-1:-1;;;10306:18:1;;;10299:49;10365:18;;8558:60:0;10046:343:1;8558:60:0;8663:14;;;8655:6;;8634:44;;-1:-1:-1;;;;;8663:14:0;;;;8655:6;;;;-1:-1:-1;;;;;;;;;;;8634:44:0;;8698:14;;;8689:23;;-1:-1:-1;;;;;;8689:23:0;-1:-1:-1;;;;;8698:14:0;;;8689:23;;;;;;8426:294::o;20375:167::-;20453:4;20470:42;3463:10;20494:9;20505:6;20470:9;:42::i;25387:171::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;25464:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;25464:32:0::1;-1:-1:-1::0;;;;25464:32:0;;::::1;;::::0;;25512:38:::1;::::0;::::1;::::0;::::1;::::0;25488:8;4089:14:1;4082:22;4064:41;;4052:2;4037:18;;3924:187;25512:38:0::1;;;;;;;;25387:171:::0;:::o;25127:129::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;25239:9:::1;::::0;25233:15:::1;::::0;:2:::1;:15;:::i;:::-;25217:31;::::0;:12;:31:::1;:::i;:::-;25202:12;:46:::0;-1:-1:-1;25127:129:0:o;8142:208::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;8223:6:::1;::::0;;;8206:23;;-1:-1:-1;;;;;;8206:23:0;;::::1;-1:-1:-1::0;;;;;8223:6:0;::::1;8206:23;::::0;;;8240:19:::1;::::0;;8270:9:::1;:16:::0;;;8302:40:::1;::::0;8223:6;;-1:-1:-1;;;;;;;;;;;8302:40:0;8223:6;;8302:40:::1;8142:208:::0;:::o;24656:110::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24723:27:0::1;24753:5;24723:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;24723:35:0::1;::::0;;24656:110::o;35730:150::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;35826:29:::1;:46:::0;35730:150::o;7816:244::-;7473:7;7500:6;-1:-1:-1;;;;;7500:6:0;3463:10;7566:23;7558:68;;;;-1:-1:-1;;;7558:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7905:22:0;::::1;7897:73;;;::::0;-1:-1:-1;;;7897:73:0;;5970:2:1;7897:73:0::1;::::0;::::1;5952:21:1::0;6009:2;5989:18;;;5982:30;6048:34;6028:18;;;6021:62;-1:-1:-1;;;6099:18:1;;;6092:36;6145:19;;7897:73:0::1;5768:402:1::0;7897:73:0::1;8007:6;::::0;;7986:38:::1;::::0;-1:-1:-1;;;;;7986:38:0;;::::1;::::0;8007:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;7986:38:0;::::1;8035:6;:17:::0;;-1:-1:-1;;;;;;8035:17:0::1;-1:-1:-1::0;;;;;8035:17:0;;;::::1;::::0;;;::::1;::::0;;7816:244::o;29725:337::-;-1:-1:-1;;;;;29818:19:0;;29810:68;;;;-1:-1:-1;;;29810:68:0;;9843:2:1;29810:68:0;;;9825:21:1;9882:2;9862:18;;;9855:30;9921:34;9901:18;;;9894:62;-1:-1:-1;;;9972:18:1;;;9965:34;10016:19;;29810:68:0;9641:400:1;29810:68:0;-1:-1:-1;;;;;29897:21:0;;29889:68;;;;-1:-1:-1;;;29889:68:0;;6377:2:1;29889:68:0;;;6359:21:1;6416:2;6396:18;;;6389:30;6455:34;6435:18;;;6428:62;-1:-1:-1;;;6506:18:1;;;6499:32;6548:19;;29889:68:0;6175:398:1;29889:68:0;-1:-1:-1;;;;;29970:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;30022:32;;10953:25:1;;;30022:32:0;;10926:18:1;30022:32:0;;;;;;;29725:337;;;:::o;30070:1281::-;-1:-1:-1;;;;;30192:18:0;;30184:68;;;;-1:-1:-1;;;30184:68:0;;9437:2:1;30184:68:0;;;9419:21:1;9476:2;9456:18;;;9449:30;9515:34;9495:18;;;9488:62;-1:-1:-1;;;9566:18:1;;;9559:35;9611:19;;30184:68:0;9235:401:1;30184:68:0;-1:-1:-1;;;;;30271:16:0;;30263:64;;;;-1:-1:-1;;;30263:64:0;;5155:2:1;30263:64:0;;;5137:21:1;5194:2;5174:18;;;5167:30;5233:34;5213:18;;;5206:62;-1:-1:-1;;;5284:18:1;;;5277:33;5327:19;;30263:64:0;4953:399:1;30263:64:0;30355:1;30346:6;:10;30338:64;;;;-1:-1:-1;;;30338:64:0;;8622:2:1;30338:64:0;;;8604:21:1;8661:2;8641:18;;;8634:30;8700:34;8680:18;;;8673:62;-1:-1:-1;;;8751:18:1;;;8744:39;8800:19;;30338:64:0;8420:405:1;30338:64:0;7473:7;7500:6;-1:-1:-1;;;;;30416:15:0;;;7500:6;;30416:15;;;;:32;;-1:-1:-1;7473:7:0;7500:6;-1:-1:-1;;;;;30435:13:0;;;7500:6;;30435:13;;30416:32;30413:125;;;30481:12;;30471:6;:22;;30463:75;;;;-1:-1:-1;;;30463:75:0;;7852:2:1;30463:75:0;;;7834:21:1;7891:2;7871:18;;;7864:30;7930:34;7910:18;;;7903:62;-1:-1:-1;;;7981:18:1;;;7974:38;8029:19;;30463:75:0;7650:404:1;30463:75:0;30551:28;30582:24;30600:4;30582:9;:24::i;:::-;30551:55;;30654:12;;30630:20;:36;30627:112;;-1:-1:-1;30715:12:0;;30627:112;30810:29;;30786:53;;;;;;;30868;;-1:-1:-1;30905:16:0;;-1:-1:-1;;;30905:16:0;;;;30904:17;30868:53;:91;;;;-1:-1:-1;30946:13:0;;-1:-1:-1;;;;;30938:21:0;;;30946:13;;30938:21;;30868:91;:129;;;;-1:-1:-1;30976:21:0;;-1:-1:-1;;;30976:21:0;;;;30868:129;30850:289;;;31047:29;;31024:52;;31091:36;31106:20;31091:14;:36::i;:::-;-1:-1:-1;;;;;31192:24:0;;31159:12;31192:24;;;:18;:24;;;;;;31174:4;;31192:24;;;:50;;-1:-1:-1;;;;;;31220:22:0;;;;;;:18;:22;;;;;;;;31192:50;31189:96;;;-1:-1:-1;31268:5:0;31189:96;31305:38;31320:4;31325:2;31328:6;31335:7;31305:14;:38::i;:::-;30173:1178;;;30070:1281;;;:::o;2697:206::-;2783:7;2844:12;2836:6;;;;2828:29;;;;-1:-1:-1;;;2828:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2879:5:0;;;2697:206::o;27202:163::-;27243:7;27264:15;27281;27300:19;:17;:19::i;:::-;27263:56;;-1:-1:-1;27263:56:0;-1:-1:-1;27337:20:0;27263:56;;27337:11;:20::i;:::-;27330:27;;;;27202:163;:::o;2479:98::-;2537:7;2564:5;2568:1;2564;:5;:::i;2153:98::-;2211:7;2238:5;2242:1;2238;:5;:::i;25819:454::-;25878:7;25887;25896;25905;25914;25923;25932;25953:23;25978:12;25992:18;26012:12;26028:20;26040:7;26028:11;:20::i;:::-;25952:96;;;;;;;;26060:15;26077:23;26102:12;26118:56;26130:7;26139:4;26145:10;26157:4;26163:10;:8;:10::i;:::-;26118:11;:56::i;:::-;26059:115;;-1:-1:-1;26059:115:0;-1:-1:-1;26059:115:0;-1:-1:-1;26225:15:0;;-1:-1:-1;26242:4:0;;-1:-1:-1;26248:10:0;;-1:-1:-1;26260:4:0;-1:-1:-1;;;;25819:454:0;;;;;;;;;:::o;2261:98::-;2319:7;2346:5;2350:1;2346;:5;:::i;31359:465::-;18157:16;:23;;-1:-1:-1;;;;18157:23:0;-1:-1:-1;;;18157:23:0;;;;31459:27:::1;:20:::0;31484:1:::1;31459:24;:27::i;:::-;31444:42:::0;-1:-1:-1;31497:17:0::1;31517:30;:20:::0;31444:42;31517:24:::1;:30::i;:::-;31497:50:::0;-1:-1:-1;31583:21:0::1;31615:22;31632:4:::0;31615:16:::1;:22::i;:::-;31649:18;31670:41;:21;31696:14:::0;31670:25:::1;:41::i;:::-;31649:62;;31722:35;31735:9;31746:10;31722:12;:35::i;:::-;31773:43;::::0;;12176:25:1;;;12232:2;12217:18;;12210:34;;;12260:18;;;12253:34;;;31773:43:0::1;::::0;12164:2:1;12149:18;31773:43:0::1;;;;;;;-1:-1:-1::0;;18203:16:0;:24;;-1:-1:-1;;;;18203:24:0;;;-1:-1:-1;;;31359:465:0:o;32761:834::-;32872:7;32868:40;;32894:14;29228:7;;;29210:15;:25;29264:7;;;29246:15;:25;29306:13;;;29282:21;:37;-1:-1:-1;29340:11:0;;;;29362;;;;29384:17;29166:243;32894:14;-1:-1:-1;;;;;32933:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;32957:22:0;;;;;;:11;:22;;;;;;;;32956:23;32933:46;32929:597;;;32996:48;33018:6;33026:9;33037:6;32996:21;:48::i;:::-;32929:597;;;-1:-1:-1;;;;;33067:19:0;;;;;;:11;:19;;;;;;;;33066:20;:46;;;;-1:-1:-1;;;;;;33090:22:0;;;;;;:11;:22;;;;;;;;33066:46;33062:464;;;33129:46;33149:6;33157:9;33168:6;33129:19;:46::i;33062:464::-;-1:-1:-1;;;;;33198:19:0;;;;;;:11;:19;;;;;;;;33197:20;:47;;;;-1:-1:-1;;;;;;33222:22:0;;;;;;:11;:22;;;;;;;;33221:23;33197:47;33193:333;;;33261:44;33279:6;33287:9;33298:6;33261:17;:44::i;33193:333::-;-1:-1:-1;;;;;33327:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;33350:22:0;;;;;;:11;:22;;;;;;;;33327:45;33323:203;;;33389:48;33411:6;33419:9;33430:6;33389:21;:48::i;33323:203::-;33470:44;33488:6;33496:9;33507:6;33470:17;:44::i;:::-;33550:7;33546:41;;33572:15;29475;;29465:7;:25;29511:15;;29501:7;:25;29553:21;;29537:13;:37;29421:161;33572:15;32761:834;;;;:::o;27373:561::-;27470:7;;27506;;27423;;;;;27530:289;27554:9;:16;27550:20;;27530:289;;;27620:7;27596;:21;27604:9;27614:1;27604:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27604:12:0;27596:21;;;;;;;;;;;;;:31;;:66;;;27655:7;27631;:21;27639:9;27649:1;27639:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27639:12:0;27631:21;;;;;;;;;;;;;:31;27596:66;27592:97;;;27672:7;;27681;;27664:25;;;;;;;27373:561;;:::o;27592:97::-;27714:34;27726:7;:21;27734:9;27744:1;27734:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27734:12:0;27726:21;;;;;;;;;;;;;27714:7;;:11;:34::i;:::-;27704:44;;27773:34;27785:7;:21;27793:9;27803:1;27793:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27793:12:0;27785:21;;;;;;;;;;;;;27773:7;;:11;:34::i;:::-;27763:44;-1:-1:-1;27572:3:0;;;;:::i;:::-;;;;27530:289;;;-1:-1:-1;27855:7:0;;27843;;:20;;:11;:20::i;:::-;27833:7;:30;27829:61;;;27873:7;;27882;;27865:25;;;;;;27373:561;;:::o;27829:61::-;27909:7;;27918;;-1:-1:-1;27373:561:0;-1:-1:-1;27373:561:0:o;26281:405::-;26341:7;26350;26359;26368;26388:12;26403:24;26419:7;26403:15;:24::i;:::-;26388:39;;26438:18;26459:30;26481:7;26459:21;:30::i;:::-;26438:51;;26500:12;26515:24;26531:7;26515:15;:24::i;:::-;26500:39;-1:-1:-1;26550:23:0;26576:43;26500:39;26576:33;26598:10;26576:33;:7;26588:4;26576:11;:17::i;:::-;:21;;:33::i;:43::-;26550:69;26655:4;;-1:-1:-1;26661:10:0;;-1:-1:-1;26661:10:0;-1:-1:-1;26281:405:0;;-1:-1:-1;;;26281:405:0:o;26694:500::-;26823:7;;;;26879:24;:7;26891:11;26879;:24::i;:::-;26861:42;-1:-1:-1;26914:12:0;26929:21;:4;26938:11;26929:8;:21::i;:::-;26914:36;-1:-1:-1;26961:18:0;26982:27;:10;26997:11;26982:14;:27::i;:::-;26961:48;-1:-1:-1;27020:12:0;27035:21;:4;27044:11;27035:8;:21::i;:::-;27020:36;-1:-1:-1;27067:23:0;27093:43;27020:36;27093:33;27115:10;27093:33;:7;27105:4;27093:11;:17::i;:43::-;27155:7;;;;-1:-1:-1;27181:4:0;;-1:-1:-1;26694:500:0;;-1:-1:-1;;;;;;;;;26694:500:0:o;31832:499::-;31922:16;;;31936:1;31922:16;;;;;;;;31898:21;;31922:16;;;;;;;;;;-1:-1:-1;31922:16:0;31898:40;;31967:4;31949;31954:1;31949:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;31949:23:0;;;:7;;;;;;;;;;:23;;;;31993:15;;:22;;;-1:-1:-1;;;31993:22:0;;;;:15;;;;;:20;;:22;;;;;31949:7;;31993:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31983:4;31988:1;31983:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;31983:32:0;;;:7;;;;;;;;;:32;32058:15;;32026:62;;32043:4;;32058:15;32076:11;32026:8;:62::i;:::-;32099:15;;:224;;-1:-1:-1;;;32099:224:0;;-1:-1:-1;;;;;32099:15:0;;;;:66;;:224;;32180:11;;32099:15;;32250:4;;32277;;32297:15;;32099:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32339:414;32452:15;;32420:62;;32437:4;;-1:-1:-1;;;;;32452:15:0;32470:11;32420:8;:62::i;:::-;32493:15;;-1:-1:-1;;;;;32493:15:0;:31;32532:9;32565:4;32585:11;32493:15;;32697:7;7473;7500:6;-1:-1:-1;;;;;7500:6:0;;7427:87;32697:7;32493:252;;;;;;-1:-1:-1;;;;;;32493:252:0;;;-1:-1:-1;;;;;3671:15:1;;;32493:252:0;;;3653:34:1;3703:18;;;3696:34;;;;3746:18;;;3739:34;;;;3789:18;;;3782:34;3853:15;;;3832:19;;;3825:44;32719:15:0;3885:19:1;;;3878:35;3587:19;;32493:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;32339:414;;:::o;34785:605::-;34888:15;34905:23;34930:12;34944:23;34969:12;34983:18;35003:12;35019:19;35030:7;35019:10;:19::i;:::-;34887:151;;;;;;;;;;;;;;35067:28;35087:7;35067;:15;35075:6;-1:-1:-1;;;;;35067:15:0;-1:-1:-1;;;;;35067:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;35049:15:0;;;;;;:7;:15;;;;;;;;:46;;;;35124:7;:15;;;;:28;;35144:7;35124:19;:28::i;:::-;-1:-1:-1;;;;;35106:15:0;;;;;;;:7;:15;;;;;;:46;;;;35184:18;;;;;;;:39;;35207:15;35184:22;:39::i;:::-;-1:-1:-1;;;;;35163:18:0;;;;;;:7;:18;;;;;:60;35237:26;35252:10;35237:14;:26::i;:::-;35274:14;35283:4;35274:8;:14::i;:::-;35299:23;35311:4;35317;35299:11;:23::i;:::-;35355:9;-1:-1:-1;;;;;35338:44:0;35347:6;-1:-1:-1;;;;;35338:44:0;;35366:15;35338:44;;;;10953:25:1;;10941:2;10926:18;;10807:177;35338:44:0;;;;;;;;34876:514;;;;;;;34785:605;;;:::o;34152:625::-;34253:15;34270:23;34295:12;34309:23;34334:12;34348:18;34368:12;34384:19;34395:7;34384:10;:19::i;:::-;34252:151;;;;;;;;;;;;;;34432:28;34452:7;34432;:15;34440:6;-1:-1:-1;;;;;34432:15:0;-1:-1:-1;;;;;34432:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;34414:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;34492:18;;;;;:7;:18;;;;;:39;;34515:15;34492:22;:39::i;:::-;-1:-1:-1;;;;;34471:18:0;;;;;;:7;:18;;;;;;;;:60;;;;34563:7;:18;;;;:39;;34586:15;34563:22;:39::i;33603:541::-;33702:15;33719:23;33744:12;33758:23;33783:12;33797:18;33817:12;33833:19;33844:7;33833:10;:19::i;:::-;33701:151;;;;;;;;;;;;;;33881:28;33901:7;33881;:15;33889:6;-1:-1:-1;;;;;33881:15:0;-1:-1:-1;;;;;33881:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;23840:681::-;23943:15;23960:23;23985:12;23999:23;24024:12;24038:18;24058:12;24074:19;24085:7;24074:10;:19::i;:::-;23942:151;;;;;;;;;;;;;;24122:28;24142:7;24122;:15;24130:6;-1:-1:-1;;;;;24122:15:0;-1:-1:-1;;;;;24122:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;24104:15:0;;;;;;:7;:15;;;;;;;;:46;;;;24179:7;:15;;;;:28;;24199:7;24179:19;:28::i;28664:154::-;28728:7;28755:55;28794:5;28755:20;28767:7;;28755;:11;;:20;;;;:::i;:::-;:24;;:55::i;28988:166::-;29058:7;29085:61;29130:5;29085:26;29097:13;;29085:7;:11;;:26;;;;:::i;28826:154::-;28890:7;28917:55;28956:5;28917:20;28929:7;;28917;:11;;:20;;;;:::i;2369:98::-;2427:7;2454:5;2458:1;2454;:5;:::i;27946:355::-;28009:19;28032:10;:8;:10::i;:::-;28009:33;-1:-1:-1;28053:18:0;28074:27;:10;28009:33;28074:14;:27::i;:::-;28153:4;28137:22;;;;:7;:22;;;;;;28053:48;;-1:-1:-1;28137:38:0;;28053:48;28137:26;:38::i;:::-;28128:4;28112:22;;;;:7;:22;;;;;;;;:63;;;;28189:11;:26;;;;;;28186:107;;;28271:4;28255:22;;;;:7;:22;;;;;;:38;;28282:10;28255:26;:38::i;:::-;28246:4;28230:22;;;;:7;:22;;;;;:63;28186:107;27998:303;;27946:355;:::o;28313:339::-;28364:19;28387:10;:8;:10::i;:::-;28364:33;-1:-1:-1;28408:12:0;28423:21;:4;28364:33;28423:8;:21::i;:::-;28492:17;;-1:-1:-1;;;;;28492:17:0;28484:26;;;;:7;:26;;;;;;28408:36;;-1:-1:-1;28484:36:0;;28408;28484:30;:36::i;:::-;28463:17;;;-1:-1:-1;;;;;28463:17:0;;;28455:26;;;;:7;:26;;;;;;;;:65;;;;28546:17;;;;;28534:30;;:11;:30;;;;;;;28531:113;;;28616:17;;-1:-1:-1;;;;;28616:17:0;28608:26;;;;:7;:26;;;;;;:36;;28639:4;28608:30;:36::i;:::-;28587:17;;-1:-1:-1;;;;;28587:17:0;28579:26;;;;:7;:26;;;;;:65;28353:299;;28313:339;:::o;25664:147::-;25742:7;;:17;;25754:4;25742:11;:17::i;:::-;25732:7;:27;25783:10;;:20;;25798:4;25783:14;:20::i;:::-;25770:10;:33;-1:-1:-1;;25664:147:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1609:6;1617;1670:2;1658:9;1649:7;1645:23;1641:32;1638:52;;;1686:1;1683;1676:12;1638:52;1725:9;1712:23;1744:31;1769:5;1744:31;:::i;:::-;1794:5;1846:2;1831:18;;;;1818:32;;-1:-1:-1;;;1541:315:1:o;1861:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2009:26;2025:9;2009:26;:::i;2046:180::-;2105:6;2158:2;2146:9;2137:7;2133:23;2129:32;2126:52;;;2174:1;2171;2164:12;2126:52;-1:-1:-1;2197:23:1;;2046:180;-1:-1:-1;2046:180:1:o;2231:248::-;2296:6;2304;2357:2;2345:9;2336:7;2332:23;2328:32;2325:52;;;2373:1;2370;2363:12;2325:52;2409:9;2396:23;2386:33;;2438:35;2469:2;2458:9;2454:18;2438:35;:::i;:::-;2428:45;;2231:248;;;;;:::o;2484:306::-;2572:6;2580;2588;2641:2;2629:9;2620:7;2616:23;2612:32;2609:52;;;2657:1;2654;2647:12;2609:52;2686:9;2680:16;2670:26;;2736:2;2725:9;2721:18;2715:25;2705:35;;2780:2;2769:9;2765:18;2759:25;2749:35;;2484:306;;;;;:::o;4351:597::-;4463:4;4492:2;4521;4510:9;4503:21;4553:6;4547:13;4596:6;4591:2;4580:9;4576:18;4569:34;4621:1;4631:140;4645:6;4642:1;4639:13;4631:140;;;4740:14;;;4736:23;;4730:30;4706:17;;;4725:2;4702:26;4695:66;4660:10;;4631:140;;;4789:6;4786:1;4783:13;4780:91;;;4859:1;4854:2;4845:6;4834:9;4830:22;4826:31;4819:42;4780:91;-1:-1:-1;4932:2:1;4911:15;-1:-1:-1;;4907:29:1;4892:45;;;;4939:2;4888:54;;4351:597;-1:-1:-1;;;4351:597:1:o;8059:356::-;8261:2;8243:21;;;8280:18;;;8273:30;8339:34;8334:2;8319:18;;8312:62;8406:2;8391:18;;8059:356::o;10989:980::-;11251:4;11299:3;11288:9;11284:19;11330:6;11319:9;11312:25;11356:2;11394:6;11389:2;11378:9;11374:18;11367:34;11437:3;11432:2;11421:9;11417:18;11410:31;11461:6;11496;11490:13;11527:6;11519;11512:22;11565:3;11554:9;11550:19;11543:26;;11604:2;11596:6;11592:15;11578:29;;11625:1;11635:195;11649:6;11646:1;11643:13;11635:195;;;11714:13;;-1:-1:-1;;;;;11710:39:1;11698:52;;11805:15;;;;11770:12;;;;11746:1;11664:9;11635:195;;;-1:-1:-1;;;;;;;11886:32:1;;;;11881:2;11866:18;;11859:60;-1:-1:-1;;;11950:3:1;11935:19;11928:35;11847:3;10989:980;-1:-1:-1;;;10989:980:1:o;12298:128::-;12338:3;12369:1;12365:6;12362:1;12359:13;12356:39;;;12375:18;;:::i;:::-;-1:-1:-1;12411:9:1;;12298:128::o;12431:217::-;12471:1;12497;12487:132;;12541:10;12536:3;12532:20;12529:1;12522:31;12576:4;12573:1;12566:15;12604:4;12601:1;12594:15;12487:132;-1:-1:-1;12633:9:1;;12431:217::o;12653:422::-;12742:1;12785:5;12742:1;12799:270;12820:7;12810:8;12807:21;12799:270;;;12879:4;12875:1;12871:6;12867:17;12861:4;12858:27;12855:53;;;12888:18;;:::i;:::-;12938:7;12928:8;12924:22;12921:55;;;12958:16;;;;12921:55;13037:22;;;;12997:15;;;;12799:270;;;12803:3;12653:422;;;;;:::o;13080:131::-;13140:5;13169:36;13196:8;13190:4;13265:5;13295:8;13285:80;;-1:-1:-1;13336:1:1;13350:5;;13285:80;13384:4;13374:76;;-1:-1:-1;13421:1:1;13435:5;;13374:76;13466:4;13484:1;13479:59;;;;13552:1;13547:130;;;;13459:218;;13479:59;13509:1;13500:10;;13523:5;;;13547:130;13584:3;13574:8;13571:17;13568:43;;;13591:18;;:::i;:::-;-1:-1:-1;;13647:1:1;13633:16;;13662:5;;13459:218;;13761:2;13751:8;13748:16;13742:3;13736:4;13733:13;13729:36;13723:2;13713:8;13710:16;13705:2;13699:4;13696:12;13692:35;13689:77;13686:159;;;-1:-1:-1;13798:19:1;;;13830:5;;13686:159;13877:34;13902:8;13896:4;13877:34;:::i;:::-;13947:6;13943:1;13939:6;13935:19;13926:7;13923:32;13920:58;;;13958:18;;:::i;:::-;13996:20;;13216:806;-1:-1:-1;;;13216:806:1:o;14027:168::-;14067:7;14133:1;14129;14125:6;14121:14;14118:1;14115:21;14110:1;14103:9;14096:17;14092:45;14089:71;;;14140:18;;:::i;:::-;-1:-1:-1;14180:9:1;;14027:168::o;14200:125::-;14240:4;14268:1;14265;14262:8;14259:34;;;14273:18;;:::i;:::-;-1:-1:-1;14310:9:1;;14200:125::o;14330:380::-;14409:1;14405:12;;;;14452;;;14473:61;;14527:4;14519:6;14515:17;14505:27;;14473:61;14580:2;14572:6;14569:14;14549:18;14546:38;14543:161;;;14626:10;14621:3;14617:20;14614:1;14607:31;14661:4;14658:1;14651:15;14689:4;14686:1;14679:15;14543:161;;14330:380;;;:::o;14715:135::-;14754:3;-1:-1:-1;;14775:17:1;;14772:43;;;14795:18;;:::i;:::-;-1:-1:-1;14842:1:1;14831:13;;14715:135::o;14855:127::-;14916:10;14911:3;14907:20;14904:1;14897:31;14947:4;14944:1;14937:15;14971:4;14968:1;14961:15;14987:127;15048:10;15043:3;15039:20;15036:1;15029:31;15079:4;15076:1;15069:15;15103:4;15100:1;15093:15;15119:127;15180:10;15175:3;15171:20;15168:1;15161:31;15211:4;15208:1;15201:15;15235:4;15232:1;15225:15;15383:131;-1:-1:-1;;;;;15458:31:1;;15448:42;;15438:70;;15504:1;15501;15494:12;15438:70;15383:131;:::o
Swarm Source
ipfs://4ca132f5c6a6baa0ebeb35c90c9fd50c9db0aba8fcad2e7791ab7e302311d527
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.