Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
990,986,412,061,017.723391713 THC
Holders
64
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,724,969,338,021.346599559 THCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TwoHoursChill
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-09 */ /* TwoHoursChill - Social media: @TwoHoursChill - Telegram: @TwoHoursChillGroup - Web: TwoHoursChill.com Understanding the tokenomics -> 12% fees on all transfers (4% burn / 4% reflection / 4% liquidity) -> 4% burn actually destroys liquidity tokens which is why you'll see total supply decrease over time. -> Cooldown of 2 hours after any transfer. Buy / sell. -> Max transaction size of: 3,000,000,000,000 (3Trillion) This means that if someone with 30Trillion tokens wants to dump it will take atleast 10 transactions to do so. Since we have a cooldown of 2 hours after any transaction it's gonna take atleast 20 hours for the person to dump their 30 trillion. YES. There's been reemoved liquidity from this account. Those liquidity was from a failing contract. The community came together to launch this new one. */ pragma solidity ^0.6.12; // SPDX-License-Identifier: Unlicensed 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 add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } 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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { 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 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 TwoHoursChill 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 => uint) private cooldown; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1000000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = "TwoHoursChill.com"; string private _symbol = "THC"; uint8 private _decimals = 9; uint256 public _taxFee = 4; uint256 private _previousTaxFee = _taxFee; uint256 public _liquidityFee = 4; uint256 private _previousLiquidityFee = _liquidityFee; uint256 public _burnFee = 4; uint256 private _previousBurnFee = _burnFee; uint256 private _cooldownSeconds = 300; bool private cooldownEnabled = true; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxTxAmount = 3000000000000 * 10**9; uint256 private numTokensSellToAddToLiquidity = 3000000000000 * 10**9; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () public { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } 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 setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function setCooldownSeconds(uint256 cooldownSeconds) external onlyOwner() { require(cooldownSeconds > 0, "Secs must be greater than 0"); _cooldownSeconds = cooldownSeconds; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { Values memory values = _getValues(tAmount); return values.rAmount; } else { Values memory values = _getValues(tAmount); return values.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 _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { Values memory values = _getValues(tAmount); uint256 rAmount = values.rAmount; uint256 rTransferAmount = values.rTransferAmount; uint256 rFee = values.rFee; uint256 tTransferAmount = values.tTransferAmount; uint256 tFee = values.tFee; uint256 tLiquidity = values.tLiquidity; _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } 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 setBurnFeePercent(uint256 burnFee) external onlyOwner() { _burnFee = burnFee; } function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() { _liquidityFee = liquidityFee; } 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); } struct Values{ uint256 rAmount; uint256 rTransferAmount; uint256 rFee; uint256 rBurnFee; uint256 tTransferAmount; uint256 tFee; uint256 tLiquidity; uint256 tBurnFee; } struct rValuesParams { uint256 tAmount; uint256 tFee; uint256 tLiquidity; uint256 tBurnFee; uint256 currentRate; } function _getValues(uint256 tAmount) private view returns (Values memory) { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tBurnFee) = _getTValues(tAmount); rValuesParams memory r_values_params = rValuesParams(tAmount, tFee, tLiquidity, tBurnFee, _getRate()); ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 rBurnFee ) = _getRValues(r_values_params); Values memory values = Values(rAmount, rTransferAmount, rFee, rBurnFee, tTransferAmount, tFee, tLiquidity, tBurnFee); return (values); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) { uint256 tFee = calculateTaxFee(tAmount); uint256 tBurnFee = calculateBurnFee(tAmount); uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity).sub(tBurnFee); return (tTransferAmount, tFee, tLiquidity, tBurnFee); } function _getRValues(rValuesParams memory r_values_params) private pure returns (uint256, uint256, uint256, uint256) { uint256 tAmount = r_values_params.tAmount; uint256 tFee = r_values_params.tFee; uint256 tLiquidity = r_values_params.tLiquidity; uint256 tBurnFee = r_values_params.tBurnFee; uint256 currentRate = r_values_params.currentRate; uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rBurnFee = tBurnFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity).sub(rBurnFee); return (rAmount, rTransferAmount, rFee, rBurnFee); } 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 calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_taxFee).div( 10**2 ); } function calculateLiquidityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_liquidityFee).div( 10**2 ); } function calculateBurnFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_burnFee).div( 10**2 ); } function removeAllFee() private { if(_taxFee == 0 && _liquidityFee == 0 && _burnFee == 0) return; _previousTaxFee = _taxFee; _previousLiquidityFee = _liquidityFee; _previousBurnFee = _burnFee; _taxFee = 0; _liquidityFee = 0; _burnFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _liquidityFee = _previousLiquidityFee; _burnFee = _previousBurnFee; } 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, 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, 0, owner(), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private { if(!takeFee) removeAllFee(); if (sender == uniswapV2Pair && recipient != address(uniswapV2Router) && cooldownEnabled) { require(amount <= _maxTxAmount); require(cooldown[recipient] < block.timestamp); cooldown[recipient] = block.timestamp + (_cooldownSeconds * 1 seconds); } if (recipient == uniswapV2Pair && sender != address(uniswapV2Router) && cooldownEnabled) { require(amount <= _maxTxAmount); require(cooldown[sender] < block.timestamp); cooldown[sender] = block.timestamp + (_cooldownSeconds * 1 seconds); } 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 { Values memory values = _getValues(tAmount); uint256 rAmount = values.rAmount; uint256 rTransferAmount = values.rTransferAmount; uint256 rFee = values.rFee; uint256 tTransferAmount = values.tTransferAmount; uint256 tFee = values.tFee; uint256 tLiquidity = values.tLiquidity; uint256 tBurnFee = values.tBurnFee; uint256 rBurnFee = values.rBurnFee; _tTotal = _tTotal.sub(tBurnFee); _rTotal = _rTotal.sub(rBurnFee); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { Values memory values = _getValues(tAmount); uint256 rAmount = values.rAmount; uint256 rTransferAmount = values.rTransferAmount; uint256 rFee = values.rFee; uint256 tTransferAmount = values.tTransferAmount; uint256 tFee = values.tFee; uint256 tLiquidity = values.tLiquidity; _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { Values memory values = _getValues(tAmount); uint256 rAmount = values.rAmount; uint256 rTransferAmount = values.rTransferAmount; uint256 rFee = values.rFee; uint256 tTransferAmount = values.tTransferAmount; uint256 tFee = values.tFee; uint256 tLiquidity = values.tLiquidity; _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"burnFee","type":"uint256"}],"name":"setBurnFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cooldownSeconds","type":"uint256"}],"name":"setCooldownSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405269d3c21bcecceda1000000600955600954600019816200002057fe5b0660001903600a556040518060400160405280601181526020017f54776f486f7572734368696c6c2e636f6d000000000000000000000000000000815250600c90805190602001906200007592919062000629565b506040518060400160405280600381526020017f5448430000000000000000000000000000000000000000000000000000000000815250600d9080519060200190620000c392919062000629565b506009600e60006101000a81548160ff021916908360ff1602179055506004600f55600f546010556004601155601154601255600460135560135460145561012c6015556001601660006101000a81548160ff0219169083151502179055506001601660026101000a81548160ff02191690831515021790555068a2a15d09519be0000060175568a2a15d09519be000006018553480156200016457600080fd5b50600062000177620005f860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600a54600260006200022c620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ca57600080fd5b505afa158015620002df573d6000803e3d6000fd5b505050506040513d6020811015620002f657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036a57600080fd5b505afa1580156200037f573d6000803e3d6000fd5b505050506040513d60208110156200039657600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200041157600080fd5b505af115801562000426573d6000803e3d6000fd5b505050506040513d60208110156200043d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600160066000620004d16200060060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200058a620005f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040518082815260200191505060405180910390a350620006cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200066c57805160ff19168380011785556200069d565b828001600101855582156200069d579182015b828111156200069c5782518255916020019190600101906200067f565b5b509050620006ac9190620006b0565b5090565b5b80821115620006cb576000816000905550600101620006b1565b5090565b60805160601c60a05160601c6142636200072b60003980610fd45280611ee85280612313528061247d525080610c48528061236952806124d35280612e855280612f715280612f9852806130a352806130ca52506142636000f3fe6080604052600436106101d15760003560e01c80635932ead1116100f75780638ee88c5311610095578063c49b9a8011610064578063c49b9a801461095c578063cea2695814610999578063dd62ed3e146109d4578063ea2f0b3714610a59576101d8565b80638ee88c53146107f557806395d89b4114610830578063a9059cbb146108c0578063c0b0fda214610931576101d8565b8063715018a6116100d1578063715018a6146107375780637b5b11571461074e5780637d1db4a5146107895780638da5cb5b146107b4576101d8565b80635932ead11461066a5780636bc87c3a146106a757806370a08231146106d2576101d8565b80632d8381191161016f5780634549b0391161013e5780634549b0391461053a57806349bd5a5e146105955780634a74bb02146105d65780635342acb414610603576101d8565b80632d83811914610441578063313ce567146104905780633b124fe7146104be578063437823ec146104e9576101d8565b806313114a9d116101ab57806313114a9d146103195780631694505e1461034457806318160ddd1461038557806323b872dd146103b0576101d8565b8063061c82d0146101dd57806306fdde0314610218578063095ea7b3146102a8576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506102166004803603602081101561020057600080fd5b8101908080359060200190929190505050610aaa565b005b34801561022457600080fd5b5061022d610b7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026d578082015181840152602081019050610252565b50505050905090810190601f16801561029a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b457600080fd5b50610301600480360360408110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c1e565b60405180821515815260200191505060405180910390f35b34801561032557600080fd5b5061032e610c3c565b6040518082815260200191505060405180910390f35b34801561035057600080fd5b50610359610c46565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039157600080fd5b5061039a610c6a565b6040518082815260200191505060405180910390f35b3480156103bc57600080fd5b50610429600480360360608110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c74565b60405180821515815260200191505060405180910390f35b34801561044d57600080fd5b5061047a6004803603602081101561046457600080fd5b8101908080359060200190929190505050610d4d565b6040518082815260200191505060405180910390f35b34801561049c57600080fd5b506104a5610dd1565b604051808260ff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d3610de8565b6040518082815260200191505060405180910390f35b3480156104f557600080fd5b506105386004803603602081101561050c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dee565b005b34801561054657600080fd5b5061057f6004803603604081101561055d57600080fd5b8101908080359060200190929190803515159060200190929190505050610f11565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105aa610fd2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e257600080fd5b506105eb610ff6565b60405180821515815260200191505060405180910390f35b34801561060f57600080fd5b506106526004803603602081101561062657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611009565b60405180821515815260200191505060405180910390f35b34801561067657600080fd5b506106a56004803603602081101561068d57600080fd5b8101908080351515906020019092919050505061105f565b005b3480156106b357600080fd5b506106bc611144565b6040518082815260200191505060405180910390f35b3480156106de57600080fd5b50610721600480360360208110156106f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061114a565b6040518082815260200191505060405180910390f35b34801561074357600080fd5b5061074c611235565b005b34801561075a57600080fd5b506107876004803603602081101561077157600080fd5b81019080803590602001909291905050506113bb565b005b34801561079557600080fd5b5061079e611503565b6040518082815260200191505060405180910390f35b3480156107c057600080fd5b506107c9611509565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080157600080fd5b5061082e6004803603602081101561081857600080fd5b8101908080359060200190929190505050611532565b005b34801561083c57600080fd5b50610845611604565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088557808201518184015260208101905061086a565b50505050905090810190601f1680156108b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108cc57600080fd5b50610919600480360360408110156108e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a6565b60405180821515815260200191505060405180910390f35b34801561093d57600080fd5b506109466116c4565b6040518082815260200191505060405180910390f35b34801561096857600080fd5b506109976004803603602081101561097f57600080fd5b810190808035151590602001909291905050506116ca565b005b3480156109a557600080fd5b506109d2600480360360208110156109bc57600080fd5b81019080803590602001909291905050506117e8565b005b3480156109e057600080fd5b50610a43600480360360408110156109f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ba565b6040518082815260200191505060405180910390f35b348015610a6557600080fd5b50610aa860048036036020811015610a7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611941565b005b610ab2611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f8190555050565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c145780601f10610be957610100808354040283529160200191610c14565b820191906000526020600020905b815481529060010190602001808311610bf757829003601f168201915b5050505050905090565b6000610c32610c2b611a64565b8484611a6c565b6001905092915050565b6000600b54905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600954905090565b6000610c81848484611c63565b610d4284610c8d611a64565b610d3d8560405180606001604052806028815260200161419460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cf3611a64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120289092919063ffffffff16565b611a6c565b600190509392505050565b6000600a54821115610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806140ff602a913960400191505060405180910390fd5b6000610db46120e8565b9050610dc9818461211390919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b600f5481565b610df6611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600954831115610f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610fb057610f98614067565b610fa18461215d565b90508060000151915050610fcc565b610fb8614067565b610fc18461215d565b905080602001519150505b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601660029054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611067611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601660006101000a81548160ff02191690831515021790555050565b60115481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111e557600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611230565b61122d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4d565b90505b919050565b61123d611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113c3611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600081116114f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f53656373206d7573742062652067726561746572207468616e2030000000000081525060200191505060405180910390fd5b8060158190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61153a611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060118190555050565b6060600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561169c5780601f106116715761010080835404028352916020019161169c565b820191906000526020600020905b81548152906001019060200180831161167f57829003601f168201915b5050505050905090565b60006116ba6116b3611a64565b8484611c63565b6001905092915050565b60135481565b6116d2611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601660026101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b6117f0611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060138190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611949611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061420a6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141296022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806141e56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806140dc6023913960400191505060405180910390fd5b60008111611dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806141bc6029913960400191505060405180910390fd5b611dd0611509565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e3e5750611e0e611509565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e9f57601754811115611e9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061414b6028913960400191505060405180910390fd5b5b6000611eaa3061114a565b90506017548110611ebb5760175490505b60006018548210159050808015611edf5750601660019054906101000a900460ff16155b8015611f3757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4f5750601660029054906101000a900460ff165b15611f63576018549150611f6282612221565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061200a5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561201457600090505b61202086868684612303565b505050505050565b60008383111582906120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561209a57808201518184015260208101905061207f565b50505050905090810190601f1680156120c75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006120f56128e8565b9150915061210c818361211390919063ffffffff16565b9250505090565b600061215583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b79565b905092915050565b612165614067565b60008060008061217486612c3f565b93509350935093506121846140ac565b6040518060a001604052808881526020018581526020018481526020018381526020016121af6120e8565b81525090506000806000806121c385612cbe565b93509350935093506121d3614067565b6040518061010001604052808681526020018581526020018481526020018381526020018b81526020018a8152602001898152602001888152509050809a5050505050505050505050919050565b6001601660016101000a81548160ff021916908315150217905550600061225260028361211390919063ffffffff16565b905060006122698284612da590919063ffffffff16565b9050600047905061227983612def565b600061228e8247612da590919063ffffffff16565b905061229a838261309d565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000601660016101000a81548160ff02191690831515021790555050565b80612311576123106131ee565b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123b857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123d05750601660009054906101000a900460ff165b1561247b576017548211156123e457600080fd5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061242f57600080fd5b6001601554024201600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561252257507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561253a5750601660009054906101000a900460ff165b156125e55760175482111561254e57600080fd5b42600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061259957600080fd5b6001601554024201600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126885750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269d57612698848484613250565b6128d4565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127405750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612755576127508484846134dc565b6128d3565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127f95750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561280e57612809848484613768565b6128d2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128b05750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c5576128c08484846139a9565b6128d1565b6128d0848484613768565b5b5b5b5b806128e2576128e1613cca565b5b50505050565b6000806000600a5490506000600954905060005b600880549050811015612b3c5782600260006008848154811061291b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612a02575081600360006008848154811061299a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612a1957600a5460095494509450505050612b75565b612aa26002600060088481548110612a2d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612da590919063ffffffff16565b9250612b2d6003600060088481548110612ab857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612da590919063ffffffff16565b915080806001019150506128fc565b50612b54600954600a5461211390919063ffffffff16565b821015612b6c57600a54600954935093505050612b75565b81819350935050505b9091565b60008083118290612c25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612bea578082015181840152602081019050612bcf565b50505050905090810190601f168015612c175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612c3157fe5b049050809150509392505050565b6000806000806000612c5086613ce7565b90506000612c5d87613d18565b90506000612c6a88613d49565b90506000612ca583612c9784612c89888e612da590919063ffffffff16565b612da590919063ffffffff16565b612da590919063ffffffff16565b9050808483859750975097509750505050509193509193565b6000806000806000856000015190506000866020015190506000876040015190506000886060015190506000896080015190506000612d068287613d7a90919063ffffffff16565b90506000612d1d8387613d7a90919063ffffffff16565b90506000612d348486613d7a90919063ffffffff16565b90506000612d4b8588613d7a90919063ffffffff16565b90506000612d8683612d7884612d6a888a612da590919063ffffffff16565b612da590919063ffffffff16565b612da590919063ffffffff16565b9050848185859d509d509d509d50505050505050505050509193509193565b6000612de783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612028565b905092915050565b6060600267ffffffffffffffff81118015612e0957600080fd5b50604051908082528060200260200182016040528015612e385781602001602082028036833780820191505090505b5090503081600081518110612e4957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ee957600080fd5b505afa158015612efd573d6000803e3d6000fd5b505050506040513d6020811015612f1357600080fd5b810190808051906020019092919050505081600181518110612f3157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f96307f000000000000000000000000000000000000000000000000000000000000000084611a6c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561305857808201518184015260208101905061303d565b505050509050019650505050505050600060405180830381600087803b15801561308157600080fd5b505af1158015613095573d6000803e3d6000fd5b505050505050565b6130c8307f000000000000000000000000000000000000000000000000000000000000000084611a6c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613112611509565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561319757600080fd5b505af11580156131ab573d6000803e3d6000fd5b50505050506040513d60608110156131c257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6000600f5414801561320257506000601154145b801561321057506000601354145b1561321a5761324e565b600f546010819055506011546012819055506013546014819055506000600f81905550600060118190555060006013819055505b565b613258614067565b6132618261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c0015190506132eb88600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338086600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341585600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061346181613e88565b61346b848361402d565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050505050505050565b6134e4614067565b6134ed8261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c00151905061357786600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360c83600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136a185600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136ed81613e88565b6136f7848361402d565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050505050505050565b613770614067565b6137798261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c00151905060008760e0015190506000886060015190506137d882600954612da590919063ffffffff16565b6009819055506137f381600a54612da590919063ffffffff16565b600a8190555061384b88600260008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138e087600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061392c83613e88565b613936868561402d565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050505050505050565b6139b1614067565b6139ba8261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c001519050613a4488600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ad986600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b6e83600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c0385600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c4f81613e88565b613c59848361402d565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050505050505050565b601054600f81905550601254601181905550601454601381905550565b6000613d116064613d03600f5485613d7a90919063ffffffff16565b61211390919063ffffffff16565b9050919050565b6000613d426064613d3460135485613d7a90919063ffffffff16565b61211390919063ffffffff16565b9050919050565b6000613d736064613d6560115485613d7a90919063ffffffff16565b61211390919063ffffffff16565b9050919050565b600080831415613d8d5760009050613dfa565b6000828402905082848281613d9e57fe5b0414613df5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806141736021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015613e7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000613e926120e8565b90506000613ea98284613d7a90919063ffffffff16565b9050613efd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561402857613fe483600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b61404282600a54612da590919063ffffffff16565b600a8190555061405d81600b54613e0090919063ffffffff16565b600b819055505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212201f5f78ba33fd515b108effb1ff6fdd7a834a8913b7a3981e94677680d5044d6c64736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80635932ead1116100f75780638ee88c5311610095578063c49b9a8011610064578063c49b9a801461095c578063cea2695814610999578063dd62ed3e146109d4578063ea2f0b3714610a59576101d8565b80638ee88c53146107f557806395d89b4114610830578063a9059cbb146108c0578063c0b0fda214610931576101d8565b8063715018a6116100d1578063715018a6146107375780637b5b11571461074e5780637d1db4a5146107895780638da5cb5b146107b4576101d8565b80635932ead11461066a5780636bc87c3a146106a757806370a08231146106d2576101d8565b80632d8381191161016f5780634549b0391161013e5780634549b0391461053a57806349bd5a5e146105955780634a74bb02146105d65780635342acb414610603576101d8565b80632d83811914610441578063313ce567146104905780633b124fe7146104be578063437823ec146104e9576101d8565b806313114a9d116101ab57806313114a9d146103195780631694505e1461034457806318160ddd1461038557806323b872dd146103b0576101d8565b8063061c82d0146101dd57806306fdde0314610218578063095ea7b3146102a8576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506102166004803603602081101561020057600080fd5b8101908080359060200190929190505050610aaa565b005b34801561022457600080fd5b5061022d610b7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026d578082015181840152602081019050610252565b50505050905090810190601f16801561029a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b457600080fd5b50610301600480360360408110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c1e565b60405180821515815260200191505060405180910390f35b34801561032557600080fd5b5061032e610c3c565b6040518082815260200191505060405180910390f35b34801561035057600080fd5b50610359610c46565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039157600080fd5b5061039a610c6a565b6040518082815260200191505060405180910390f35b3480156103bc57600080fd5b50610429600480360360608110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c74565b60405180821515815260200191505060405180910390f35b34801561044d57600080fd5b5061047a6004803603602081101561046457600080fd5b8101908080359060200190929190505050610d4d565b6040518082815260200191505060405180910390f35b34801561049c57600080fd5b506104a5610dd1565b604051808260ff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d3610de8565b6040518082815260200191505060405180910390f35b3480156104f557600080fd5b506105386004803603602081101561050c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dee565b005b34801561054657600080fd5b5061057f6004803603604081101561055d57600080fd5b8101908080359060200190929190803515159060200190929190505050610f11565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105aa610fd2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e257600080fd5b506105eb610ff6565b60405180821515815260200191505060405180910390f35b34801561060f57600080fd5b506106526004803603602081101561062657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611009565b60405180821515815260200191505060405180910390f35b34801561067657600080fd5b506106a56004803603602081101561068d57600080fd5b8101908080351515906020019092919050505061105f565b005b3480156106b357600080fd5b506106bc611144565b6040518082815260200191505060405180910390f35b3480156106de57600080fd5b50610721600480360360208110156106f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061114a565b6040518082815260200191505060405180910390f35b34801561074357600080fd5b5061074c611235565b005b34801561075a57600080fd5b506107876004803603602081101561077157600080fd5b81019080803590602001909291905050506113bb565b005b34801561079557600080fd5b5061079e611503565b6040518082815260200191505060405180910390f35b3480156107c057600080fd5b506107c9611509565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080157600080fd5b5061082e6004803603602081101561081857600080fd5b8101908080359060200190929190505050611532565b005b34801561083c57600080fd5b50610845611604565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088557808201518184015260208101905061086a565b50505050905090810190601f1680156108b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108cc57600080fd5b50610919600480360360408110156108e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a6565b60405180821515815260200191505060405180910390f35b34801561093d57600080fd5b506109466116c4565b6040518082815260200191505060405180910390f35b34801561096857600080fd5b506109976004803603602081101561097f57600080fd5b810190808035151590602001909291905050506116ca565b005b3480156109a557600080fd5b506109d2600480360360208110156109bc57600080fd5b81019080803590602001909291905050506117e8565b005b3480156109e057600080fd5b50610a43600480360360408110156109f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ba565b6040518082815260200191505060405180910390f35b348015610a6557600080fd5b50610aa860048036036020811015610a7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611941565b005b610ab2611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f8190555050565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c145780601f10610be957610100808354040283529160200191610c14565b820191906000526020600020905b815481529060010190602001808311610bf757829003601f168201915b5050505050905090565b6000610c32610c2b611a64565b8484611a6c565b6001905092915050565b6000600b54905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600954905090565b6000610c81848484611c63565b610d4284610c8d611a64565b610d3d8560405180606001604052806028815260200161419460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cf3611a64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120289092919063ffffffff16565b611a6c565b600190509392505050565b6000600a54821115610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806140ff602a913960400191505060405180910390fd5b6000610db46120e8565b9050610dc9818461211390919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b600f5481565b610df6611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600954831115610f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610fb057610f98614067565b610fa18461215d565b90508060000151915050610fcc565b610fb8614067565b610fc18461215d565b905080602001519150505b92915050565b7f00000000000000000000000066801f2fc2d76b821b71096c09e4b250ca3a3af381565b601660029054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611067611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601660006101000a81548160ff02191690831515021790555050565b60115481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111e557600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611230565b61122d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4d565b90505b919050565b61123d611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113c3611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600081116114f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f53656373206d7573742062652067726561746572207468616e2030000000000081525060200191505060405180910390fd5b8060158190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61153a611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060118190555050565b6060600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561169c5780601f106116715761010080835404028352916020019161169c565b820191906000526020600020905b81548152906001019060200180831161167f57829003601f168201915b5050505050905090565b60006116ba6116b3611a64565b8484611c63565b6001905092915050565b60135481565b6116d2611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601660026101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405180821515815260200191505060405180910390a150565b6117f0611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060138190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611949611a64565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061420a6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806141296022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806141e56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806140dc6023913960400191505060405180910390fd5b60008111611dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806141bc6029913960400191505060405180910390fd5b611dd0611509565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e3e5750611e0e611509565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e9f57601754811115611e9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061414b6028913960400191505060405180910390fd5b5b6000611eaa3061114a565b90506017548110611ebb5760175490505b60006018548210159050808015611edf5750601660019054906101000a900460ff16155b8015611f3757507f00000000000000000000000066801f2fc2d76b821b71096c09e4b250ca3a3af373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4f5750601660029054906101000a900460ff165b15611f63576018549150611f6282612221565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061200a5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561201457600090505b61202086868684612303565b505050505050565b60008383111582906120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561209a57808201518184015260208101905061207f565b50505050905090810190601f1680156120c75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006120f56128e8565b9150915061210c818361211390919063ffffffff16565b9250505090565b600061215583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b79565b905092915050565b612165614067565b60008060008061217486612c3f565b93509350935093506121846140ac565b6040518060a001604052808881526020018581526020018481526020018381526020016121af6120e8565b81525090506000806000806121c385612cbe565b93509350935093506121d3614067565b6040518061010001604052808681526020018581526020018481526020018381526020018b81526020018a8152602001898152602001888152509050809a5050505050505050505050919050565b6001601660016101000a81548160ff021916908315150217905550600061225260028361211390919063ffffffff16565b905060006122698284612da590919063ffffffff16565b9050600047905061227983612def565b600061228e8247612da590919063ffffffff16565b905061229a838261309d565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405180848152602001838152602001828152602001935050505060405180910390a1505050506000601660016101000a81548160ff02191690831515021790555050565b80612311576123106131ee565b5b7f00000000000000000000000066801f2fc2d76b821b71096c09e4b250ca3a3af373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123b857507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123d05750601660009054906101000a900460ff165b1561247b576017548211156123e457600080fd5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061242f57600080fd5b6001601554024201600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b7f00000000000000000000000066801f2fc2d76b821b71096c09e4b250ca3a3af373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561252257507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561253a5750601660009054906101000a900460ff165b156125e55760175482111561254e57600080fd5b42600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061259957600080fd5b6001601554024201600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126885750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561269d57612698848484613250565b6128d4565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127405750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612755576127508484846134dc565b6128d3565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127f95750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561280e57612809848484613768565b6128d2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128b05750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c5576128c08484846139a9565b6128d1565b6128d0848484613768565b5b5b5b5b806128e2576128e1613cca565b5b50505050565b6000806000600a5490506000600954905060005b600880549050811015612b3c5782600260006008848154811061291b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612a02575081600360006008848154811061299a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612a1957600a5460095494509450505050612b75565b612aa26002600060088481548110612a2d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612da590919063ffffffff16565b9250612b2d6003600060088481548110612ab857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612da590919063ffffffff16565b915080806001019150506128fc565b50612b54600954600a5461211390919063ffffffff16565b821015612b6c57600a54600954935093505050612b75565b81819350935050505b9091565b60008083118290612c25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612bea578082015181840152602081019050612bcf565b50505050905090810190601f168015612c175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612c3157fe5b049050809150509392505050565b6000806000806000612c5086613ce7565b90506000612c5d87613d18565b90506000612c6a88613d49565b90506000612ca583612c9784612c89888e612da590919063ffffffff16565b612da590919063ffffffff16565b612da590919063ffffffff16565b9050808483859750975097509750505050509193509193565b6000806000806000856000015190506000866020015190506000876040015190506000886060015190506000896080015190506000612d068287613d7a90919063ffffffff16565b90506000612d1d8387613d7a90919063ffffffff16565b90506000612d348486613d7a90919063ffffffff16565b90506000612d4b8588613d7a90919063ffffffff16565b90506000612d8683612d7884612d6a888a612da590919063ffffffff16565b612da590919063ffffffff16565b612da590919063ffffffff16565b9050848185859d509d509d509d50505050505050505050509193509193565b6000612de783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612028565b905092915050565b6060600267ffffffffffffffff81118015612e0957600080fd5b50604051908082528060200260200182016040528015612e385781602001602082028036833780820191505090505b5090503081600081518110612e4957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ee957600080fd5b505afa158015612efd573d6000803e3d6000fd5b505050506040513d6020811015612f1357600080fd5b810190808051906020019092919050505081600181518110612f3157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f96307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a6c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561305857808201518184015260208101905061303d565b505050509050019650505050505050600060405180830381600087803b15801561308157600080fd5b505af1158015613095573d6000803e3d6000fd5b505050505050565b6130c8307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a6c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613112611509565b426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561319757600080fd5b505af11580156131ab573d6000803e3d6000fd5b50505050506040513d60608110156131c257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6000600f5414801561320257506000601154145b801561321057506000601354145b1561321a5761324e565b600f546010819055506011546012819055506013546014819055506000600f81905550600060118190555060006013819055505b565b613258614067565b6132618261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c0015190506132eb88600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338086600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061341585600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061346181613e88565b61346b848361402d565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050505050505050565b6134e4614067565b6134ed8261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c00151905061357786600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061360c83600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136a185600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136ed81613e88565b6136f7848361402d565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050505050505050565b613770614067565b6137798261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c00151905060008760e0015190506000886060015190506137d882600954612da590919063ffffffff16565b6009819055506137f381600a54612da590919063ffffffff16565b600a8190555061384b88600260008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138e087600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061392c83613e88565b613936868561402d565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050505050505050565b6139b1614067565b6139ba8261215d565b905060008160000151905060008260200151905060008360400151905060008460800151905060008560a00151905060008660c001519050613a4488600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ad986600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da590919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b6e83600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c0385600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613c4f81613e88565b613c59848361402d565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050505050505050565b601054600f81905550601254601181905550601454601381905550565b6000613d116064613d03600f5485613d7a90919063ffffffff16565b61211390919063ffffffff16565b9050919050565b6000613d426064613d3460135485613d7a90919063ffffffff16565b61211390919063ffffffff16565b9050919050565b6000613d736064613d6560115485613d7a90919063ffffffff16565b61211390919063ffffffff16565b9050919050565b600080831415613d8d5760009050613dfa565b6000828402905082848281613d9e57fe5b0414613df5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806141736021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015613e7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000613e926120e8565b90506000613ea98284613d7a90919063ffffffff16565b9050613efd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561402857613fe483600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b61404282600a54612da590919063ffffffff16565b600a8190555061405d81600b54613e0090919063ffffffff16565b600b819055505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212201f5f78ba33fd515b108effb1ff6fdd7a834a8913b7a3981e94677680d5044d6c64736f6c634300060c0033
Deployed Bytecode Sourcemap
14246:18017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20245:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16643:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17555:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18371:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15425:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16920:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17724:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18912:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16829:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15066:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20008:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18466:438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15483:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15558:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25358:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18051:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15147:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17023:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6241:148;;;;;;;;;;;;;:::i;:::-;;18166:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15607:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6031:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20461:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16734:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17229:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15246:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20591:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20351:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17404:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20127:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20245:98;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20329:6:::1;20319:7;:16;;;;20245:98:::0;:::o;16643:83::-;16680:13;16713:5;16706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16643:83;:::o;17555:161::-;17630:4;17647:39;17656:12;:10;:12::i;:::-;17670:7;17679:6;17647:8;:39::i;:::-;17704:4;17697:11;;17555:161;;;;:::o;18371:87::-;18413:7;18440:10;;18433:17;;18371:87;:::o;15425:51::-;;;:::o;16920:95::-;16973:7;17000;;16993:14;;16920:95;:::o;17724:313::-;17822:4;17839:36;17849:6;17857:9;17868:6;17839:9;:36::i;:::-;17886:121;17895:6;17903:12;:10;:12::i;:::-;17917:89;17955:6;17917:89;;;;;;;;;;;;;;;;;:11;:19;17929:6;17917:19;;;;;;;;;;;;;;;:33;17937:12;:10;:12::i;:::-;17917:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17886:8;:121::i;:::-;18025:4;18018:11;;17724:313;;;;;:::o;18912:253::-;18978:7;19017;;19006;:18;;18998:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19082:19;19105:10;:8;:10::i;:::-;19082:33;;19133:24;19145:11;19133:7;:11;;:24;;;;:::i;:::-;19126:31;;;18912:253;;;:::o;16829:83::-;16870:5;16895:9;;;;;;;;;;;16888:16;;16829:83;:::o;15066:26::-;;;;:::o;20008:111::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20107:4:::1;20077:18;:27;20096:7;20077:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20008:111:::0;:::o;18466:438::-;18556:7;18595;;18584;:18;;18576:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18654:17;18649:248;;18688:20;;:::i;:::-;18711:19;18722:7;18711:10;:19::i;:::-;18688:42;;18752:6;:14;;;18745:21;;;;;18649:248;18799:20;;:::i;:::-;18822:19;18833:7;18822:10;:19::i;:::-;18799:42;;18863:6;:22;;;18856:29;;;18466:438;;;;;:::o;15483:38::-;;;:::o;15558:40::-;;;;;;;;;;;;;:::o;25358:123::-;25422:4;25446:18;:27;25465:7;25446:27;;;;;;;;;;;;;;;;;;;;;;;;;25439:34;;25358:123;;;:::o;18051:103::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18141:5:::1;18123:15;;:23;;;;;;;;;;;;;;;;;;18051:103:::0;:::o;15147:32::-;;;;:::o;17023:198::-;17089:7;17113:11;:20;17125:7;17113:20;;;;;;;;;;;;;;;;;;;;;;;;;17109:49;;;17142:7;:16;17150:7;17142:16;;;;;;;;;;;;;;;;17135:23;;;;17109:49;17176:37;17196:7;:16;17204:7;17196:16;;;;;;;;;;;;;;;;17176:19;:37::i;:::-;17169:44;;17023:198;;;;:::o;6241:148::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6348:1:::1;6311:40;;6332:6;::::0;::::1;;;;;;;;6311:40;;;;;;;;;;;;6379:1;6362:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6241:148::o:0;18166:197::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18277:1:::1;18259:15;:19;18251:59;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18340:15;18321:16;:34;;;;18166:197:::0;:::o;15607:51::-;;;;:::o;6031:79::-;6069:7;6096:6;;;;;;;;;;;6089:13;;6031:79;:::o;20461:122::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20563:12:::1;20547:13;:28;;;;20461:122:::0;:::o;16734:87::-;16773:13;16806:7;16799:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16734:87;:::o;17229:167::-;17307:4;17324:42;17334:12;:10;:12::i;:::-;17348:9;17359:6;17324:9;:42::i;:::-;17384:4;17377:11;;17229:167;;;;:::o;15246:27::-;;;;:::o;20591:171::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20692:8:::1;20668:21;;:32;;;;;;;;;;;;;;;;;;20716:38;20745:8;20716:38;;;;;;;;;;;;;;;;;;;;20591:171:::0;:::o;20351:102::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20438:7:::1;20427:8;:18;;;;20351:102:::0;:::o;17404:143::-;17485:7;17512:11;:18;17524:5;17512:18;;;;;;;;;;;;;;;:27;17531:7;17512:27;;;;;;;;;;;;;;;;17505:34;;17404:143;;;;:::o;20127:110::-;6166:12;:10;:12::i;:::-;6156:22;;:6;;;;;;;;;;:22;;;6148:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20224:5:::1;20194:18;:27;20213:7;20194:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20127:110:::0;:::o;3133:106::-;3186:15;3221:10;3214:17;;3133:106;:::o;25489:337::-;25599:1;25582:19;;:5;:19;;;;25574:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25680:1;25661:21;;:7;:21;;;;25653:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25764:6;25734:11;:18;25746:5;25734:18;;;;;;;;;;;;;;;:27;25753:7;25734:27;;;;;;;;;;;;;;;:36;;;;25802:7;25786:32;;25795:5;25786:32;;;25811:6;25786:32;;;;;;;;;;;;;;;;;;25489:337;;;:::o;25834:1243::-;25972:1;25956:18;;:4;:18;;;;25948:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26049:1;26035:16;;:2;:16;;;;26027:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26119:1;26110:6;:10;26102:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26188:7;:5;:7::i;:::-;26180:15;;:4;:15;;;;:32;;;;;26205:7;:5;:7::i;:::-;26199:13;;:2;:13;;;;26180:32;26177:125;;;26245:12;;26235:6;:22;;26227:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26177:125;26313:28;26344:24;26362:4;26344:9;:24::i;:::-;26313:55;;26408:12;;26384:20;:36;26381:112;;26469:12;;26446:35;;26381:112;26505:24;26556:29;;26532:20;:53;;26505:80;;26614:19;:53;;;;;26651:16;;;;;;;;;;;26650:17;26614:53;:91;;;;;26692:13;26684:21;;:4;:21;;;;26614:91;:129;;;;;26722:21;;;;;;;;;;;26614:129;26596:289;;;26793:29;;26770:52;;26837:36;26852:20;26837:14;:36::i;:::-;26596:289;26895:12;26910:4;26895:19;;26928:18;:24;26947:4;26928:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;26956:18;:22;26975:2;26956:22;;;;;;;;;;;;;;;;;;;;;;;;;26928:50;26925:96;;;27004:5;26994:15;;26925:96;27031:38;27046:4;27051:2;27054:6;27061:7;27031:14;:38::i;:::-;25834:1243;;;;;;:::o;2008:192::-;2094:7;2127:1;2122;:6;;2130:12;2114:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:9;2170:1;2166;:5;2154:17;;2191:1;2184:8;;;2008:192;;;;;:::o;23268:163::-;23309:7;23330:15;23347;23366:19;:17;:19::i;:::-;23329:56;;;;23403:20;23415:7;23403;:11;;:20;;;;:::i;:::-;23396:27;;;;23268:163;:::o;2458:132::-;2516:7;2543:39;2547:1;2550;2543:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2536:46;;2458:132;;;;:::o;21442:629::-;21501:13;;:::i;:::-;21528:23;21553:12;21567:18;21587:16;21607:20;21619:7;21607:11;:20::i;:::-;21527:100;;;;;;;;21640:36;;:::i;:::-;21679:62;;;;;;;;21693:7;21679:62;;;;21702:4;21679:62;;;;21708:10;21679:62;;;;21720:8;21679:62;;;;21730:10;:8;:10::i;:::-;21679:62;;;21640:101;;21765:15;21791:23;21825:12;21848:16;21878:28;21890:15;21878:11;:28::i;:::-;21754:152;;;;;;;;21919:20;;:::i;:::-;21942:93;;;;;;;;21949:7;21942:93;;;;21958:15;21942:93;;;;21975:4;21942:93;;;;21981:8;21942:93;;;;21991:15;21942:93;;;;22008:4;21942:93;;;;22014:10;21942:93;;;;22026:8;21942:93;;;21919:116;;22056:6;22048:15;;;;;;;;;;;;21442:629;;;:::o;27085:464::-;16052:4;16033:16;;:23;;;;;;;;;;;;;;;;;;27170:12:::1;27185:27;27210:1;27185:20;:24;;:27;;;;:::i;:::-;27170:42;;27223:17;27243:30;27268:4;27243:20;:24;;:30;;;;:::i;:::-;27223:50;;27284:22;27309:21;27284:46;;27341:22;27358:4;27341:16;:22::i;:::-;27374:18;27395:41;27421:14;27395:21;:25;;:41;;;;:::i;:::-;27374:62;;27447:35;27460:9;27471:10;27447:12;:35::i;:::-;27498:43;27513:4;27519:10;27531:9;27498:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16067:1;;;;16098:5:::0;16079:16;;:24;;;;;;;;;;;;;;;;;;27085:464;:::o;28405:1436::-;28516:7;28512:40;;28538:14;:12;:14::i;:::-;28512:40;28587:13;28577:23;;:6;:23;;;:64;;;;;28625:15;28604:37;;:9;:37;;;;28577:64;:83;;;;;28645:15;;;;;;;;;;;28577:83;28573:293;;;28695:12;;28685:6;:22;;28677:31;;;;;;28753:15;28731:8;:19;28740:9;28731:19;;;;;;;;;;;;;;;;:37;28723:46;;;;;;28844:9;28825:16;;:28;28806:15;:48;28784:8;:19;28793:9;28784:19;;;;;;;;;;;;;;;:70;;;;28573:293;28893:13;28880:26;;:9;:26;;;:64;;;;;28928:15;28910:34;;:6;:34;;;;28880:64;:83;;;;;28948:15;;;;;;;;;;;28880:83;28876:287;;;28998:12;;28988:6;:22;;28980:31;;;;;;29053:15;29034:8;:16;29043:6;29034:16;;;;;;;;;;;;;;;;:34;29026:43;;;;;;29141:9;29122:16;;:28;29103:15;:48;29084:8;:16;29093:6;29084:16;;;;;;;;;;;;;;;:67;;;;28876:287;29187:11;:19;29199:6;29187:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;29211:11;:22;29223:9;29211:22;;;;;;;;;;;;;;;;;;;;;;;;;29210:23;29187:46;29183:597;;;29250:48;29272:6;29280:9;29291:6;29250:21;:48::i;:::-;29183:597;;;29321:11;:19;29333:6;29321:19;;;;;;;;;;;;;;;;;;;;;;;;;29320:20;:46;;;;;29344:11;:22;29356:9;29344:22;;;;;;;;;;;;;;;;;;;;;;;;;29320:46;29316:464;;;29383:46;29403:6;29411:9;29422:6;29383:19;:46::i;:::-;29316:464;;;29452:11;:19;29464:6;29452:19;;;;;;;;;;;;;;;;;;;;;;;;;29451:20;:47;;;;;29476:11;:22;29488:9;29476:22;;;;;;;;;;;;;;;;;;;;;;;;;29475:23;29451:47;29447:333;;;29515:44;29533:6;29541:9;29552:6;29515:17;:44::i;:::-;29447:333;;;29581:11;:19;29593:6;29581:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;29604:11;:22;29616:9;29604:22;;;;;;;;;;;;;;;;;;;;;;;;;29581:45;29577:203;;;29643:48;29665:6;29673:9;29684:6;29643:21;:48::i;:::-;29577:203;;;29724:44;29742:6;29750:9;29761:6;29724:17;:44::i;:::-;29577:203;29447:333;29316:464;29183:597;29796:7;29792:41;;29818:15;:13;:15::i;:::-;29792:41;28405:1436;;;;:::o;23439:555::-;23489:7;23498;23518:15;23536:7;;23518:25;;23554:15;23572:7;;23554:25;;23595:9;23590:289;23614:9;:16;;;;23610:1;:20;23590:289;;;23680:7;23656;:21;23664:9;23674:1;23664:12;;;;;;;;;;;;;;;;;;;;;;;;;23656:21;;;;;;;;;;;;;;;;:31;:66;;;;23715:7;23691;:21;23699:9;23709:1;23699:12;;;;;;;;;;;;;;;;;;;;;;;;;23691:21;;;;;;;;;;;;;;;;:31;23656:66;23652:97;;;23732:7;;23741;;23724:25;;;;;;;;;23652:97;23774:34;23786:7;:21;23794:9;23804:1;23794:12;;;;;;;;;;;;;;;;;;;;;;;;;23786:21;;;;;;;;;;;;;;;;23774:7;:11;;:34;;;;:::i;:::-;23764:44;;23833:34;23845:7;:21;23853:9;23863:1;23853:12;;;;;;;;;;;;;;;;;;;;;;;;;23845:21;;;;;;;;;;;;;;;;23833:7;:11;;:34;;;;:::i;:::-;23823:44;;23632:3;;;;;;;23590:289;;;;23903:20;23915:7;;23903;;:11;;:20;;;;:::i;:::-;23893:7;:30;23889:61;;;23933:7;;23942;;23925:25;;;;;;;;23889:61;23969:7;23978;23961:25;;;;;;23439:555;;;:::o;2596:189::-;2682:7;2714:1;2710;:5;2717:12;2702:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2741:9;2757:1;2753;:5;;;;;;2741:17;;2776:1;2769:8;;;2596:189;;;;;:::o;22079:418::-;22139:7;22148;22157;22166;22186:12;22201:24;22217:7;22201:15;:24::i;:::-;22186:39;;22236:16;22255:25;22272:7;22255:16;:25::i;:::-;22236:44;;22291:18;22312:30;22334:7;22312:21;:30::i;:::-;22291:51;;22353:23;22379:47;22417:8;22379:33;22401:10;22379:17;22391:4;22379:7;:11;;:17;;;;:::i;:::-;:21;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;22353:73;;22445:15;22462:4;22468:10;22480:8;22437:52;;;;;;;;;;;;22079:418;;;;;:::o;22505:755::-;22586:7;22595;22604;22613;22633:15;22651;:23;;;22633:41;;22685:12;22700:15;:20;;;22685:35;;22731:18;22752:15;:26;;;22731:47;;22789:16;22808:15;:24;;;22789:43;;22843:19;22865:15;:27;;;22843:49;;22905:15;22923:24;22935:11;22923:7;:11;;:24;;;;:::i;:::-;22905:42;;22958:12;22973:21;22982:11;22973:4;:8;;:21;;;;:::i;:::-;22958:36;;23005:16;23024:25;23037:11;23024:8;:12;;:25;;;;:::i;:::-;23005:44;;23060:18;23081:27;23096:11;23081:10;:14;;:27;;;;:::i;:::-;23060:48;;23119:23;23145:47;23183:8;23145:33;23167:10;23145:17;23157:4;23145:7;:11;;:17;;;;:::i;:::-;:21;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;23119:73;;23211:7;23220:15;23237:4;23243:8;23203:49;;;;;;;;;;;;;;;;;;22505:755;;;;;:::o;1866:136::-;1924:7;1951:43;1955:1;1958;1951:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1944:50;;1866:136;;;;:::o;27557:472::-;27623:21;27661:1;27647:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27623:40;;27692:4;27674;27679:1;27674:7;;;;;;;;;;;;;:23;;;;;;;;;;;27718:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27708:4;27713:1;27708:7;;;;;;;;;;;;;:32;;;;;;;;;;;27751:62;27768:4;27783:15;27801:11;27751:8;:62::i;:::-;27824:15;:66;;;27905:11;27931:1;27948:4;27975;27995:15;27824:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27557:472;;:::o;28037:360::-;28118:62;28135:4;28150:15;28168:11;28118:8;:62::i;:::-;28191:15;:31;;;28230:9;28263:4;28283:11;28309:1;28325;28341:7;:5;:7::i;:::-;28363:15;28191:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28037:360;;:::o;24867:312::-;24924:1;24913:7;;:12;:34;;;;;24946:1;24929:13;;:18;24913:34;:51;;;;;24963:1;24951:8;;:13;24913:51;24910:63;;;24966:7;;24910:63;25003:7;;24985:15;:25;;;;25045:13;;25021:21;:37;;;;25088:8;;25069:16;:27;;;;25119:1;25109:7;:11;;;;25147:1;25131:13;:17;;;;25170:1;25159:8;:12;;;;24867:312;:::o;31504:754::-;31606:20;;:::i;:::-;31629:19;31640:7;31629:10;:19::i;:::-;31606:42;;31659:15;31677:6;:14;;;31659:32;;31702:23;31728:6;:22;;;31702:48;;31761:12;31776:6;:11;;;31761:26;;31798:23;31824:6;:22;;;31798:48;;31857:12;31872:6;:11;;;31857:26;;31894:18;31915:6;:17;;;31894:38;;31963:28;31983:7;31963;:15;31971:6;31963:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;31945:7;:15;31953:6;31945:15;;;;;;;;;;;;;;;:46;;;;32020:28;32040:7;32020;:15;32028:6;32020:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;32002:7;:15;32010:6;32002:15;;;;;;;;;;;;;;;:46;;;;32080:39;32103:15;32080:7;:18;32088:9;32080:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;32059:7;:18;32067:9;32059:18;;;;;;;;;;;;;;;:60;;;;32130:26;32145:10;32130:14;:26::i;:::-;32167:23;32179:4;32185;32167:11;:23::i;:::-;32223:9;32206:44;;32215:6;32206:44;;;32234:15;32206:44;;;;;;;;;;;;;;;;;;31504:754;;;;;;;;;;:::o;30730:766::-;30830:20;;:::i;:::-;30853:19;30864:7;30853:10;:19::i;:::-;30830:42;;30883:15;30901:6;:14;;;30883:32;;30926:23;30952:6;:22;;;30926:48;;30985:12;31000:6;:11;;;30985:26;;31022:23;31048:6;:22;;;31022:48;;31081:12;31096:6;:11;;;31081:26;;31118:18;31139:6;:17;;;31118:38;;31187:28;31207:7;31187;:15;31195:6;31187:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;31169:7;:15;31177:6;31169:15;;;;;;;;;;;;;;;:46;;;;31247:39;31270:15;31247:7;:18;31255:9;31247:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;31226:7;:18;31234:9;31226:18;;;;;;;;;;;;;;;:60;;;;31318:39;31341:15;31318:7;:18;31326:9;31318:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;31297:7;:18;31305:9;31297:18;;;;;;;;;;;;;;;:60;;;;31368:26;31383:10;31368:14;:26::i;:::-;31405:23;31417:4;31423;31405:11;:23::i;:::-;31461:9;31444:44;;31453:6;31444:44;;;31472:15;31444:44;;;;;;;;;;;;;;;;;;30730:766;;;;;;;;;;:::o;29849:873::-;29947:20;;:::i;:::-;29970:19;29981:7;29970:10;:19::i;:::-;29947:42;;30000:15;30018:6;:14;;;30000:32;;30043:23;30069:6;:22;;;30043:48;;30102:12;30117:6;:11;;;30102:26;;30139:23;30165:6;:22;;;30139:48;;30198:12;30213:6;:11;;;30198:26;;30235:18;30256:6;:17;;;30235:38;;30284:16;30303:6;:15;;;30284:34;;30329:16;30348:6;:15;;;30329:34;;30386:21;30398:8;30386:7;;:11;;:21;;;;:::i;:::-;30376:7;:31;;;;30428:21;30440:8;30428:7;;:11;;:21;;;;:::i;:::-;30418:7;:31;;;;30480:28;30500:7;30480;:15;30488:6;30480:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30462:7;:15;30470:6;30462:15;;;;;;;;;;;;;;;:46;;;;30540:39;30563:15;30540:7;:18;30548:9;30540:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30519:7;:18;30527:9;30519:18;;;;;;;;;;;;;;;:60;;;;30592:26;30607:10;30592:14;:26::i;:::-;30629:23;30641:4;30647;30629:11;:23::i;:::-;30687:9;30670:44;;30679:6;30670:44;;;30698:15;30670:44;;;;;;;;;;;;;;;;;;29849:873;;;;;;;;;;;;:::o;19177:823::-;19279:20;;:::i;:::-;19302:19;19313:7;19302:10;:19::i;:::-;19279:42;;19332:15;19350:6;:14;;;19332:32;;19375:23;19401:6;:22;;;19375:48;;19434:12;19449:6;:11;;;19434:26;;19471:23;19497:6;:22;;;19471:48;;19530:12;19545:6;:11;;;19530:26;;19567:18;19588:6;:17;;;19567:38;;19634:28;19654:7;19634;:15;19642:6;19634:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19616:7;:15;19624:6;19616:15;;;;;;;;;;;;;;;:46;;;;19691:28;19711:7;19691;:15;19699:6;19691:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19673:7;:15;19681:6;19673:15;;;;;;;;;;;;;;;:46;;;;19751:39;19774:15;19751:7;:18;19759:9;19751:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;19730:7;:18;19738:9;19730:18;;;;;;;;;;;;;;;:60;;;;19822:39;19845:15;19822:7;:18;19830:9;19822:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;19801:7;:18;19809:9;19801:18;;;;;;;;;;;;;;;:60;;;;19872:26;19887:10;19872:14;:26::i;:::-;19909:23;19921:4;19927;19909:11;:23::i;:::-;19965:9;19948:44;;19957:6;19948:44;;;19976:15;19948:44;;;;;;;;;;;;;;;;;;19177:823;;;;;;;;;;:::o;25187:163::-;25241:15;;25231:7;:25;;;;25283:21;;25267:13;:37;;;;25326:16;;25315:8;:27;;;;25187:163::o;24365:154::-;24429:7;24456:55;24495:5;24456:20;24468:7;;24456;:11;;:20;;;;:::i;:::-;:24;;:55;;;;:::i;:::-;24449:62;;24365:154;;;:::o;24701:156::-;24766:7;24793:56;24833:5;24793:21;24805:8;;24793:7;:11;;:21;;;;:::i;:::-;:25;;:56;;;;:::i;:::-;24786:63;;24701:156;;;:::o;24527:166::-;24597:7;24624:61;24669:5;24624:26;24636:13;;24624:7;:11;;:26;;;;:::i;:::-;:30;;:61;;;;:::i;:::-;24617:68;;24527:166;;;:::o;2206:246::-;2264:7;2293:1;2288;:6;2284:47;;;2318:1;2311:8;;;;2284:47;2341:9;2357:1;2353;:5;2341:17;;2386:1;2381;2377;:5;;;;;;:10;2369:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2443:1;2436:8;;;2206:246;;;;;:::o;1679:181::-;1737:7;1757:9;1773:1;1769;:5;1757:17;;1798:1;1793;:6;;1785:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1851:1;1844:8;;;1679:181;;;;:::o;24002:355::-;24065:19;24088:10;:8;:10::i;:::-;24065:33;;24109:18;24130:27;24145:11;24130:10;:14;;:27;;;;:::i;:::-;24109:48;;24193:38;24220:10;24193:7;:22;24209:4;24193:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;24168:7;:22;24184:4;24168:22;;;;;;;;;;;;;;;:63;;;;24245:11;:26;24265:4;24245:26;;;;;;;;;;;;;;;;;;;;;;;;;24242:107;;;24311:38;24338:10;24311:7;:22;24327:4;24311:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;24286:7;:22;24302:4;24286:22;;;;;;;;;;;;;;;:63;;;;24242:107;24002:355;;;:::o;20863:147::-;20941:17;20953:4;20941:7;;:11;;:17;;;;:::i;:::-;20931:7;:27;;;;20982:20;20997:4;20982:10;;:14;;:20;;;;:::i;:::-;20969:10;:33;;;;20863:147;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://1f5f78ba33fd515b108effb1ff6fdd7a834a8913b7a3981e94677680d5044d6c
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.