ERC-20
Overview
Max Total Supply
822,951,521,525,438.524992382 MEWTWO
Holders
8
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
26,642,030,251,111.412398649 MEWTWOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MewtwoInu
Compiler Version
v0.6.2+commit.bacdbe57
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-27 */ /** * Website: https://mewtwoinu.com/ * Twitter: https://twitter.com/InuMewtwo * Telegram: https://t.me/MewtwoInu (Verification needed to join) */ pragma solidity >=0.6.2; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ 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); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also ested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function geUnlockTime() public view returns (uint256) { return _lockTime; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = now + time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner when _lockTime is exceeds function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(now > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } contract MewtwoInu is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; mapping (address => bool) private _isBlackListedBot; address[] private _blackListedBots; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1000000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBurnTotal; string private _name = 'Mewtwo Inu'; string private _symbol = 'MEWTWO'; uint8 private _decimals = 9; uint256 private _taxFee = 8; uint256 private _burnFee = 0; uint256 private _maxTxAmount = 1000000000000000e9; constructor () public { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function totalBurn() public view returns (uint256) { return _tBurnTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.'); require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function addBotToBlackList(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not blacklist Uniswap router.'); require(!_isBlackListedBot[account], "Account is already blacklisted"); _isBlackListedBot[account] = true; _blackListedBots.push(account); } function removeBotFromBlackList(address account) external onlyOwner() { require(_isBlackListedBot[account], "Account is not blacklisted"); for (uint256 i = 0; i < _blackListedBots.length; i++) { if (_blackListedBots[i] == account) { _blackListedBots[i] = _blackListedBots[_blackListedBots.length - 1]; _isBlackListedBot[account] = false; _blackListedBots.pop(); break; } } } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!_isBlackListedBot[recipient], "You have no power here!"); require(!_isBlackListedBot[msg.sender], "You have no power here!"); require(!_isBlackListedBot[sender], "You have no power here!"); if(sender != owner() && recipient != owner()) require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private { _rTotal = _rTotal.sub(rFee).sub(rBurn); _tFeeTotal = _tFeeTotal.add(tFee); _tBurnTotal = _tBurnTotal.add(tBurn); _tTotal = _tTotal.sub(tBurn); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getTValues(tAmount, _taxFee, _burnFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tBurn, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 burnFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tBurn = tAmount.mul(burnFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn); return (tTransferAmount, tFee, tBurn); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rBurn = tBurn.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getTaxFee() private view returns(uint256) { return _taxFee; } function _getMaxTxAmount() private view returns(uint256) { return _maxTxAmount; } function _setTaxFee(uint256 taxFee) external onlyOwner() { require(taxFee >= _taxFee && taxFee <= 10, 'taxFee can only be increased and max is 10'); _taxFee = taxFee; } function _setBurnFee(uint256 burnFee) external onlyOwner() { require(burnFee >= _burnFee && burnFee <= 10, 'burnFee can only be increased and max is 10'); _burnFee = burnFee; } function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount >= 100000000000e9 , 'maxTxAmount should be greater than 100000000000e9'); _maxTxAmount = maxTxAmount; } }
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":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":"uint256","name":"burnFee","type":"uint256"}],"name":"_setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBotToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBotFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
69d3c21bcecceda1000000600a90815569085afffa6ff50bffffff19600b5560c06040526080819052694d657774776f20496e7560b01b60a09081526200004a91600e9190620001ac565b50604080518082019091526006808252654d455754574f60d01b60209092019182526200007a91600f91620001ac565b506010805460ff191660091790556008601155600060125569d3c21bcecceda1000000601355348015620000ad57600080fd5b506000620000c36001600160e01b03620001a716565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b5460036000620001276001600160e01b03620001a716565b6001600160a01b03168152602081019190915260400160002055620001546001600160e01b03620001a716565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a36200024e565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ef57805160ff19168380011785556200021f565b828001600101855582156200021f579182015b828111156200021f57825182559160200191906001019062000202565b506200022d92915062000231565b5090565b620001a991905b808211156200022d576000815560010162000238565b61277b806200025e6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e1461054f578063f2cc0c181461057d578063f2fde38b146105a3578063f84354f1146105c9576101da565b8063a9059cbb146104d8578063b6c5232414610504578063cba0e9961461050c578063dd46706414610532576101da565b80638da5cb5b116100de5780638da5cb5b1461047857806395d89b411461049c578063a457c2d7146104a4578063a69df4b5146104d0576101da565b806370a0823114610424578063715018a61461044a5780637ded4d6a14610452576101da565b8063313ce5671161017c5780633c9f861d1161014b5780633c9f861d146103b45780634303443d146103bc5780634549b039146103e25780635880b87314610407576101da565b8063313ce56714610330578063395093511461034e5780633b6b19611461037a5780633bd5d17314610397576101da565b806318160ddd116101b857806318160ddd146102b65780631bbae6e0146102be57806323b872dd146102dd5780632d83811914610313576101da565b806306fdde03146101df578063095ea7b31461025c57806313114a9d1461029c575b600080fd5b6101e76105ef565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610685565b604080519115158252519081900360200190f35b6102a46106a3565b60408051918252519081900360200190f35b6102a46106a9565b6102db600480360360208110156102d457600080fd5b50356106af565b005b610288600480360360608110156102f357600080fd5b506001600160a01b03813581169160208101359091169060400135610754565b6102a46004803603602081101561032957600080fd5b50356107e1565b610338610849565b6040805160ff9092168252519081900360200190f35b6102886004803603604081101561036457600080fd5b506001600160a01b038135169060200135610852565b6102db6004803603602081101561039057600080fd5b50356108a6565b6102db600480360360208110156103ad57600080fd5b5035610951565b6102a4610a37565b6102db600480360360208110156103d257600080fd5b50356001600160a01b0316610a3d565b6102a4600480360360408110156103f857600080fd5b50803590602001351515610bc5565b6102db6004803603602081101561041d57600080fd5b5035610c57565b6102a46004803603602081101561043a57600080fd5b50356001600160a01b0316610d02565b6102db610d64565b6102db6004803603602081101561046857600080fd5b50356001600160a01b0316610df4565b610480610fac565b604080516001600160a01b039092168252519081900360200190f35b6101e7610fbb565b610288600480360360408110156104ba57600080fd5b506001600160a01b03813516906020013561101c565b6102db61108a565b610288600480360360408110156104ee57600080fd5b506001600160a01b038135169060200135611178565b6102a461118c565b6102886004803603602081101561052257600080fd5b50356001600160a01b0316611192565b6102db6004803603602081101561054857600080fd5b50356111b0565b6102a46004803603604081101561056557600080fd5b506001600160a01b038135811691602001351661124e565b6102db6004803603602081101561059357600080fd5b50356001600160a01b0316611279565b6102db600480360360208110156105b957600080fd5b50356001600160a01b031661145b565b6102db600480360360208110156105df57600080fd5b50356001600160a01b0316611541565b600e8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067b5780601f106106505761010080835404028352916020019161067b565b820191906000526020600020905b81548152906001019060200180831161065e57829003601f168201915b5050505050905090565b60006106996106926116d7565b84846116db565b5060015b92915050565b600c5490565b600a5490565b6106b76116d7565b6000546001600160a01b03908116911614610707576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b68056bc75e2d6310000081101561074f5760405162461bcd60e51b81526004018080602001828103825260318152602001806124716031913960400191505060405180910390fd5b601355565b60006107618484846117c7565b6107d78461076d6116d7565b6107d285604051806060016040528060288152602001612587602891396001600160a01b038a166000908152600560205260408120906107ab6116d7565b6001600160a01b03168152602081019190915260400160002054919063ffffffff611ba016565b6116db565b5060019392505050565b6000600b548211156108245760405162461bcd60e51b815260040180806020018281038252602a8152602001806124a2602a913960400191505060405180910390fd5b600061082e611c37565b9050610840838263ffffffff611c6016565b9150505b919050565b60105460ff1690565b600061069961085f6116d7565b846107d285600560006108706116d7565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff611ca916565b6108ae6116d7565b6000546001600160a01b039081169116146108fe576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b60125481101580156109115750600a8111155b61094c5760405162461bcd60e51b815260040180806020018281038252602b815260200180612685602b913960400191505060405180910390fd5b601255565b600061095b6116d7565b6001600160a01b03811660009081526006602052604090205490915060ff16156109b65760405162461bcd60e51b815260040180806020018281038252602c8152602001806126d2602c913960400191505060405180910390fd5b60006109c183611d03565b505050506001600160a01b0384166000908152600360205260409020549192506109ed91905082611d60565b6001600160a01b038316600090815260036020526040902055600b54610a19908263ffffffff611d6016565b600b55600c54610a2f908463ffffffff611ca916565b600c55505050565b600d5490565b610a456116d7565b6000546001600160a01b03908116911614610a95576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610af15760405162461bcd60e51b81526004018080602001828103825260248152602001806126186024913960400191505060405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff1615610b5f576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c69737465640000604482015290519081900360640190fd5b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000600a54831115610c1e576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610c3d576000610c2e84611d03565b5093955061069d945050505050565b6000610c4884611d03565b5092955061069d945050505050565b610c5f6116d7565b6000546001600160a01b03908116911614610caf576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6011548110158015610cc25750600a8111155b610cfd5760405162461bcd60e51b815260040180806020018281038252602a815260200180612514602a913960400191505060405180910390fd5b601155565b6001600160a01b03811660009081526006602052604081205460ff1615610d4257506001600160a01b038116600090815260046020526040902054610844565b6001600160a01b03821660009081526003602052604090205461069d906107e1565b610d6c6116d7565b6000546001600160a01b03908116911614610dbc576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116906000805160206125cf833981519152908390a3600080546001600160a01b0319169055565b610dfc6116d7565b6000546001600160a01b03908116911614610e4c576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16610eb9576040805162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000604482015290519081900360640190fd5b60005b600954811015610fa857816001600160a01b031660098281548110610edd57fe5b6000918252602090912001546001600160a01b03161415610fa057600980546000198101908110610f0a57fe5b600091825260209091200154600980546001600160a01b039092169183908110610f3057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600890915260409020805460ff191690556009805480610f7957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610fa8565b600101610ebc565b5050565b6000546001600160a01b031690565b600f8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067b5780601f106106505761010080835404028352916020019161067b565b60006106996110296116d7565b846107d28560405180606001604052806025815260200161272160259139600560006110536116d7565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff611ba016565b6001546001600160a01b031633146110d35760405162461bcd60e51b81526004018080602001828103825260238152602001806126fe6023913960400191505060405180910390fd5b6002544211611129576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116916000805160206125cf83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006106996111856116d7565b84846117c7565b60025490565b6001600160a01b031660009081526006602052604090205460ff1690565b6111b86116d7565b6000546001600160a01b03908116911614611208576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b0384161790915516815542820160025560405181906000805160206125cf833981519152908290a350565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6112816116d7565b6000546001600160a01b039081169116146112d1576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b038216141561132d5760405162461bcd60e51b81526004018080602001828103825260228152602001806126b06022913960400191505060405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff161561139b576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260036020526040902054156113f5576001600160a01b0381166000908152600360205260409020546113db906107e1565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6114636116d7565b6000546001600160a01b039081169116146114b3576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6001600160a01b0381166114f85760405162461bcd60e51b81526004018080602001828103825260268152602001806124cc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216916000805160206125cf83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6115496116d7565b6000546001600160a01b03908116911614611599576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526006602052604090205460ff16611606576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600754811015610fa857816001600160a01b03166007828154811061162a57fe5b6000918252602090912001546001600160a01b031614156116cf5760078054600019810190811061165757fe5b600091825260209091200154600780546001600160a01b03909216918390811061167d57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556007805480610f7957fe5b600101611609565b3390565b6001600160a01b0383166117205760405162461bcd60e51b81526004018080602001828103825260248152602001806126616024913960400191505060405180910390fd5b6001600160a01b0382166117655760405162461bcd60e51b81526004018080602001828103825260228152602001806124f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661180c5760405162461bcd60e51b815260040180806020018281038252602581526020018061263c6025913960400191505060405180910390fd5b6001600160a01b0382166118515760405162461bcd60e51b815260040180806020018281038252602381526020018061244e6023913960400191505060405180910390fd5b600081116118905760405162461bcd60e51b81526004018080602001828103825260298152602001806125ef6029913960400191505060405180910390fd5b6001600160a01b03821660009081526008602052604090205460ff16156118f8576040805162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015290519081900360640190fd5b3360009081526008602052604090205460ff1615611957576040805162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015290519081900360640190fd5b6001600160a01b03831660009081526008602052604090205460ff16156119bf576040805162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015290519081900360640190fd5b6119c7610fac565b6001600160a01b0316836001600160a01b031614158015611a0157506119eb610fac565b6001600160a01b0316826001600160a01b031614155b15611a4757601354811115611a475760405162461bcd60e51b815260040180806020018281038252602881526020018061253e6028913960400191505060405180910390fd5b6001600160a01b03831660009081526006602052604090205460ff168015611a8857506001600160a01b03821660009081526006602052604090205460ff16155b15611a9d57611a98838383611da2565b611b9b565b6001600160a01b03831660009081526006602052604090205460ff16158015611ade57506001600160a01b03821660009081526006602052604090205460ff165b15611aee57611a98838383611ef4565b6001600160a01b03831660009081526006602052604090205460ff16158015611b3057506001600160a01b03821660009081526006602052604090205460ff16155b15611b4057611a98838383611fd0565b6001600160a01b03831660009081526006602052604090205460ff168015611b8057506001600160a01b03821660009081526006602052604090205460ff165b15611b9057611a9883838361203b565b611b9b838383611fd0565b505050565b60008184841115611c2f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bf4578181015183820152602001611bdc565b50505050905090810190601f168015611c215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611c446120db565b9092509050611c59828263ffffffff611c6016565b9250505090565b6000611ca283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612250565b9392505050565b600082820183811015611ca2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806000806000806000806000611d208a6011546012546122b5565b9250925092506000611d30611c37565b90506000806000611d438e878787612328565b919e509c509a509598509396509194505050505091939550919395565b6000611ca283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba0565b6000611dac611c37565b9050600080600080600080611dc088611d03565b9550955095509550955095506000611de1888361239090919063ffffffff16565b6001600160a01b038c16600090815260046020526040902054909150611e0d908a63ffffffff611d6016565b6001600160a01b038c16600090815260046020908152604080832093909355600390522054611e42908863ffffffff611d6016565b6001600160a01b03808d1660009081526003602052604080822093909355908c1681522054611e77908763ffffffff611ca916565b6001600160a01b038b16600090815260036020526040902055611e9c858285856123e9565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000611efe611c37565b9050600080600080600080611f1288611d03565b9550955095509550955095506000611f33888361239090919063ffffffff16565b6001600160a01b038c16600090815260036020526040902054909150611f5f908863ffffffff611d6016565b6001600160a01b03808d16600090815260036020908152604080832094909455918d16815260049091522054611f9b908563ffffffff611ca916565b6001600160a01b038b16600090815260046020908152604080832093909355600390522054611e77908763ffffffff611ca916565b6000611fda611c37565b9050600080600080600080611fee88611d03565b955095509550955095509550600061200f888361239090919063ffffffff16565b6001600160a01b038c16600090815260036020526040902054909150611e42908863ffffffff611d6016565b6000612045611c37565b905060008060008060008061205988611d03565b955095509550955095509550600061207a888361239090919063ffffffff16565b6001600160a01b038c166000908152600460205260409020549091506120a6908a63ffffffff611d6016565b6001600160a01b038c16600090815260046020908152604080832093909355600390522054611f5f908863ffffffff611d6016565b600b54600a546000918291825b6007548110156122185782600360006007848154811061210457fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612169575081600460006007848154811061214257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561218057600b54600a549450945050505061224c565b6121c6600360006007848154811061219457fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849063ffffffff611d6016565b925061220e60046000600784815481106121dc57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839063ffffffff611d6016565b91506001016120e8565b50600a54600b5461222e9163ffffffff611c6016565b82101561224657600b54600a5493509350505061224c565b90925090505b9091565b6000818361229f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611bf4578181015183820152602001611bdc565b5060008385816122ab57fe5b0495945050505050565b60008080806122db60646122cf898963ffffffff61239016565b9063ffffffff611c6016565b905060006122f460646122cf8a8963ffffffff61239016565b905060006123188261230c8b8663ffffffff611d6016565b9063ffffffff611d6016565b9992985090965090945050505050565b600080808061233d888663ffffffff61239016565b90506000612351888763ffffffff61239016565b90506000612365888863ffffffff61239016565b9050600061237d8261230c868663ffffffff611d6016565b939b939a50919850919650505050505050565b60008261239f5750600061069d565b828202828482816123ac57fe5b0414611ca25760405162461bcd60e51b81526004018080602001828103825260218152602001806125666021913960400191505060405180910390fd5b6124028361230c86600b54611d6090919063ffffffff16565b600b55600c54612418908363ffffffff611ca916565b600c55600d5461242e908263ffffffff611ca916565b600d55600a54612444908263ffffffff611d6016565b600a555050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736d61785478416d6f756e742073686f756c642062652067726561746572207468616e203130303030303030303030306539416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573737461784665652063616e206f6e6c7920626520696e6372656173656420616e64206d61782069732031305472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f757465722e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736275726e4665652063616e206f6e6c7920626520696e6372656173656420616e64206d617820697320313057652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004644290cd3b2b931b1450589343e8716b95c04df8656ad4486890294e20081b64736f6c63430006020033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806370a0823111610104578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e1461054f578063f2cc0c181461057d578063f2fde38b146105a3578063f84354f1146105c9576101da565b8063a9059cbb146104d8578063b6c5232414610504578063cba0e9961461050c578063dd46706414610532576101da565b80638da5cb5b116100de5780638da5cb5b1461047857806395d89b411461049c578063a457c2d7146104a4578063a69df4b5146104d0576101da565b806370a0823114610424578063715018a61461044a5780637ded4d6a14610452576101da565b8063313ce5671161017c5780633c9f861d1161014b5780633c9f861d146103b45780634303443d146103bc5780634549b039146103e25780635880b87314610407576101da565b8063313ce56714610330578063395093511461034e5780633b6b19611461037a5780633bd5d17314610397576101da565b806318160ddd116101b857806318160ddd146102b65780631bbae6e0146102be57806323b872dd146102dd5780632d83811914610313576101da565b806306fdde03146101df578063095ea7b31461025c57806313114a9d1461029c575b600080fd5b6101e76105ef565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610685565b604080519115158252519081900360200190f35b6102a46106a3565b60408051918252519081900360200190f35b6102a46106a9565b6102db600480360360208110156102d457600080fd5b50356106af565b005b610288600480360360608110156102f357600080fd5b506001600160a01b03813581169160208101359091169060400135610754565b6102a46004803603602081101561032957600080fd5b50356107e1565b610338610849565b6040805160ff9092168252519081900360200190f35b6102886004803603604081101561036457600080fd5b506001600160a01b038135169060200135610852565b6102db6004803603602081101561039057600080fd5b50356108a6565b6102db600480360360208110156103ad57600080fd5b5035610951565b6102a4610a37565b6102db600480360360208110156103d257600080fd5b50356001600160a01b0316610a3d565b6102a4600480360360408110156103f857600080fd5b50803590602001351515610bc5565b6102db6004803603602081101561041d57600080fd5b5035610c57565b6102a46004803603602081101561043a57600080fd5b50356001600160a01b0316610d02565b6102db610d64565b6102db6004803603602081101561046857600080fd5b50356001600160a01b0316610df4565b610480610fac565b604080516001600160a01b039092168252519081900360200190f35b6101e7610fbb565b610288600480360360408110156104ba57600080fd5b506001600160a01b03813516906020013561101c565b6102db61108a565b610288600480360360408110156104ee57600080fd5b506001600160a01b038135169060200135611178565b6102a461118c565b6102886004803603602081101561052257600080fd5b50356001600160a01b0316611192565b6102db6004803603602081101561054857600080fd5b50356111b0565b6102a46004803603604081101561056557600080fd5b506001600160a01b038135811691602001351661124e565b6102db6004803603602081101561059357600080fd5b50356001600160a01b0316611279565b6102db600480360360208110156105b957600080fd5b50356001600160a01b031661145b565b6102db600480360360208110156105df57600080fd5b50356001600160a01b0316611541565b600e8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067b5780601f106106505761010080835404028352916020019161067b565b820191906000526020600020905b81548152906001019060200180831161065e57829003601f168201915b5050505050905090565b60006106996106926116d7565b84846116db565b5060015b92915050565b600c5490565b600a5490565b6106b76116d7565b6000546001600160a01b03908116911614610707576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b68056bc75e2d6310000081101561074f5760405162461bcd60e51b81526004018080602001828103825260318152602001806124716031913960400191505060405180910390fd5b601355565b60006107618484846117c7565b6107d78461076d6116d7565b6107d285604051806060016040528060288152602001612587602891396001600160a01b038a166000908152600560205260408120906107ab6116d7565b6001600160a01b03168152602081019190915260400160002054919063ffffffff611ba016565b6116db565b5060019392505050565b6000600b548211156108245760405162461bcd60e51b815260040180806020018281038252602a8152602001806124a2602a913960400191505060405180910390fd5b600061082e611c37565b9050610840838263ffffffff611c6016565b9150505b919050565b60105460ff1690565b600061069961085f6116d7565b846107d285600560006108706116d7565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff611ca916565b6108ae6116d7565b6000546001600160a01b039081169116146108fe576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b60125481101580156109115750600a8111155b61094c5760405162461bcd60e51b815260040180806020018281038252602b815260200180612685602b913960400191505060405180910390fd5b601255565b600061095b6116d7565b6001600160a01b03811660009081526006602052604090205490915060ff16156109b65760405162461bcd60e51b815260040180806020018281038252602c8152602001806126d2602c913960400191505060405180910390fd5b60006109c183611d03565b505050506001600160a01b0384166000908152600360205260409020549192506109ed91905082611d60565b6001600160a01b038316600090815260036020526040902055600b54610a19908263ffffffff611d6016565b600b55600c54610a2f908463ffffffff611ca916565b600c55505050565b600d5490565b610a456116d7565b6000546001600160a01b03908116911614610a95576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610af15760405162461bcd60e51b81526004018080602001828103825260248152602001806126186024913960400191505060405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff1615610b5f576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c69737465640000604482015290519081900360640190fd5b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000600a54831115610c1e576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610c3d576000610c2e84611d03565b5093955061069d945050505050565b6000610c4884611d03565b5092955061069d945050505050565b610c5f6116d7565b6000546001600160a01b03908116911614610caf576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6011548110158015610cc25750600a8111155b610cfd5760405162461bcd60e51b815260040180806020018281038252602a815260200180612514602a913960400191505060405180910390fd5b601155565b6001600160a01b03811660009081526006602052604081205460ff1615610d4257506001600160a01b038116600090815260046020526040902054610844565b6001600160a01b03821660009081526003602052604090205461069d906107e1565b610d6c6116d7565b6000546001600160a01b03908116911614610dbc576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116906000805160206125cf833981519152908390a3600080546001600160a01b0319169055565b610dfc6116d7565b6000546001600160a01b03908116911614610e4c576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16610eb9576040805162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000604482015290519081900360640190fd5b60005b600954811015610fa857816001600160a01b031660098281548110610edd57fe5b6000918252602090912001546001600160a01b03161415610fa057600980546000198101908110610f0a57fe5b600091825260209091200154600980546001600160a01b039092169183908110610f3057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600890915260409020805460ff191690556009805480610f7957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610fa8565b600101610ebc565b5050565b6000546001600160a01b031690565b600f8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067b5780601f106106505761010080835404028352916020019161067b565b60006106996110296116d7565b846107d28560405180606001604052806025815260200161272160259139600560006110536116d7565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff611ba016565b6001546001600160a01b031633146110d35760405162461bcd60e51b81526004018080602001828103825260238152602001806126fe6023913960400191505060405180910390fd5b6002544211611129576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116916000805160206125cf83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006106996111856116d7565b84846117c7565b60025490565b6001600160a01b031660009081526006602052604090205460ff1690565b6111b86116d7565b6000546001600160a01b03908116911614611208576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b0384161790915516815542820160025560405181906000805160206125cf833981519152908290a350565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6112816116d7565b6000546001600160a01b039081169116146112d1576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b038216141561132d5760405162461bcd60e51b81526004018080602001828103825260228152602001806126b06022913960400191505060405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff161561139b576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260036020526040902054156113f5576001600160a01b0381166000908152600360205260409020546113db906107e1565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6114636116d7565b6000546001600160a01b039081169116146114b3576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6001600160a01b0381166114f85760405162461bcd60e51b81526004018080602001828103825260268152602001806124cc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216916000805160206125cf83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6115496116d7565b6000546001600160a01b03908116911614611599576040805162461bcd60e51b815260206004820181905260248201526000805160206125af833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526006602052604090205460ff16611606576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600754811015610fa857816001600160a01b03166007828154811061162a57fe5b6000918252602090912001546001600160a01b031614156116cf5760078054600019810190811061165757fe5b600091825260209091200154600780546001600160a01b03909216918390811061167d57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556007805480610f7957fe5b600101611609565b3390565b6001600160a01b0383166117205760405162461bcd60e51b81526004018080602001828103825260248152602001806126616024913960400191505060405180910390fd5b6001600160a01b0382166117655760405162461bcd60e51b81526004018080602001828103825260228152602001806124f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661180c5760405162461bcd60e51b815260040180806020018281038252602581526020018061263c6025913960400191505060405180910390fd5b6001600160a01b0382166118515760405162461bcd60e51b815260040180806020018281038252602381526020018061244e6023913960400191505060405180910390fd5b600081116118905760405162461bcd60e51b81526004018080602001828103825260298152602001806125ef6029913960400191505060405180910390fd5b6001600160a01b03821660009081526008602052604090205460ff16156118f8576040805162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015290519081900360640190fd5b3360009081526008602052604090205460ff1615611957576040805162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015290519081900360640190fd5b6001600160a01b03831660009081526008602052604090205460ff16156119bf576040805162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b604482015290519081900360640190fd5b6119c7610fac565b6001600160a01b0316836001600160a01b031614158015611a0157506119eb610fac565b6001600160a01b0316826001600160a01b031614155b15611a4757601354811115611a475760405162461bcd60e51b815260040180806020018281038252602881526020018061253e6028913960400191505060405180910390fd5b6001600160a01b03831660009081526006602052604090205460ff168015611a8857506001600160a01b03821660009081526006602052604090205460ff16155b15611a9d57611a98838383611da2565b611b9b565b6001600160a01b03831660009081526006602052604090205460ff16158015611ade57506001600160a01b03821660009081526006602052604090205460ff165b15611aee57611a98838383611ef4565b6001600160a01b03831660009081526006602052604090205460ff16158015611b3057506001600160a01b03821660009081526006602052604090205460ff16155b15611b4057611a98838383611fd0565b6001600160a01b03831660009081526006602052604090205460ff168015611b8057506001600160a01b03821660009081526006602052604090205460ff165b15611b9057611a9883838361203b565b611b9b838383611fd0565b505050565b60008184841115611c2f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bf4578181015183820152602001611bdc565b50505050905090810190601f168015611c215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611c446120db565b9092509050611c59828263ffffffff611c6016565b9250505090565b6000611ca283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612250565b9392505050565b600082820183811015611ca2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806000806000806000806000611d208a6011546012546122b5565b9250925092506000611d30611c37565b90506000806000611d438e878787612328565b919e509c509a509598509396509194505050505091939550919395565b6000611ca283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba0565b6000611dac611c37565b9050600080600080600080611dc088611d03565b9550955095509550955095506000611de1888361239090919063ffffffff16565b6001600160a01b038c16600090815260046020526040902054909150611e0d908a63ffffffff611d6016565b6001600160a01b038c16600090815260046020908152604080832093909355600390522054611e42908863ffffffff611d6016565b6001600160a01b03808d1660009081526003602052604080822093909355908c1681522054611e77908763ffffffff611ca916565b6001600160a01b038b16600090815260036020526040902055611e9c858285856123e9565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000611efe611c37565b9050600080600080600080611f1288611d03565b9550955095509550955095506000611f33888361239090919063ffffffff16565b6001600160a01b038c16600090815260036020526040902054909150611f5f908863ffffffff611d6016565b6001600160a01b03808d16600090815260036020908152604080832094909455918d16815260049091522054611f9b908563ffffffff611ca916565b6001600160a01b038b16600090815260046020908152604080832093909355600390522054611e77908763ffffffff611ca916565b6000611fda611c37565b9050600080600080600080611fee88611d03565b955095509550955095509550600061200f888361239090919063ffffffff16565b6001600160a01b038c16600090815260036020526040902054909150611e42908863ffffffff611d6016565b6000612045611c37565b905060008060008060008061205988611d03565b955095509550955095509550600061207a888361239090919063ffffffff16565b6001600160a01b038c166000908152600460205260409020549091506120a6908a63ffffffff611d6016565b6001600160a01b038c16600090815260046020908152604080832093909355600390522054611f5f908863ffffffff611d6016565b600b54600a546000918291825b6007548110156122185782600360006007848154811061210457fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612169575081600460006007848154811061214257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561218057600b54600a549450945050505061224c565b6121c6600360006007848154811061219457fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849063ffffffff611d6016565b925061220e60046000600784815481106121dc57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839063ffffffff611d6016565b91506001016120e8565b50600a54600b5461222e9163ffffffff611c6016565b82101561224657600b54600a5493509350505061224c565b90925090505b9091565b6000818361229f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611bf4578181015183820152602001611bdc565b5060008385816122ab57fe5b0495945050505050565b60008080806122db60646122cf898963ffffffff61239016565b9063ffffffff611c6016565b905060006122f460646122cf8a8963ffffffff61239016565b905060006123188261230c8b8663ffffffff611d6016565b9063ffffffff611d6016565b9992985090965090945050505050565b600080808061233d888663ffffffff61239016565b90506000612351888763ffffffff61239016565b90506000612365888863ffffffff61239016565b9050600061237d8261230c868663ffffffff611d6016565b939b939a50919850919650505050505050565b60008261239f5750600061069d565b828202828482816123ac57fe5b0414611ca25760405162461bcd60e51b81526004018080602001828103825260218152602001806125666021913960400191505060405180910390fd5b6124028361230c86600b54611d6090919063ffffffff16565b600b55600c54612418908363ffffffff611ca916565b600c55600d5461242e908263ffffffff611ca916565b600d55600a54612444908263ffffffff611d6016565b600a555050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736d61785478416d6f756e742073686f756c642062652067726561746572207468616e203130303030303030303030306539416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573737461784665652063616e206f6e6c7920626520696e6372656173656420616e64206d61782069732031305472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f757465722e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736275726e4665652063616e206f6e6c7920626520696e6372656173656420616e64206d617820697320313057652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004644290cd3b2b931b1450589343e8716b95c04df8656ad4486890294e20081b64736f6c63430006020033
Deployed Bytecode Sourcemap
17266:13618:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17266:13618:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18381:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18381:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19293:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19293:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20404:87;;;:::i;:::-;;;;;;;;;;;;;;;;18658:95;;;:::i;30666:215::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30666:215:0;;:::i;:::-;;19462:313;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19462:313:0;;;;;;;;;;;;;;;;;:::i;21428:253::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21428:253:0;;:::i;18567:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19783:218;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19783:218:0;;;;;;;;:::i;30455:199::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30455:199:0;;:::i;20599:377::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20599:377:0;;:::i;20503:88::-;;;:::i;22630:352::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22630:352:0;-1:-1:-1;;;;;22630:352:0;;:::i;20984:436::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20984:436:0;;;;;;;;;:::i;30252:191::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30252:191:0;;:::i;18761:198::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18761:198:0;-1:-1:-1;;;;;18761:198:0;;:::i;15956:148::-;;;:::i;22990:500::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22990:500:0;-1:-1:-1;;;;;22990:500:0;;:::i;15313:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;15313:79:0;;;;;;;;;;;;;;18472:87;;;:::i;20009:269::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20009:269:0;;;;;;;;:::i;16966:293::-;;;:::i;18967:167::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18967:167:0;;;;;;;;:::i;16511:89::-;;;:::i;20286:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20286:110:0;-1:-1:-1;;;;;20286:110:0;;:::i;16676:214::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16676:214:0;;:::i;19142:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19142:143:0;;;;;;;;;;:::i;21689:443::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21689:443:0;-1:-1:-1;;;;;21689:443:0;;:::i;16259:244::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16259:244:0;-1:-1:-1;;;;;16259:244:0;;:::i;22140:478::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22140:478:0;-1:-1:-1;;;;;22140:478:0;;:::i;18381:83::-;18451:5;18444:12;;;;;;;;-1:-1:-1;;18444:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18418:13;;18444:12;;18451:5;;18444:12;;18451:5;18444:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18381:83;:::o;19293:161::-;19368:4;19385:39;19394:12;:10;:12::i;:::-;19408:7;19417:6;19385:8;:39::i;:::-;-1:-1:-1;19442:4:0;19293:161;;;;;:::o;20404:87::-;20473:10;;20404:87;:::o;18658:95::-;18738:7;;18658:95;:::o;30666:215::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;30767:14:::1;30752:11;:29;;30744:92;;;;-1:-1:-1::0;;;30744:92:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30847:12;:26:::0;30666:215::o;19462:313::-;19560:4;19577:36;19587:6;19595:9;19606:6;19577:9;:36::i;:::-;19624:121;19633:6;19641:12;:10;:12::i;:::-;19655:89;19693:6;19655:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19655:19:0;;;;;;:11;:19;;;;;;19675:12;:10;:12::i;:::-;-1:-1:-1;;;;;19655:33:0;;;;;;;;;;;;-1:-1:-1;19655:33:0;;;:89;;:37;:89;:::i;:::-;19624:8;:121::i;:::-;-1:-1:-1;19763:4:0;19462:313;;;;;:::o;21428:253::-;21494:7;21533;;21522;:18;;21514:73;;;;-1:-1:-1;;;21514:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21598:19;21621:10;:8;:10::i;:::-;21598:33;-1:-1:-1;21649:24:0;:7;21598:33;21649:24;:11;:24;:::i;:::-;21642:31;;;21428:253;;;;:::o;18567:83::-;18633:9;;;;18567:83;:::o;19783:218::-;19871:4;19888:83;19897:12;:10;:12::i;:::-;19911:7;19920:50;19959:10;19920:11;:25;19932:12;:10;:12::i;:::-;-1:-1:-1;;;;;19920:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;19920:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;30455:199::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;30544:8:::1;;30533:7;:19;;:36;;;;;30567:2;30556:7;:13;;30533:36;30525:92;;;;-1:-1:-1::0;;;30525:92:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30628:8;:18:::0;30455:199::o;20599:377::-;20651:14;20668:12;:10;:12::i;:::-;-1:-1:-1;;;;;20700:19:0;;;;;;:11;:19;;;;;;20651:29;;-1:-1:-1;20700:19:0;;20699:20;20691:77;;;;-1:-1:-1;;;20691:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20780:15;20804:19;20815:7;20804:10;:19::i;:::-;-1:-1:-1;;;;;;;;;20852:15:0;;;;;;:7;:15;;;;;;20779:44;;-1:-1:-1;20852:28:0;;:15;-1:-1:-1;20779:44:0;20852:19;:28::i;:::-;-1:-1:-1;;;;;20834:15:0;;;;;;:7;:15;;;;;:46;20901:7;;:20;;20913:7;20901:20;:11;:20;:::i;:::-;20891:7;:30;20945:10;;:23;;20960:7;20945:23;:14;:23;:::i;:::-;20932:10;:36;-1:-1:-1;;;20599:377:0:o;20503:88::-;20572:11;;20503:88;:::o;22630:352::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;22725:42:::1;-1:-1:-1::0;;;;;22714:53:0;::::1;;;22706:102;;;;-1:-1:-1::0;;;22706:102:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22828:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;22827:27;22819:70;;;::::0;;-1:-1:-1;;;22819:70:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;22900:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;22900:33:0::1;22929:4;22900:33:::0;;::::1;::::0;;;22944:16:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;22944:30:0;;;;::::1;::::0;;-1:-1:-1;;;;;;22944:30:0::1;::::0;;::::1;::::0;;22630:352::o;20984:436::-;21074:7;21113;;21102;:18;;21094:62;;;;;-1:-1:-1;;;21094:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21172:17;21167:246;;21207:15;21231:19;21242:7;21231:10;:19::i;:::-;-1:-1:-1;21206:44:0;;-1:-1:-1;21265:14:0;;-1:-1:-1;;;;;21265:14:0;21167:246;21314:23;21345:19;21356:7;21345:10;:19::i;:::-;-1:-1:-1;21312:52:0;;-1:-1:-1;21379:22:0;;-1:-1:-1;;;;;21379:22:0;30252:191;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;30338:7:::1;;30328:6;:17;;:33;;;;;30359:2;30349:6;:12;;30328:33;30320:88;;;;-1:-1:-1::0;;;30320:88:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30419:7;:16:::0;30252:191::o;18761:198::-;-1:-1:-1;;;;;18851:20:0;;18827:7;18851:20;;;:11;:20;;;;;;;;18847:49;;;-1:-1:-1;;;;;;18880:16:0;;;;;;:7;:16;;;;;;18873:23;;18847:49;-1:-1:-1;;;;;18934:16:0;;;;;;:7;:16;;;;;;18914:37;;:19;:37::i;15956:148::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;16063:1:::1;16047:6:::0;;16026:40:::1;::::0;-1:-1:-1;;;;;16047:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;16026:40:0;16063:1;;16026:40:::1;16094:1;16077:19:::0;;-1:-1:-1;;;;;;16077:19:0::1;::::0;;15956:148::o;22990:500::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23079:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;23071:65;;;::::0;;-1:-1:-1;;;23071:65:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;23152:9;23147:336;23171:16;:23:::0;23167:27;::::1;23147:336;;;23243:7;-1:-1:-1::0;;;;;23220:30:0::1;:16;23237:1;23220:19;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;23220:19:0::1;:30;23216:256;;;23293:16;23310:23:::0;;-1:-1:-1;;23310:27:0;;;23293:45;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;23271:16:::1;:19:::0;;-1:-1:-1;;;;;23293:45:0;;::::1;::::0;23288:1;;23271:19;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:67:::0;;-1:-1:-1;;;;;;23271:67:0::1;-1:-1:-1::0;;;;;23271:67:0;;::::1;;::::0;;23357:26;;::::1;::::0;;:17:::1;:26:::0;;;;;;:34;;-1:-1:-1;;23357:34:0::1;::::0;;23410:16:::1;:22:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;23410:22:0;;;;;-1:-1:-1;;;;;;23410:22:0::1;::::0;;;;;23451:5:::1;;23216:256;23196:3;;23147:336;;;;22990:500:::0;:::o;15313:79::-;15351:7;15378:6;-1:-1:-1;;;;;15378:6:0;15313:79;:::o;18472:87::-;18544:7;18537:14;;;;;;;;-1:-1:-1;;18537:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18511:13;;18537:14;;18544:7;;18537:14;;18544:7;18537:14;;;;;;;;;;;;;;;;;;;;;;;;20009:269;20102:4;20119:129;20128:12;:10;:12::i;:::-;20142:7;20151:96;20190:15;20151:96;;;;;;;;;;;;;;;;;:11;:25;20163:12;:10;:12::i;:::-;-1:-1:-1;;;;;20151:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20151:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;16966:293::-;17018:14;;-1:-1:-1;;;;;17018:14:0;17036:10;17018:28;17010:76;;;;-1:-1:-1;;;17010:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17111:9;;17105:3;:15;17097:60;;;;;-1:-1:-1;;;17097:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17202:14;;;17194:6;;17173:44;;-1:-1:-1;;;;;17202:14:0;;;;17194:6;;;;-1:-1:-1;;;;;;;;;;;17173:44:0;;17237:14;;;17228:23;;-1:-1:-1;;;;;;17228:23:0;-1:-1:-1;;;;;17237:14:0;;;17228:23;;;;;;16966:293::o;18967:167::-;19045:4;19062:42;19072:12;:10;:12::i;:::-;19086:9;19097:6;19062:9;:42::i;16511:89::-;16583:9;;16511:89;:::o;20286:110::-;-1:-1:-1;;;;;20368:20:0;20344:4;20368:20;;;:11;:20;;;;;;;;;20286:110::o;16676:214::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;16757:6:::1;::::0;;;16740:23;;-1:-1:-1;;;;;;16740:23:0;;::::1;-1:-1:-1::0;;;;;16757:6:0;::::1;16740:23;::::0;;;16774:19:::1;::::0;;16816:3:::1;:10:::0;::::1;16804:9;:22:::0;16842:40:::1;::::0;16757:6;;-1:-1:-1;;;;;;;;;;;16842:40:0;16757:6;;16842:40:::1;16676:214:::0;:::o;19142:143::-;-1:-1:-1;;;;;19250:18:0;;;19223:7;19250:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19142:143::o;21689:443::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;21781:42:::1;-1:-1:-1::0;;;;;21770:53:0;::::1;;;21762:100;;;;-1:-1:-1::0;;;21762:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;21882:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;21881:21;21873:61;;;::::0;;-1:-1:-1;;;21873:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;21948:16:0;::::1;21967:1;21948:16:::0;;;:7:::1;:16;::::0;;;;;:20;21945:108:::1;;-1:-1:-1::0;;;;;22024:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22004:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;21985:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;21945:108:::1;-1:-1:-1::0;;;;;22063:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22063:27:0::1;22086:4;22063:27:::0;;::::1;::::0;;;22101:9:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;22101::0;;;;::::1;::::0;;-1:-1:-1;;;;;;22101:23:0::1;::::0;;::::1;::::0;;21689:443::o;16259:244::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16348:22:0;::::1;16340:73;;;;-1:-1:-1::0;;;16340:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16450:6;::::0;;16429:38:::1;::::0;-1:-1:-1;;;;;16429:38:0;;::::1;::::0;16450:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;16429:38:0;::::1;16478:6;:17:::0;;-1:-1:-1;;;;;;16478:17:0::1;-1:-1:-1::0;;;;;16478:17:0;;;::::1;::::0;;;::::1;::::0;;16259:244::o;22140:478::-;15535:12;:10;:12::i;:::-;15525:6;;-1:-1:-1;;;;;15525:6:0;;;:22;;;15517:67;;;;;-1:-1:-1;;;15517:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15517:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22221:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22213:60;;;::::0;;-1:-1:-1;;;22213:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;22289:9;22284:327;22308:9;:16:::0;22304:20;::::1;22284:327;;;22366:7;-1:-1:-1::0;;;;;22350:23:0::1;:9;22360:1;22350:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22350:12:0::1;:23;22346:254;;;22409:9;22419:16:::0;;-1:-1:-1;;22419:20:0;;;22409:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22394:9:::1;:12:::0;;-1:-1:-1;;;;;22409:31:0;;::::1;::::0;22404:1;;22394:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22394:46:0::1;-1:-1:-1::0;;;;;22394:46:0;;::::1;;::::0;;22459:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22498:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22498:28:0::1;::::0;;22545:9:::1;:15:::0;;;::::1;;;22346:254;22326:3;;22284:327;;218:106:::0;306:10;218:106;:::o;23498:337::-;-1:-1:-1;;;;;23591:19:0;;23583:68;;;;-1:-1:-1;;;23583:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23670:21:0;;23662:68;;;;-1:-1:-1;;;23662:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23743:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23795:32;;;;;;;;;;;;;;;;;23498:337;;;:::o;23843:1324::-;-1:-1:-1;;;;;23940:20:0;;23932:70;;;;-1:-1:-1;;;23932:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24021:23:0;;24013:71;;;;-1:-1:-1;;;24013:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24112:1;24103:6;:10;24095:64;;;;-1:-1:-1;;;24095:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24181:28:0;;;;;;:17;:28;;;;;;;;24180:29;24172:65;;;;;-1:-1:-1;;;24172:65:0;;;;;;;;;;;;-1:-1:-1;;;24172:65:0;;;;;;;;;;;;;;;24275:10;24257:29;;;;:17;:29;;;;;;;;24256:30;24248:66;;;;;-1:-1:-1;;;24248:66:0;;;;;;;;;;;;-1:-1:-1;;;24248:66:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24334:25:0;;;;;;:17;:25;;;;;;;;24333:26;24325:62;;;;;-1:-1:-1;;;24325:62:0;;;;;;;;;;;;-1:-1:-1;;;24325:62:0;;;;;;;;;;;;;;;24421:7;:5;:7::i;:::-;-1:-1:-1;;;;;24411:17:0;:6;-1:-1:-1;;;;;24411:17:0;;;:41;;;;;24445:7;:5;:7::i;:::-;-1:-1:-1;;;;;24432:20:0;:9;-1:-1:-1;;;;;24432:20:0;;;24411:41;24408:134;;;24485:12;;24475:6;:22;;24467:75;;;;-1:-1:-1;;;24467:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24567:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;24591:22:0;;;;;;:11;:22;;;;;;;;24590:23;24567:46;24563:597;;;24630:48;24652:6;24660:9;24671:6;24630:21;:48::i;:::-;24563:597;;;-1:-1:-1;;;;;24701:19:0;;;;;;:11;:19;;;;;;;;24700:20;:46;;;;-1:-1:-1;;;;;;24724:22:0;;;;;;:11;:22;;;;;;;;24700:46;24696:464;;;24763:46;24783:6;24791:9;24802:6;24763:19;:46::i;24696:464::-;-1:-1:-1;;;;;24832:19:0;;;;;;:11;:19;;;;;;;;24831:20;:47;;;;-1:-1:-1;;;;;;24856:22:0;;;;;;:11;:22;;;;;;;;24855:23;24831:47;24827:333;;;24895:44;24913:6;24921:9;24932:6;24895:17;:44::i;24827:333::-;-1:-1:-1;;;;;24961:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;24984:22:0;;;;;;:11;:22;;;;;;;;24961:45;24957:203;;;25023:48;25045:6;25053:9;25064:6;25023:21;:48::i;24957:203::-;25104:44;25122:6;25130:9;25141:6;25104:17;:44::i;:::-;23843:1324;;;:::o;5028:192::-;5114:7;5150:12;5142:6;;;;5134:29;;;;-1:-1:-1;;;5134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5186:5:0;;;5028:192::o;29308:163::-;29349:7;29370:15;29387;29406:19;:17;:19::i;:::-;29369:56;;-1:-1:-1;29369:56:0;-1:-1:-1;29443:20:0;29369:56;;29443:20;:11;:20;:::i;:::-;29436:27;;;;29308:163;:::o;6425:132::-;6483:7;6510:39;6514:1;6517;6510:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6503:46;6425:132;-1:-1:-1;;;6425:132:0:o;4125:181::-;4183:7;4215:5;;;4239:6;;;;4231:46;;;;;-1:-1:-1;;;4231:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;28056:468;28115:7;28124;28133;28142;28151;28160;28181:23;28206:12;28220:13;28237:39;28249:7;28258;;28267:8;;28237:11;:39::i;:::-;28180:96;;;;;;28287:19;28310:10;:8;:10::i;:::-;28287:33;;28332:15;28349:23;28374:12;28390:46;28402:7;28411:4;28417:5;28424:11;28390;:46::i;:::-;28331:105;;-1:-1:-1;28331:105:0;-1:-1:-1;28331:105:0;-1:-1:-1;28487:15:0;;-1:-1:-1;28504:4:0;;-1:-1:-1;28510:5:0;;-1:-1:-1;;;;;28056:468:0;;;;;;;:::o;4589:136::-;4647:7;4674:43;4678:1;4681;4674:43;;;;;;;;;;;;;;;;;:3;:43::i;26418:632::-;26520:19;26543:10;:8;:10::i;:::-;26520:33;;26565:15;26582:23;26607:12;26621:23;26646:12;26660:13;26677:19;26688:7;26677:10;:19::i;:::-;26564:132;;;;;;;;;;;;26707:13;26724:22;26734:11;26724:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;26775:15:0;;;;;;:7;:15;;;;;;26707:39;;-1:-1:-1;26775:28:0;;26795:7;26775:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;26757:15:0;;;;;;:7;:15;;;;;;;;:46;;;;26832:7;:15;;;;:28;;26852:7;26832:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;26814:15:0;;;;;;;:7;:15;;;;;;:46;;;;26892:18;;;;;;;:39;;26915:15;26892:39;:22;:39;:::i;:::-;-1:-1:-1;;;;;26871:18:0;;;;;;:7;:18;;;;;:60;26945:37;26957:4;26963:5;26970:4;26976:5;26945:11;:37::i;:::-;27015:9;-1:-1:-1;;;;;26998:44:0;27007:6;-1:-1:-1;;;;;26998:44:0;;27026:15;26998:44;;;;;;;;;;;;;;;;;;26418:632;;;;;;;;;;;:::o;25758:652::-;25858:19;25881:10;:8;:10::i;:::-;25858:33;;25903:15;25920:23;25945:12;25959:23;25984:12;25998:13;26015:19;26026:7;26015:10;:19::i;:::-;25902:132;;;;;;;;;;;;26045:13;26062:22;26072:11;26062:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;26113:15:0;;;;;;:7;:15;;;;;;26045:39;;-1:-1:-1;26113:28:0;;26133:7;26113:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;26095:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;26173:18;;;;;:7;:18;;;;;:39;;26196:15;26173:39;:22;:39;:::i;:::-;-1:-1:-1;;;;;26152:18:0;;;;;;:7;:18;;;;;;;;:60;;;;26244:7;:18;;;;:39;;26267:15;26244:39;:22;:39;:::i;25175:575::-;25273:19;25296:10;:8;:10::i;:::-;25273:33;;25318:15;25335:23;25360:12;25374:23;25399:12;25413:13;25430:19;25441:7;25430:10;:19::i;:::-;25317:132;;;;;;;;;;;;25460:13;25477:22;25487:11;25477:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;25528:15:0;;;;;;:7;:15;;;;;;25460:39;;-1:-1:-1;25528:28:0;;25548:7;25528:28;:19;:28;:::i;27058:708::-;27160:19;27183:10;:8;:10::i;:::-;27160:33;;27205:15;27222:23;27247:12;27261:23;27286:12;27300:13;27317:19;27328:7;27317:10;:19::i;:::-;27204:132;;;;;;;;;;;;27347:13;27364:22;27374:11;27364:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;27415:15:0;;;;;;:7;:15;;;;;;27347:39;;-1:-1:-1;27415:28:0;;27435:7;27415:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;27397:15:0;;;;;;:7;:15;;;;;;;;:46;;;;27472:7;:15;;;;:28;;27492:7;27472:28;:19;:28;:::i;29479:561::-;29576:7;;29612;;29529;;;;;29636:289;29660:9;:16;29656:20;;29636:289;;;29726:7;29702;:21;29710:9;29720:1;29710:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29710:12:0;29702:21;;;;;;;;;;;;;:31;;:66;;;29761:7;29737;:21;29745:9;29755:1;29745:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29745:12:0;29737:21;;;;;;;;;;;;;:31;29702:66;29698:97;;;29778:7;;29787;;29770:25;;;;;;;;;29698:97;29820:34;29832:7;:21;29840:9;29850:1;29840:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29840:12:0;29832:21;;;;;;;;;;;;;29820:7;;:34;:11;:34;:::i;:::-;29810:44;;29879:34;29891:7;:21;29899:9;29909:1;29899:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29899:12:0;29891:21;;;;;;;;;;;;;29879:7;;:34;:11;:34;:::i;:::-;29869:44;-1:-1:-1;29678:3:0;;29636:289;;;-1:-1:-1;29961:7:0;;29949;;:20;;;:11;:20;:::i;:::-;29939:7;:30;29935:61;;;29979:7;;29988;;29971:25;;;;;;;;29935:61;30015:7;;-1:-1:-1;30024:7:0;-1:-1:-1;29479:561:0;;;:::o;7053:278::-;7139:7;7174:12;7167:5;7159:28;;;;-1:-1:-1;;;7159:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;7159:28:0;;7198:9;7214:1;7210;:5;;;;;;;7053:278;-1:-1:-1;;;;;7053:278:0:o;28532:351::-;28625:7;;;;28678:28;28702:3;28678:19;:7;28690:6;28678:19;:11;:19;:::i;:::-;:23;:28;:23;:28;:::i;:::-;28663:43;-1:-1:-1;28717:13:0;28733:29;28758:3;28733:20;:7;28745;28733:20;:11;:20;:::i;:29::-;28717:45;-1:-1:-1;28773:23:0;28799:28;28717:45;28799:17;:7;28811:4;28799:17;:11;:17;:::i;:::-;:21;:28;:21;:28;:::i;:::-;28773:54;28863:4;;-1:-1:-1;28869:5:0;;-1:-1:-1;28532:351:0;;-1:-1:-1;;;;;28532:351:0:o;28891:409::-;29001:7;;;;29057:24;:7;29069:11;29057:24;:11;:24;:::i;:::-;29039:42;-1:-1:-1;29092:12:0;29107:21;:4;29116:11;29107:21;:8;:21;:::i;:::-;29092:36;-1:-1:-1;29139:13:0;29155:22;:5;29165:11;29155:22;:9;:22;:::i;:::-;29139:38;-1:-1:-1;29188:23:0;29214:28;29139:38;29214:17;:7;29226:4;29214:17;:11;:17;:::i;:28::-;29261:7;;;;-1:-1:-1;29287:4:0;;-1:-1:-1;28891:409:0;;-1:-1:-1;;;;;;;28891:409:0:o;5479:470::-;5537:7;5781:6;5777:47;;-1:-1:-1;5811:1:0;5804:8;;5777:47;5848:5;;;5852:1;5848;:5;:1;5872:5;;;;;:10;5864:56;;;;-1:-1:-1;;;5864:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27774:274;27882:28;27904:5;27882:17;27894:4;27882:7;;:11;;:17;;;;:::i;:28::-;27872:7;:38;27934:10;;:20;;27949:4;27934:20;:14;:20;:::i;:::-;27921:10;:33;27979:11;;:22;;27995:5;27979:22;:15;:22;:::i;:::-;27965:11;:36;28022:7;;:18;;28034:5;28022:18;:11;:18;:::i;:::-;28012:7;:28;-1:-1:-1;;;;27774:274:0:o
Swarm Source
ipfs://04644290cd3b2b931b1450589343e8716b95c04df8656ad4486890294e20081b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.