More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 31 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18088693 | 427 days ago | IN | 0 ETH | 0.00043972 | ||||
Exclude From Max... | 18088063 | 427 days ago | IN | 0 ETH | 0.00030252 | ||||
Approve | 18088019 | 427 days ago | IN | 0 ETH | 0.00066699 | ||||
Transfer | 18088014 | 427 days ago | IN | 0 ETH | 0.00062094 | ||||
Approve | 18087898 | 427 days ago | IN | 0 ETH | 0.0008447 | ||||
Update Swap Enab... | 18087566 | 427 days ago | IN | 0 ETH | 0.00047746 | ||||
Update Limits | 18087498 | 427 days ago | IN | 0 ETH | 0.00085019 | ||||
Remove Limits | 18087301 | 427 days ago | IN | 0 ETH | 0.00091125 | ||||
Update Limits | 18087293 | 427 days ago | IN | 0 ETH | 0.00076343 | ||||
Blacklist | 18087261 | 427 days ago | IN | 0 ETH | 0.00243264 | ||||
Blacklist | 18087257 | 427 days ago | IN | 0 ETH | 0.0026446 | ||||
Update Limits | 18087253 | 427 days ago | IN | 0 ETH | 0.00173412 | ||||
Enable Trading | 18087248 | 427 days ago | IN | 0 ETH | 0.00395627 | ||||
Blacklist | 18087244 | 427 days ago | IN | 0 ETH | 0.00285574 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.00292522 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 | ||||
Approve | 18087237 | 427 days ago | IN | 0 ETH | 0.0029725 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
FluidDaoToken
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT /** Start small, think big. Don’t worry about too many things at once. Take a handful of simple things to begin with, and then progress to more complex ones. Think about not just tomorrow, but the future. Put a ding in the universe. — Steve Jobs https://t.me/FluidToken https://twitter.com/FluidFiToken **/ pragma solidity >=0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; address private creator; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ 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); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } ////// src/IUniswapV2Factory.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } ////// src/IUniswapV2Pair.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface ISFwd { function distributeFromSuper() external payable; } // Creating modern and efficient trading tools for our digital world. contract FluidDaoToken is Context,ERC20, Ownable { bool private swapping; ISFwd public teamWallet=ISFwd(0xCE54245ae51b916c75d5fB374C7F2B239C70487e); uint256 _totalSupply = 100_000_000 * 1e18; uint256 _lp = (_totalSupply* 450)/1000; uint256 public maxTransactionAmount = (_totalSupply * 10) / 1000; uint256 public swapTokensAtAmount = (_totalSupply * 5) / 100000; uint256 public maxWallet = (_totalSupply * 10) / 1000; bool public limitsInEffect = false; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyFees = 50; //init 5% buy tax uint256 public sellFees = 50; //init 5% sell tax uint256 public launchBlock; using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; mapping(address => bool) private blacklists; event SwapBackSuccess( uint256 tokenAmount, uint256 ethAmountReceived, bool success ); string private constant _name = unicode"FluidTradeToken"; string private constant _symbol = unicode"FLUID"; constructor() ERC20("FluidTradeToken", "FLUID") { // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(teamWallet), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(teamWallet), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(address(this), _lp); _mint(owner(),(_totalSupply-_lp)); } receive() external payable {} // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; launchBlock = block.number; } // remove limits after token is stable (sets sell fees to 5%) function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; sellFees = 50; buyFees = 50; return true; } function excludeFromMaxTransaction( address addressToExclude, bool isExcluded ) public onlyOwner { _isExcludedMaxTransactionAmount[addressToExclude] = isExcluded; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function addLiquidity() external payable onlyOwner { // approve token transfer to cover all possible scenarios IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; excludeFromMaxTransaction(address(_uniswapV2Router), true); _approve(address(this), address(uniswapV2Router), balanceOf(address(this))); // add the liquidity uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), //token address balanceOf(address(this)), // liquidity amount 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), // LP tokens are sent to the owner block.timestamp ); limitsInEffect=true; } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function updateFeeWallet( address devWallet_ ) public onlyOwner { teamWallet = ISFwd(devWallet_); } function updateMaxTransaction(uint amount) external onlyOwner{ maxTransactionAmount = amount; } function updateSwapTokenTreshold(uint amount) external onlyOwner{ swapTokensAtAmount = amount; } function updateMaxWallet(uint amount) external onlyOwner{ maxWallet = amount; } function updateLimits(bool value) external onlyOwner{ limitsInEffect = value; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!blacklists[to] && !blacklists[from], "Blacklisted"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not enabled yet." ); } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && //if this is true !swapping && //if this is false !automatedMarketMakerPairs[from] && //if this is false !_isExcludedFromFees[from] && //if this is false !_isExcludedFromFees[to] //if this is false ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellFees > 0) { fees = amount.mul(sellFees).div(1000); } // on buy else if (automatedMarketMakerPairs[from] && buyFees > 0) { // DEAD BLOCKS if (block.number - launchBlock == 0){ fees = amount.mul(900).div(1000); } else if (block.number - launchBlock <= 3) { fees = amount.mul(690).div(1000); } else { fees = amount.mul(buyFees).div(1000); } } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } if (contractBalance >= swapTokensAtAmount) { uint256 amountToSwapForETH = swapTokensAtAmount; swapTokensForEth(amountToSwapForETH); uint256 amountEthToSend = address(this).balance; if(amountEthToSend>0){ teamWallet.distributeFromSuper{value:amountEthToSend}(); } emit SwapBackSuccess(amountToSwapForETH, amountEthToSend, true); } } function blacklist(address[] memory _address) external onlyOwner { for(uint8 i=0;i<_address.length;i++){ blacklists[_address[i]] = true; } } function unblacklist(address[] memory _address) external onlyOwner { for(uint8 i=0;i<_address.length;i++){ blacklists[_address[i]] = false; } } function manualSwap() external onlyOwner { uint256 tokenBalance = balanceOf(address(this)); if(tokenBalance > 0) { swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if(ethBalance > 0) { teamWallet.distributeFromSuper{value:ethBalance}(); } } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmountReceived","type":"uint256"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"SwapBackSuccess","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":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressToExclude","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"contract ISFwd","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"unblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"devWallet_","type":"address"}],"name":"updateFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokenTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273ce54245ae51b916c75d5fb374c7f2b239c70487e600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a52b7d2dcc80cd2e40000006008556103e86101c26008546200007d9190620009ce565b62000089919062000996565b6009556103e8600a600854620000a09190620009ce565b620000ac919062000996565b600a55620186a06005600854620000c49190620009ce565b620000d0919062000996565b600b556103e8600a600854620000e79190620009ce565b620000f3919062000996565b600c556000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506032600e556032600f553480156200015e57600080fd5b506040518060400160405280600f81526020017f466c7569645472616465546f6b656e00000000000000000000000000000000008152506040518060400160405280600581526020017f464c5549440000000000000000000000000000000000000000000000000000008152508160039080519060200190620001e3929190620007b8565b508060049080519060200190620001fc929190620007b8565b5050506200021f620002136200036960201b60201c565b6200037160201b60201c565b62000241620002336200043760201b60201c565b60016200046160201b60201c565b62000276600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200046160201b60201c565b620002893060016200046160201b60201c565b6200029e61dead60016200046160201b60201c565b620002c0620002b26200043760201b60201c565b60016200054b60201b60201c565b620002f5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200054b60201b60201c565b620003083060016200054b60201b60201c565b6200031d61dead60016200054b60201b60201c565b62000331306009546200063560201b60201c565b62000363620003456200043760201b60201c565b60095460085462000357919062000a2f565b6200063560201b60201c565b62000b89565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004716200036960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004976200043760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620004f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e790620008c7565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6200055b6200036960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005816200043760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005d190620008c7565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069f90620008e9565b60405180910390fd5b620006bc60008383620007ae60201b60201c565b8060026000828254620006d0919062000939565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000727919062000939565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200078e91906200090b565b60405180910390a3620007aa60008383620007b360201b60201c565b5050565b505050565b505050565b828054620007c69062000a74565b90600052602060002090601f016020900481019282620007ea576000855562000836565b82601f106200080557805160ff191683800117855562000836565b8280016001018555821562000836579182015b828111156200083557825182559160200191906001019062000818565b5b50905062000845919062000849565b5090565b5b80821115620008645760008160009055506001016200084a565b5090565b60006200087760208362000928565b9150620008848262000b37565b602082019050919050565b60006200089e601f8362000928565b9150620008ab8262000b60565b602082019050919050565b620008c18162000a6a565b82525050565b60006020820190508181036000830152620008e28162000868565b9050919050565b6000602082019050818103600083015262000904816200088f565b9050919050565b6000602082019050620009226000830184620008b6565b92915050565b600082825260208201905092915050565b6000620009468262000a6a565b9150620009538362000a6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200098b576200098a62000aaa565b5b828201905092915050565b6000620009a38262000a6a565b9150620009b08362000a6a565b925082620009c357620009c262000ad9565b5b828204905092915050565b6000620009db8262000a6a565b9150620009e88362000a6a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a245762000a2362000aaa565b5b828202905092915050565b600062000a3c8262000a6a565b915062000a498362000a6a565b92508282101562000a5f5762000a5e62000aaa565b5b828203905092915050565b6000819050919050565b6000600282049050600182168062000a8d57607f821691505b6020821081141562000aa45762000aa362000b08565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6148a28062000b996000396000f3fe6080604052600436106102765760003560e01c8063751039fc1161014f578063bbc0c742116100c1578063e0f3ccf51161007a578063e0f3ccf514610971578063e2f456051461099c578063e4748b9e146109c7578063e8078d94146109f2578063f2fde38b146109fc578063f8b45b0514610a255761027d565b8063bbc0c74214610861578063bfab65351461088c578063c0246668146108b5578063c8c8ebe4146108de578063d00efb2f14610909578063dd62ed3e146109345761027d565b806395d89b411161011357806395d89b411461072d5780639a7a23d6146107585780639bed058914610781578063a457c2d7146107aa578063a9059cbb146107e7578063b62496f5146108245761027d565b8063751039fc1461066e5780637571336a146106995780638a8c523c146106c25780638da5cb5b146106d9578063924de9b7146107045761027d565b806339509351116101e857806359927044116101ac5780635992704414610572578063667185241461059d5780636ddd1713146105c657806370a08231146105f1578063715018a61461062e57806374326f53146106455761027d565b8063395093511461048b57806349bd5a5e146104c85780634a62bb65146104f35780634fbee1931461051e57806351bc3c851461055b5761027d565b80631694505e1161023a5780631694505e1461037957806318160ddd146103a45780631c499ab0146103cf57806323b872dd146103f857806327c8f83514610435578063313ce567146104605761027d565b8063041f173f146102825780630517d13d146102ab57806306fdde03146102d4578063095ea7b3146102ff57806310d5de531461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a491906137fb565b610a50565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190613871565b610b67565b005b3480156102e057600080fd5b506102e9610bed565b6040516102f69190613d1b565b60405180910390f35b34801561030b57600080fd5b50610326600480360381019061032191906137bb565b610c7f565b6040516103339190613cca565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e919061368e565b610c9d565b6040516103709190613cca565b60405180910390f35b34801561038557600080fd5b5061038e610cbd565b60405161039b9190613d00565b60405180910390f35b3480156103b057600080fd5b506103b9610ce3565b6040516103c69190613f1d565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190613871565b610ced565b005b34801561040457600080fd5b5061041f600480360381019061041a9190613728565b610d73565b60405161042c9190613cca565b60405180910390f35b34801561044157600080fd5b5061044a610e6b565b6040516104579190613c25565b60405180910390f35b34801561046c57600080fd5b50610475610e71565b6040516104829190613fc9565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906137bb565b610e7a565b6040516104bf9190613cca565b60405180910390f35b3480156104d457600080fd5b506104dd610f26565b6040516104ea9190613c25565b60405180910390f35b3480156104ff57600080fd5b50610508610f4c565b6040516105159190613cca565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061368e565b610f5f565b6040516105529190613cca565b60405180910390f35b34801561056757600080fd5b50610570610fb5565b005b34801561057e57600080fd5b506105876110e7565b6040516105949190613ce5565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf919061368e565b61110d565b005b3480156105d257600080fd5b506105db6111cd565b6040516105e89190613cca565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061368e565b6111e0565b6040516106259190613f1d565b60405180910390f35b34801561063a57600080fd5b50610643611228565b005b34801561065157600080fd5b5061066c60048036038101906106679190613844565b6112b0565b005b34801561067a57600080fd5b50610683611349565b6040516106909190613cca565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb919061377b565b6113f9565b005b3480156106ce57600080fd5b506106d76114d0565b005b3480156106e557600080fd5b506106ee61158b565b6040516106fb9190613c25565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190613844565b6115b5565b005b34801561073957600080fd5b5061074261164e565b60405161074f9190613d1b565b60405180910390f35b34801561076457600080fd5b5061077f600480360381019061077a919061377b565b6116e0565b005b34801561078d57600080fd5b506107a860048036038101906107a39190613871565b6117fb565b005b3480156107b657600080fd5b506107d160048036038101906107cc91906137bb565b611881565b6040516107de9190613cca565b60405180910390f35b3480156107f357600080fd5b5061080e600480360381019061080991906137bb565b61196c565b60405161081b9190613cca565b60405180910390f35b34801561083057600080fd5b5061084b6004803603810190610846919061368e565b61198a565b6040516108589190613cca565b60405180910390f35b34801561086d57600080fd5b506108766119aa565b6040516108839190613cca565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae91906137fb565b6119bd565b005b3480156108c157600080fd5b506108dc60048036038101906108d7919061377b565b611ad4565b005b3480156108ea57600080fd5b506108f3611bab565b6040516109009190613f1d565b60405180910390f35b34801561091557600080fd5b5061091e611bb1565b60405161092b9190613f1d565b60405180910390f35b34801561094057600080fd5b5061095b600480360381019061095691906136e8565b611bb7565b6040516109689190613f1d565b60405180910390f35b34801561097d57600080fd5b50610986611c3e565b6040516109939190613f1d565b60405180910390f35b3480156109a857600080fd5b506109b1611c44565b6040516109be9190613f1d565b60405180910390f35b3480156109d357600080fd5b506109dc611c4a565b6040516109e99190613f1d565b60405180910390f35b6109fa611c50565b005b348015610a0857600080fd5b50610a236004803603810190610a1e919061368e565b612070565b005b348015610a3157600080fd5b50610a3a612168565b604051610a479190613f1d565b60405180910390f35b610a5861216e565b73ffffffffffffffffffffffffffffffffffffffff16610a7661158b565b73ffffffffffffffffffffffffffffffffffffffff1614610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390613e3d565b60405180910390fd5b60005b81518160ff161015610b6357600160166000848460ff1681518110610af757610af661439b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b5b906142e4565b915050610acf565b5050565b610b6f61216e565b73ffffffffffffffffffffffffffffffffffffffff16610b8d61158b565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90613e3d565b60405180910390fd5b80600a8190555050565b606060038054610bfc90614281565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2890614281565b8015610c755780601f10610c4a57610100808354040283529160200191610c75565b820191906000526020600020905b815481529060010190602001808311610c5857829003601f168201915b5050505050905090565b6000610c93610c8c61216e565b8484612176565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610cf561216e565b73ffffffffffffffffffffffffffffffffffffffff16610d1361158b565b73ffffffffffffffffffffffffffffffffffffffff1614610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6090613e3d565b60405180910390fd5b80600c8190555050565b6000610d80848484612341565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dcb61216e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290613e1d565b60405180910390fd5b610e5f85610e5761216e565b858403612176565b60019150509392505050565b61dead81565b60006012905090565b6000610f1c610e8761216e565b848460016000610e9561216e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f17919061408a565b612176565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610fbd61216e565b73ffffffffffffffffffffffffffffffffffffffff16610fdb61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613e3d565b60405180910390fd5b600061103c306111e0565b905060008111156110515761105081612e53565b5b600047905060008111156110e357600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636377649f826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b50505050505b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61111561216e565b73ffffffffffffffffffffffffffffffffffffffff1661113361158b565b73ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613e3d565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61123061216e565b73ffffffffffffffffffffffffffffffffffffffff1661124e61158b565b73ffffffffffffffffffffffffffffffffffffffff16146112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90613e3d565b60405180910390fd5b6112ae60006130a5565b565b6112b861216e565b73ffffffffffffffffffffffffffffffffffffffff166112d661158b565b73ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613e3d565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b600061135361216e565b73ffffffffffffffffffffffffffffffffffffffff1661137161158b565b73ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90613e3d565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506032600f819055506032600e819055506001905090565b61140161216e565b73ffffffffffffffffffffffffffffffffffffffff1661141f61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613e3d565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114d861216e565b73ffffffffffffffffffffffffffffffffffffffff166114f661158b565b73ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613e3d565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043601081905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115bd61216e565b73ffffffffffffffffffffffffffffffffffffffff166115db61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613e3d565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b60606004805461165d90614281565b80601f016020809104026020016040519081016040528092919081815260200182805461168990614281565b80156116d65780601f106116ab576101008083540402835291602001916116d6565b820191906000526020600020905b8154815290600101906020018083116116b957829003601f168201915b5050505050905090565b6116e861216e565b73ffffffffffffffffffffffffffffffffffffffff1661170661158b565b73ffffffffffffffffffffffffffffffffffffffff161461175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613e3d565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613d9d565b60405180910390fd5b6117f7828261316b565b5050565b61180361216e565b73ffffffffffffffffffffffffffffffffffffffff1661182161158b565b73ffffffffffffffffffffffffffffffffffffffff1614611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90613e3d565b60405180910390fd5b80600b8190555050565b6000806001600061189061216e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194490613edd565b60405180910390fd5b61196161195861216e565b85858403612176565b600191505092915050565b600061198061197961216e565b8484612341565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b6119c561216e565b73ffffffffffffffffffffffffffffffffffffffff166119e361158b565b73ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613e3d565b60405180910390fd5b60005b81518160ff161015611ad057600060166000848460ff1681518110611a6457611a6361439b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ac8906142e4565b915050611a3c565b5050565b611adc61216e565b73ffffffffffffffffffffffffffffffffffffffff16611afa61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790613e3d565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600b5481565b600e5481565b611c5861216e565b73ffffffffffffffffffffffffffffffffffffffff16611c7661158b565b73ffffffffffffffffffffffffffffffffffffffff1614611ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc390613e3d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d318160016113f9565b611d6630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d61306111e0565b612176565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611dac57600080fd5b505afa158015611dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de491906136bb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4657600080fd5b505afa158015611e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7e91906136bb565b6040518363ffffffff1660e01b8152600401611e9b929190613c40565b602060405180830381600087803b158015611eb557600080fd5b505af1158015611ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eed91906136bb565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f5a601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016113f9565b611f87601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161316b565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611fd0306111e0565b600080611fdb61158b565b426040518863ffffffff1660e01b8152600401611ffd96959493929190613c69565b6060604051808303818588803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061204f919061389e565b5050506001600d60006101000a81548160ff02191690831515021790555050565b61207861216e565b73ffffffffffffffffffffffffffffffffffffffff1661209661158b565b73ffffffffffffffffffffffffffffffffffffffff16146120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e390613e3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561215c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215390613d5d565b60405180910390fd5b612165816130a5565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dd90613e9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d90613d7d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123349190613f1d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a890613e7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241890613d3d565b60405180910390fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124c55750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb90613efd565b60405180910390fd5b600081141561251e57612519838360006131c6565b612e4e565b600d60009054906101000a900460ff1615612a195761253b61158b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125a9575061257961158b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125e25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561261c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126355750600660149054906101000a900460ff16155b15612a1857600d60019054906101000a900460ff1661272f57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126ef5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61272e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272590613e5d565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127d25750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561287957600a5481111561281c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281390613dfd565b60405180910390fd5b600c54612828836111e0565b82612833919061408a565b1115612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b90613ebd565b60405180910390fd5b612a17565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561291c5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296b57600a54811115612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90613ddd565b60405180910390fd5b612a16565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1557600c546129c8836111e0565b826129d3919061408a565b1115612a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0b90613ebd565b60405180910390fd5b5b5b5b5b5b6000612a24306111e0565b90506000600b548210159050808015612a495750600d60029054906101000a900460ff165b8015612a625750600660149054906101000a900460ff16155b8015612ab85750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b0e5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b645750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ba8576001600660146101000a81548160ff021916908315150217905550612b8c613447565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c5e5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c6857600090505b60008115612e3e57601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ccb57506000600f54115b15612d0057612cf96103e8612ceb600f548861355190919063ffffffff16565b61356790919063ffffffff16565b9050612e1a565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d5b57506000600e54115b15612e1957600060105443612d70919061416b565b1415612da657612d9f6103e8612d916103848861355190919063ffffffff16565b61356790919063ffffffff16565b9050612e18565b600360105443612db6919061416b565b11612deb57612de46103e8612dd66102b28861355190919063ffffffff16565b61356790919063ffffffff16565b9050612e17565b612e146103e8612e06600e548861355190919063ffffffff16565b61356790919063ffffffff16565b90505b5b5b5b6000811115612e2f57612e2e8730836131c6565b5b8085612e3b919061416b565b94505b612e498787876131c6565b505050505b505050565b6000600267ffffffffffffffff811115612e7057612e6f6143ca565b5b604051908082528060200260200182016040528015612e9e5781602001602082028036833780820191505090505b5090503081600081518110612eb657612eb561439b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f5857600080fd5b505afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9091906136bb565b81600181518110612fa457612fa361439b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061300b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612176565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161306f959493929190613f38565b600060405180830381600087803b15801561308957600080fd5b505af115801561309d573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322d90613e7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329d90613d3d565b60405180910390fd5b6132b183838361357d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332e90613dbd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133ca919061408a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161342e9190613f1d565b60405180910390a3613441848484613582565b50505050565b6000613452306111e0565b90506000811415613463575061354f565b600b54811061354d576000600b54905061347c81612e53565b6000479050600081111561350e57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636377649f826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156134f457600080fd5b505af1158015613508573d6000803e3d6000fd5b50505050505b7fe9f689eb4d290dd3a40869ea626055ee4a55d40f20286208d04ef55f39254cff8282600160405161354293929190613f92565b60405180910390a150505b505b565b6000818361355f9190614111565b905092915050565b6000818361357591906140e0565b905092915050565b505050565b505050565b600061359a61359584614009565b613fe4565b905080838252602082019050828560208602820111156135bd576135bc6143fe565b5b60005b858110156135ed57816135d388826135f7565b8452602084019350602083019250506001810190506135c0565b5050509392505050565b60008135905061360681614827565b92915050565b60008151905061361b81614827565b92915050565b600082601f830112613636576136356143f9565b5b8135613646848260208601613587565b91505092915050565b60008135905061365e8161483e565b92915050565b60008135905061367381614855565b92915050565b60008151905061368881614855565b92915050565b6000602082840312156136a4576136a3614408565b5b60006136b2848285016135f7565b91505092915050565b6000602082840312156136d1576136d0614408565b5b60006136df8482850161360c565b91505092915050565b600080604083850312156136ff576136fe614408565b5b600061370d858286016135f7565b925050602061371e858286016135f7565b9150509250929050565b60008060006060848603121561374157613740614408565b5b600061374f868287016135f7565b9350506020613760868287016135f7565b925050604061377186828701613664565b9150509250925092565b6000806040838503121561379257613791614408565b5b60006137a0858286016135f7565b92505060206137b18582860161364f565b9150509250929050565b600080604083850312156137d2576137d1614408565b5b60006137e0858286016135f7565b92505060206137f185828601613664565b9150509250929050565b60006020828403121561381157613810614408565b5b600082013567ffffffffffffffff81111561382f5761382e614403565b5b61383b84828501613621565b91505092915050565b60006020828403121561385a57613859614408565b5b60006138688482850161364f565b91505092915050565b60006020828403121561388757613886614408565b5b600061389584828501613664565b91505092915050565b6000806000606084860312156138b7576138b6614408565b5b60006138c586828701613679565b93505060206138d686828701613679565b92505060406138e786828701613679565b9150509250925092565b60006138fd8383613909565b60208301905092915050565b6139128161419f565b82525050565b6139218161419f565b82525050565b600061393282614045565b61393c8185614068565b935061394783614035565b8060005b8381101561397857815161395f88826138f1565b975061396a8361405b565b92505060018101905061394b565b5085935050505092915050565b61398e816141b1565b82525050565b61399d816141f4565b82525050565b6139ac81614206565b82525050565b6139bb81614218565b82525050565b60006139cc82614050565b6139d68185614079565b93506139e681856020860161424e565b6139ef8161440d565b840191505092915050565b6000613a07602383614079565b9150613a128261441e565b604082019050919050565b6000613a2a602683614079565b9150613a358261446d565b604082019050919050565b6000613a4d602283614079565b9150613a58826144bc565b604082019050919050565b6000613a70603983614079565b9150613a7b8261450b565b604082019050919050565b6000613a93602683614079565b9150613a9e8261455a565b604082019050919050565b6000613ab6603683614079565b9150613ac1826145a9565b604082019050919050565b6000613ad9603583614079565b9150613ae4826145f8565b604082019050919050565b6000613afc602883614079565b9150613b0782614647565b604082019050919050565b6000613b1f602083614079565b9150613b2a82614696565b602082019050919050565b6000613b42601b83614079565b9150613b4d826146bf565b602082019050919050565b6000613b65602583614079565b9150613b70826146e8565b604082019050919050565b6000613b88602483614079565b9150613b9382614737565b604082019050919050565b6000613bab601383614079565b9150613bb682614786565b602082019050919050565b6000613bce602583614079565b9150613bd9826147af565b604082019050919050565b6000613bf1600b83614079565b9150613bfc826147fe565b602082019050919050565b613c10816141dd565b82525050565b613c1f816141e7565b82525050565b6000602082019050613c3a6000830184613918565b92915050565b6000604082019050613c556000830185613918565b613c626020830184613918565b9392505050565b600060c082019050613c7e6000830189613918565b613c8b6020830188613c07565b613c9860408301876139b2565b613ca560608301866139b2565b613cb26080830185613918565b613cbf60a0830184613c07565b979650505050505050565b6000602082019050613cdf6000830184613985565b92915050565b6000602082019050613cfa6000830184613994565b92915050565b6000602082019050613d1560008301846139a3565b92915050565b60006020820190508181036000830152613d3581846139c1565b905092915050565b60006020820190508181036000830152613d56816139fa565b9050919050565b60006020820190508181036000830152613d7681613a1d565b9050919050565b60006020820190508181036000830152613d9681613a40565b9050919050565b60006020820190508181036000830152613db681613a63565b9050919050565b60006020820190508181036000830152613dd681613a86565b9050919050565b60006020820190508181036000830152613df681613aa9565b9050919050565b60006020820190508181036000830152613e1681613acc565b9050919050565b60006020820190508181036000830152613e3681613aef565b9050919050565b60006020820190508181036000830152613e5681613b12565b9050919050565b60006020820190508181036000830152613e7681613b35565b9050919050565b60006020820190508181036000830152613e9681613b58565b9050919050565b60006020820190508181036000830152613eb681613b7b565b9050919050565b60006020820190508181036000830152613ed681613b9e565b9050919050565b60006020820190508181036000830152613ef681613bc1565b9050919050565b60006020820190508181036000830152613f1681613be4565b9050919050565b6000602082019050613f326000830184613c07565b92915050565b600060a082019050613f4d6000830188613c07565b613f5a60208301876139b2565b8181036040830152613f6c8186613927565b9050613f7b6060830185613918565b613f886080830184613c07565b9695505050505050565b6000606082019050613fa76000830186613c07565b613fb46020830185613c07565b613fc16040830184613985565b949350505050565b6000602082019050613fde6000830184613c16565b92915050565b6000613fee613fff565b9050613ffa82826142b3565b919050565b6000604051905090565b600067ffffffffffffffff821115614024576140236143ca565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614095826141dd565b91506140a0836141dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140d5576140d461430e565b5b828201905092915050565b60006140eb826141dd565b91506140f6836141dd565b9250826141065761410561433d565b5b828204905092915050565b600061411c826141dd565b9150614127836141dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141605761415f61430e565b5b828202905092915050565b6000614176826141dd565b9150614181836141dd565b9250828210156141945761419361430e565b5b828203905092915050565b60006141aa826141bd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006141ff8261422a565b9050919050565b60006142118261422a565b9050919050565b6000614223826141dd565b9050919050565b60006142358261423c565b9050919050565b6000614247826141bd565b9050919050565b60005b8381101561426c578082015181840152602081019050614251565b8381111561427b576000848401525b50505050565b6000600282049050600182168061429957607f821691505b602082108114156142ad576142ac61436c565b5b50919050565b6142bc8261440d565b810181811067ffffffffffffffff821117156142db576142da6143ca565b5b80604052505050565b60006142ef826141e7565b915060ff8214156143035761430261430e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206973206e6f7420656e61626c6564207965742e0000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6148308161419f565b811461483b57600080fd5b50565b614847816141b1565b811461485257600080fd5b50565b61485e816141dd565b811461486957600080fd5b5056fea2646970667358221220ea75f3a0c5d52633d4a5ea38f6d06311bccef292be9b5b582da98803424e72b164736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102765760003560e01c8063751039fc1161014f578063bbc0c742116100c1578063e0f3ccf51161007a578063e0f3ccf514610971578063e2f456051461099c578063e4748b9e146109c7578063e8078d94146109f2578063f2fde38b146109fc578063f8b45b0514610a255761027d565b8063bbc0c74214610861578063bfab65351461088c578063c0246668146108b5578063c8c8ebe4146108de578063d00efb2f14610909578063dd62ed3e146109345761027d565b806395d89b411161011357806395d89b411461072d5780639a7a23d6146107585780639bed058914610781578063a457c2d7146107aa578063a9059cbb146107e7578063b62496f5146108245761027d565b8063751039fc1461066e5780637571336a146106995780638a8c523c146106c25780638da5cb5b146106d9578063924de9b7146107045761027d565b806339509351116101e857806359927044116101ac5780635992704414610572578063667185241461059d5780636ddd1713146105c657806370a08231146105f1578063715018a61461062e57806374326f53146106455761027d565b8063395093511461048b57806349bd5a5e146104c85780634a62bb65146104f35780634fbee1931461051e57806351bc3c851461055b5761027d565b80631694505e1161023a5780631694505e1461037957806318160ddd146103a45780631c499ab0146103cf57806323b872dd146103f857806327c8f83514610435578063313ce567146104605761027d565b8063041f173f146102825780630517d13d146102ab57806306fdde03146102d4578063095ea7b3146102ff57806310d5de531461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b506102a960048036038101906102a491906137fb565b610a50565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190613871565b610b67565b005b3480156102e057600080fd5b506102e9610bed565b6040516102f69190613d1b565b60405180910390f35b34801561030b57600080fd5b50610326600480360381019061032191906137bb565b610c7f565b6040516103339190613cca565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e919061368e565b610c9d565b6040516103709190613cca565b60405180910390f35b34801561038557600080fd5b5061038e610cbd565b60405161039b9190613d00565b60405180910390f35b3480156103b057600080fd5b506103b9610ce3565b6040516103c69190613f1d565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190613871565b610ced565b005b34801561040457600080fd5b5061041f600480360381019061041a9190613728565b610d73565b60405161042c9190613cca565b60405180910390f35b34801561044157600080fd5b5061044a610e6b565b6040516104579190613c25565b60405180910390f35b34801561046c57600080fd5b50610475610e71565b6040516104829190613fc9565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906137bb565b610e7a565b6040516104bf9190613cca565b60405180910390f35b3480156104d457600080fd5b506104dd610f26565b6040516104ea9190613c25565b60405180910390f35b3480156104ff57600080fd5b50610508610f4c565b6040516105159190613cca565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061368e565b610f5f565b6040516105529190613cca565b60405180910390f35b34801561056757600080fd5b50610570610fb5565b005b34801561057e57600080fd5b506105876110e7565b6040516105949190613ce5565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf919061368e565b61110d565b005b3480156105d257600080fd5b506105db6111cd565b6040516105e89190613cca565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061368e565b6111e0565b6040516106259190613f1d565b60405180910390f35b34801561063a57600080fd5b50610643611228565b005b34801561065157600080fd5b5061066c60048036038101906106679190613844565b6112b0565b005b34801561067a57600080fd5b50610683611349565b6040516106909190613cca565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb919061377b565b6113f9565b005b3480156106ce57600080fd5b506106d76114d0565b005b3480156106e557600080fd5b506106ee61158b565b6040516106fb9190613c25565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190613844565b6115b5565b005b34801561073957600080fd5b5061074261164e565b60405161074f9190613d1b565b60405180910390f35b34801561076457600080fd5b5061077f600480360381019061077a919061377b565b6116e0565b005b34801561078d57600080fd5b506107a860048036038101906107a39190613871565b6117fb565b005b3480156107b657600080fd5b506107d160048036038101906107cc91906137bb565b611881565b6040516107de9190613cca565b60405180910390f35b3480156107f357600080fd5b5061080e600480360381019061080991906137bb565b61196c565b60405161081b9190613cca565b60405180910390f35b34801561083057600080fd5b5061084b6004803603810190610846919061368e565b61198a565b6040516108589190613cca565b60405180910390f35b34801561086d57600080fd5b506108766119aa565b6040516108839190613cca565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae91906137fb565b6119bd565b005b3480156108c157600080fd5b506108dc60048036038101906108d7919061377b565b611ad4565b005b3480156108ea57600080fd5b506108f3611bab565b6040516109009190613f1d565b60405180910390f35b34801561091557600080fd5b5061091e611bb1565b60405161092b9190613f1d565b60405180910390f35b34801561094057600080fd5b5061095b600480360381019061095691906136e8565b611bb7565b6040516109689190613f1d565b60405180910390f35b34801561097d57600080fd5b50610986611c3e565b6040516109939190613f1d565b60405180910390f35b3480156109a857600080fd5b506109b1611c44565b6040516109be9190613f1d565b60405180910390f35b3480156109d357600080fd5b506109dc611c4a565b6040516109e99190613f1d565b60405180910390f35b6109fa611c50565b005b348015610a0857600080fd5b50610a236004803603810190610a1e919061368e565b612070565b005b348015610a3157600080fd5b50610a3a612168565b604051610a479190613f1d565b60405180910390f35b610a5861216e565b73ffffffffffffffffffffffffffffffffffffffff16610a7661158b565b73ffffffffffffffffffffffffffffffffffffffff1614610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390613e3d565b60405180910390fd5b60005b81518160ff161015610b6357600160166000848460ff1681518110610af757610af661439b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b5b906142e4565b915050610acf565b5050565b610b6f61216e565b73ffffffffffffffffffffffffffffffffffffffff16610b8d61158b565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90613e3d565b60405180910390fd5b80600a8190555050565b606060038054610bfc90614281565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2890614281565b8015610c755780601f10610c4a57610100808354040283529160200191610c75565b820191906000526020600020905b815481529060010190602001808311610c5857829003601f168201915b5050505050905090565b6000610c93610c8c61216e565b8484612176565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610cf561216e565b73ffffffffffffffffffffffffffffffffffffffff16610d1361158b565b73ffffffffffffffffffffffffffffffffffffffff1614610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6090613e3d565b60405180910390fd5b80600c8190555050565b6000610d80848484612341565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dcb61216e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290613e1d565b60405180910390fd5b610e5f85610e5761216e565b858403612176565b60019150509392505050565b61dead81565b60006012905090565b6000610f1c610e8761216e565b848460016000610e9561216e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f17919061408a565b612176565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610fbd61216e565b73ffffffffffffffffffffffffffffffffffffffff16610fdb61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613e3d565b60405180910390fd5b600061103c306111e0565b905060008111156110515761105081612e53565b5b600047905060008111156110e357600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636377649f826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110c957600080fd5b505af11580156110dd573d6000803e3d6000fd5b50505050505b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61111561216e565b73ffffffffffffffffffffffffffffffffffffffff1661113361158b565b73ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613e3d565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61123061216e565b73ffffffffffffffffffffffffffffffffffffffff1661124e61158b565b73ffffffffffffffffffffffffffffffffffffffff16146112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90613e3d565b60405180910390fd5b6112ae60006130a5565b565b6112b861216e565b73ffffffffffffffffffffffffffffffffffffffff166112d661158b565b73ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613e3d565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b600061135361216e565b73ffffffffffffffffffffffffffffffffffffffff1661137161158b565b73ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90613e3d565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506032600f819055506032600e819055506001905090565b61140161216e565b73ffffffffffffffffffffffffffffffffffffffff1661141f61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613e3d565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114d861216e565b73ffffffffffffffffffffffffffffffffffffffff166114f661158b565b73ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613e3d565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff02191690831515021790555043601081905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115bd61216e565b73ffffffffffffffffffffffffffffffffffffffff166115db61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613e3d565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b60606004805461165d90614281565b80601f016020809104026020016040519081016040528092919081815260200182805461168990614281565b80156116d65780601f106116ab576101008083540402835291602001916116d6565b820191906000526020600020905b8154815290600101906020018083116116b957829003601f168201915b5050505050905090565b6116e861216e565b73ffffffffffffffffffffffffffffffffffffffff1661170661158b565b73ffffffffffffffffffffffffffffffffffffffff161461175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613e3d565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613d9d565b60405180910390fd5b6117f7828261316b565b5050565b61180361216e565b73ffffffffffffffffffffffffffffffffffffffff1661182161158b565b73ffffffffffffffffffffffffffffffffffffffff1614611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90613e3d565b60405180910390fd5b80600b8190555050565b6000806001600061189061216e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194490613edd565b60405180910390fd5b61196161195861216e565b85858403612176565b600191505092915050565b600061198061197961216e565b8484612341565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b6119c561216e565b73ffffffffffffffffffffffffffffffffffffffff166119e361158b565b73ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613e3d565b60405180910390fd5b60005b81518160ff161015611ad057600060166000848460ff1681518110611a6457611a6361439b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ac8906142e4565b915050611a3c565b5050565b611adc61216e565b73ffffffffffffffffffffffffffffffffffffffff16611afa61158b565b73ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790613e3d565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600b5481565b600e5481565b611c5861216e565b73ffffffffffffffffffffffffffffffffffffffff16611c7661158b565b73ffffffffffffffffffffffffffffffffffffffff1614611ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc390613e3d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d318160016113f9565b611d6630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d61306111e0565b612176565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611dac57600080fd5b505afa158015611dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de491906136bb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4657600080fd5b505afa158015611e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7e91906136bb565b6040518363ffffffff1660e01b8152600401611e9b929190613c40565b602060405180830381600087803b158015611eb557600080fd5b505af1158015611ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eed91906136bb565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f5a601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016113f9565b611f87601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161316b565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611fd0306111e0565b600080611fdb61158b565b426040518863ffffffff1660e01b8152600401611ffd96959493929190613c69565b6060604051808303818588803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061204f919061389e565b5050506001600d60006101000a81548160ff02191690831515021790555050565b61207861216e565b73ffffffffffffffffffffffffffffffffffffffff1661209661158b565b73ffffffffffffffffffffffffffffffffffffffff16146120ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e390613e3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561215c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215390613d5d565b60405180910390fd5b612165816130a5565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dd90613e9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d90613d7d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123349190613f1d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a890613e7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241890613d3d565b60405180910390fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124c55750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb90613efd565b60405180910390fd5b600081141561251e57612519838360006131c6565b612e4e565b600d60009054906101000a900460ff1615612a195761253b61158b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125a9575061257961158b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125e25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561261c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126355750600660149054906101000a900460ff16155b15612a1857600d60019054906101000a900460ff1661272f57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126ef5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61272e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272590613e5d565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127d25750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561287957600a5481111561281c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281390613dfd565b60405180910390fd5b600c54612828836111e0565b82612833919061408a565b1115612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b90613ebd565b60405180910390fd5b612a17565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561291c5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561296b57600a54811115612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90613ddd565b60405180910390fd5b612a16565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a1557600c546129c8836111e0565b826129d3919061408a565b1115612a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0b90613ebd565b60405180910390fd5b5b5b5b5b5b6000612a24306111e0565b90506000600b548210159050808015612a495750600d60029054906101000a900460ff165b8015612a625750600660149054906101000a900460ff16155b8015612ab85750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b0e5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b645750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ba8576001600660146101000a81548160ff021916908315150217905550612b8c613447565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c5e5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c6857600090505b60008115612e3e57601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ccb57506000600f54115b15612d0057612cf96103e8612ceb600f548861355190919063ffffffff16565b61356790919063ffffffff16565b9050612e1a565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d5b57506000600e54115b15612e1957600060105443612d70919061416b565b1415612da657612d9f6103e8612d916103848861355190919063ffffffff16565b61356790919063ffffffff16565b9050612e18565b600360105443612db6919061416b565b11612deb57612de46103e8612dd66102b28861355190919063ffffffff16565b61356790919063ffffffff16565b9050612e17565b612e146103e8612e06600e548861355190919063ffffffff16565b61356790919063ffffffff16565b90505b5b5b5b6000811115612e2f57612e2e8730836131c6565b5b8085612e3b919061416b565b94505b612e498787876131c6565b505050505b505050565b6000600267ffffffffffffffff811115612e7057612e6f6143ca565b5b604051908082528060200260200182016040528015612e9e5781602001602082028036833780820191505090505b5090503081600081518110612eb657612eb561439b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f5857600080fd5b505afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f9091906136bb565b81600181518110612fa457612fa361439b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061300b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612176565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161306f959493929190613f38565b600060405180830381600087803b15801561308957600080fd5b505af115801561309d573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161322d90613e7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329d90613d3d565b60405180910390fd5b6132b183838361357d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332e90613dbd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133ca919061408a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161342e9190613f1d565b60405180910390a3613441848484613582565b50505050565b6000613452306111e0565b90506000811415613463575061354f565b600b54811061354d576000600b54905061347c81612e53565b6000479050600081111561350e57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636377649f826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156134f457600080fd5b505af1158015613508573d6000803e3d6000fd5b50505050505b7fe9f689eb4d290dd3a40869ea626055ee4a55d40f20286208d04ef55f39254cff8282600160405161354293929190613f92565b60405180910390a150505b505b565b6000818361355f9190614111565b905092915050565b6000818361357591906140e0565b905092915050565b505050565b505050565b600061359a61359584614009565b613fe4565b905080838252602082019050828560208602820111156135bd576135bc6143fe565b5b60005b858110156135ed57816135d388826135f7565b8452602084019350602083019250506001810190506135c0565b5050509392505050565b60008135905061360681614827565b92915050565b60008151905061361b81614827565b92915050565b600082601f830112613636576136356143f9565b5b8135613646848260208601613587565b91505092915050565b60008135905061365e8161483e565b92915050565b60008135905061367381614855565b92915050565b60008151905061368881614855565b92915050565b6000602082840312156136a4576136a3614408565b5b60006136b2848285016135f7565b91505092915050565b6000602082840312156136d1576136d0614408565b5b60006136df8482850161360c565b91505092915050565b600080604083850312156136ff576136fe614408565b5b600061370d858286016135f7565b925050602061371e858286016135f7565b9150509250929050565b60008060006060848603121561374157613740614408565b5b600061374f868287016135f7565b9350506020613760868287016135f7565b925050604061377186828701613664565b9150509250925092565b6000806040838503121561379257613791614408565b5b60006137a0858286016135f7565b92505060206137b18582860161364f565b9150509250929050565b600080604083850312156137d2576137d1614408565b5b60006137e0858286016135f7565b92505060206137f185828601613664565b9150509250929050565b60006020828403121561381157613810614408565b5b600082013567ffffffffffffffff81111561382f5761382e614403565b5b61383b84828501613621565b91505092915050565b60006020828403121561385a57613859614408565b5b60006138688482850161364f565b91505092915050565b60006020828403121561388757613886614408565b5b600061389584828501613664565b91505092915050565b6000806000606084860312156138b7576138b6614408565b5b60006138c586828701613679565b93505060206138d686828701613679565b92505060406138e786828701613679565b9150509250925092565b60006138fd8383613909565b60208301905092915050565b6139128161419f565b82525050565b6139218161419f565b82525050565b600061393282614045565b61393c8185614068565b935061394783614035565b8060005b8381101561397857815161395f88826138f1565b975061396a8361405b565b92505060018101905061394b565b5085935050505092915050565b61398e816141b1565b82525050565b61399d816141f4565b82525050565b6139ac81614206565b82525050565b6139bb81614218565b82525050565b60006139cc82614050565b6139d68185614079565b93506139e681856020860161424e565b6139ef8161440d565b840191505092915050565b6000613a07602383614079565b9150613a128261441e565b604082019050919050565b6000613a2a602683614079565b9150613a358261446d565b604082019050919050565b6000613a4d602283614079565b9150613a58826144bc565b604082019050919050565b6000613a70603983614079565b9150613a7b8261450b565b604082019050919050565b6000613a93602683614079565b9150613a9e8261455a565b604082019050919050565b6000613ab6603683614079565b9150613ac1826145a9565b604082019050919050565b6000613ad9603583614079565b9150613ae4826145f8565b604082019050919050565b6000613afc602883614079565b9150613b0782614647565b604082019050919050565b6000613b1f602083614079565b9150613b2a82614696565b602082019050919050565b6000613b42601b83614079565b9150613b4d826146bf565b602082019050919050565b6000613b65602583614079565b9150613b70826146e8565b604082019050919050565b6000613b88602483614079565b9150613b9382614737565b604082019050919050565b6000613bab601383614079565b9150613bb682614786565b602082019050919050565b6000613bce602583614079565b9150613bd9826147af565b604082019050919050565b6000613bf1600b83614079565b9150613bfc826147fe565b602082019050919050565b613c10816141dd565b82525050565b613c1f816141e7565b82525050565b6000602082019050613c3a6000830184613918565b92915050565b6000604082019050613c556000830185613918565b613c626020830184613918565b9392505050565b600060c082019050613c7e6000830189613918565b613c8b6020830188613c07565b613c9860408301876139b2565b613ca560608301866139b2565b613cb26080830185613918565b613cbf60a0830184613c07565b979650505050505050565b6000602082019050613cdf6000830184613985565b92915050565b6000602082019050613cfa6000830184613994565b92915050565b6000602082019050613d1560008301846139a3565b92915050565b60006020820190508181036000830152613d3581846139c1565b905092915050565b60006020820190508181036000830152613d56816139fa565b9050919050565b60006020820190508181036000830152613d7681613a1d565b9050919050565b60006020820190508181036000830152613d9681613a40565b9050919050565b60006020820190508181036000830152613db681613a63565b9050919050565b60006020820190508181036000830152613dd681613a86565b9050919050565b60006020820190508181036000830152613df681613aa9565b9050919050565b60006020820190508181036000830152613e1681613acc565b9050919050565b60006020820190508181036000830152613e3681613aef565b9050919050565b60006020820190508181036000830152613e5681613b12565b9050919050565b60006020820190508181036000830152613e7681613b35565b9050919050565b60006020820190508181036000830152613e9681613b58565b9050919050565b60006020820190508181036000830152613eb681613b7b565b9050919050565b60006020820190508181036000830152613ed681613b9e565b9050919050565b60006020820190508181036000830152613ef681613bc1565b9050919050565b60006020820190508181036000830152613f1681613be4565b9050919050565b6000602082019050613f326000830184613c07565b92915050565b600060a082019050613f4d6000830188613c07565b613f5a60208301876139b2565b8181036040830152613f6c8186613927565b9050613f7b6060830185613918565b613f886080830184613c07565b9695505050505050565b6000606082019050613fa76000830186613c07565b613fb46020830185613c07565b613fc16040830184613985565b949350505050565b6000602082019050613fde6000830184613c16565b92915050565b6000613fee613fff565b9050613ffa82826142b3565b919050565b6000604051905090565b600067ffffffffffffffff821115614024576140236143ca565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614095826141dd565b91506140a0836141dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140d5576140d461430e565b5b828201905092915050565b60006140eb826141dd565b91506140f6836141dd565b9250826141065761410561433d565b5b828204905092915050565b600061411c826141dd565b9150614127836141dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141605761415f61430e565b5b828202905092915050565b6000614176826141dd565b9150614181836141dd565b9250828210156141945761419361430e565b5b828203905092915050565b60006141aa826141bd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006141ff8261422a565b9050919050565b60006142118261422a565b9050919050565b6000614223826141dd565b9050919050565b60006142358261423c565b9050919050565b6000614247826141bd565b9050919050565b60005b8381101561426c578082015181840152602081019050614251565b8381111561427b576000848401525b50505050565b6000600282049050600182168061429957607f821691505b602082108114156142ad576142ac61436c565b5b50919050565b6142bc8261440d565b810181811067ffffffffffffffff821117156142db576142da6143ca565b5b80604052505050565b60006142ef826141e7565b915060ff8214156143035761430261430e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206973206e6f7420656e61626c6564207965742e0000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6148308161419f565b811461483b57600080fd5b50565b614847816141b1565b811461485257600080fd5b50565b61485e816141dd565b811461486957600080fd5b5056fea2646970667358221220ea75f3a0c5d52633d4a5ea38f6d06311bccef292be9b5b582da98803424e72b164736f6c63430008070033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,908.49 | 1 | $2,908.49 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.