ERC-20
Overview
Max Total Supply
93,250.221073536559164539 BASED
Holders
11,999
Market
Price
$0.00 @ 0.000000 FTM
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.050126210827318985 BASEDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Based
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2021-04-23 */ // File: Based.sol // File: Based.sol // https://t.me/basedftm /* .--. . .-. . | ) | | _|_ |--: .-. .--. .-. .-.| -|-.-. .--. | .-. .--.--. | )( ) `--.(.-'( | |( ) | | | ( )| | | '--' `-'`-`--' `--'`-'`- ' `-'`-' `-`-'`-' ' ' `- basedswaps.com */ pragma solidity ^0.6.0; 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/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 tested. // 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); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; 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; } } contract Based 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; uint8 private constant _decimals = 18; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 100000 * 10 ** uint256(_decimals); uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBurnTotal; string private constant _name = 'Based'; string private constant _symbol = 'BASED'; uint256 private _taxFee = 300; uint256 private _burnFee = 300; uint private _max_tx_size = 100000 * 10 ** uint256(_decimals); 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 _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"); if(sender != owner() && recipient != owner()) require(amount <= _max_tx_size, "Transfer amount exceeds 1% of Total Supply."); 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)).div(100); uint256 tBurn = ((tAmount.mul(burnFee)).div(100)).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() public view returns(uint256) { return _taxFee; } function _getBurnFee() public view returns(uint256) { return _burnFee; } function _getMaxTxAmount() public view returns(uint256){ return _max_tx_size; } function _setTaxFee(uint256 taxFee) external onlyOwner() { _taxFee = taxFee; } // function _setTXLimit(uint256 txLimit) external onlyOwner() { // _max_tx_size = txLimit; // } function _setBurnFee(uint256 burnFee) external onlyOwner() { _burnFee = burnFee; } }
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":[],"name":"_getBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"_setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","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":[{"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]
Contract Creation Code
608060405269152d02c7e14af6800000600681905569085afffa6ff50bffffff1960075561012c600a819055600b55600c5534801561003d57600080fd5b506000610048610115565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754600160006100a1610115565b6001600160a01b031681526020810191909152604001600020556100c3610115565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3610119565b3390565b611d8e80620001296000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80635880b873116100f9578063a9059cbb11610097578063f2cc0c1811610071578063f2cc0c18146104c6578063f2fde38b146104ec578063f7a9159114610512578063f84354f11461051a576101a9565b8063a9059cbb14610446578063cba0e99614610472578063dd62ed3e14610498576101a9565b8063715018a6116100d3578063715018a6146103e65780638da5cb5b146103ee57806395d89b4114610412578063a457c2d71461041a576101a9565b80635880b8731461039b5780636a39d32c146103b857806370a08231146103c0576101a9565b80632fbff030116101665780633b6b1961116101405780633b6b1961146103325780633bd5d173146103515780633c9f861d1461036e5780634549b03914610376576101a9565b80632fbff030146102e0578063313ce567146102e85780633950935114610306576101a9565b806306fdde03146101ae578063095ea7b31461022b57806313114a9d1461026b57806318160ddd1461028557806323b872dd1461028d5780632d838119146102c3575b600080fd5b6101b6610540565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b03813516906020013561055f565b604080519115158252519081900360200190f35b61027361057d565b60408051918252519081900360200190f35b610273610583565b610257600480360360608110156102a357600080fd5b506001600160a01b03813581169160208101359091169060400135610589565b610273600480360360208110156102d957600080fd5b5035610610565b610273610672565b6102f0610678565b6040805160ff9092168252519081900360200190f35b6102576004803603604081101561031c57600080fd5b506001600160a01b03813516906020013561067d565b61034f6004803603602081101561034857600080fd5b50356106cb565b005b61034f6004803603602081101561036757600080fd5b5035610728565b610273610802565b6102736004803603604081101561038c57600080fd5b50803590602001351515610808565b61034f600480360360208110156103b157600080fd5b503561089a565b6102736108f7565b610273600480360360208110156103d657600080fd5b50356001600160a01b03166108fd565b61034f61095f565b6103f6610a01565b604080516001600160a01b039092168252519081900360200190f35b6101b6610a10565b6102576004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a2f565b6102576004803603604081101561045c57600080fd5b506001600160a01b038135169060200135610a97565b6102576004803603602081101561048857600080fd5b50356001600160a01b0316610aab565b610273600480360360408110156104ae57600080fd5b506001600160a01b0381358116916020013516610ac9565b61034f600480360360208110156104dc57600080fd5b50356001600160a01b0316610af4565b61034f6004803603602081101561050257600080fd5b50356001600160a01b0316610cd6565b610273610dce565b61034f6004803603602081101561053057600080fd5b50356001600160a01b0316610dd4565b60408051808201909152600581526410985cd95960da1b602082015290565b600061057361056c610f95565b8484610f99565b5060015b92915050565b60085490565b60065490565b6000610596848484611085565b610606846105a2610f95565b61060185604051806060016040528060288152602001611c2c602891396001600160a01b038a166000908152600360205260408120906105e0610f95565b6001600160a01b03168152602081019190915260400160002054919061132f565b610f99565b5060019392505050565b60006007548211156106535760405162461bcd60e51b815260040180806020018281038252602a815260200180611b6e602a913960400191505060405180910390fd5b600061065d6113c6565b905061066983826113e9565b9150505b919050565b600a5490565b601290565b600061057361068a610f95565b84610601856003600061069b610f95565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611432565b6106d3610f95565b6000546001600160a01b03908116911614610723576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b600b55565b6000610732610f95565b6001600160a01b03811660009081526004602052604090205490915060ff161561078d5760405162461bcd60e51b815260040180806020018281038252602c815260200180611d08602c913960400191505060405180910390fd5b60006107988361148c565b505050506001600160a01b0384166000908152600160205260409020549192506107c4919050826114e9565b6001600160a01b0383166000908152600160205260409020556007546107ea90826114e9565b6007556008546107fa9084611432565b600855505050565b60095490565b6000600654831115610861576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b816108805760006108718461148c565b50939550610577945050505050565b600061088b8461148c565b50929550610577945050505050565b6108a2610f95565b6000546001600160a01b039081169116146108f2576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b600a55565b600b5490565b6001600160a01b03811660009081526004602052604081205460ff161561093d57506001600160a01b03811660009081526002602052604090205461066d565b6001600160a01b03821660009081526001602052604090205461057790610610565b610967610f95565b6000546001600160a01b039081169116146109b7576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b604080518082019091526005815264109054d15160da1b602082015290565b6000610573610a3c610f95565b8461060185604051806060016040528060258152602001611d346025913960036000610a66610f95565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061132f565b6000610573610aa4610f95565b8484611085565b6001600160a01b031660009081526004602052604090205460ff1690565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610afc610f95565b6000546001600160a01b03908116911614610b4c576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610ba85760405162461bcd60e51b8152600401808060200182810382526022815260200180611ce66022913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff1615610c16576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526001602052604090205415610c70576001600160a01b038116600090815260016020526040902054610c5690610610565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b610cde610f95565b6000546001600160a01b03908116911614610d2e576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b6001600160a01b038116610d735760405162461bcd60e51b8152600401808060200182810382526026815260200180611b986026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600c5490565b610ddc610f95565b6000546001600160a01b03908116911614610e2c576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff16610e99576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600554811015610f9157816001600160a01b031660058281548110610ebd57fe5b6000918252602090912001546001600160a01b03161415610f8957600580546000198101908110610eea57fe5b600091825260209091200154600580546001600160a01b039092169183908110610f1057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610f6257fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610f91565b600101610e9c565b5050565b3390565b6001600160a01b038316610fde5760405162461bcd60e51b8152600401808060200182810382526024815260200180611cc26024913960400191505060405180910390fd5b6001600160a01b0382166110235760405162461bcd60e51b8152600401808060200182810382526022815260200180611bbe6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166110ca5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c9d6025913960400191505060405180910390fd5b6001600160a01b03821661110f5760405162461bcd60e51b8152600401808060200182810382526023815260200180611b4b6023913960400191505060405180910390fd5b6000811161114e5760405162461bcd60e51b8152600401808060200182810382526029815260200180611c746029913960400191505060405180910390fd5b611156610a01565b6001600160a01b0316836001600160a01b031614158015611190575061117a610a01565b6001600160a01b0316826001600160a01b031614155b156111d657600c548111156111d65760405162461bcd60e51b815260040180806020018281038252602b815260200180611be0602b913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460ff16801561121757506001600160a01b03821660009081526004602052604090205460ff16155b1561122c5761122783838361152b565b61132a565b6001600160a01b03831660009081526004602052604090205460ff1615801561126d57506001600160a01b03821660009081526004602052604090205460ff165b1561127d5761122783838361166b565b6001600160a01b03831660009081526004602052604090205460ff161580156112bf57506001600160a01b03821660009081526004602052604090205460ff16155b156112cf57611227838383611735565b6001600160a01b03831660009081526004602052604090205460ff16801561130f57506001600160a01b03821660009081526004602052604090205460ff165b1561131f5761122783838361179a565b61132a838383611735565b505050565b600081848411156113be5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138357818101518382015260200161136b565b50505050905090810190601f1680156113b05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008060006113d361182e565b90925090506113e282826113e9565b9250505090565b600061142b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611991565b9392505050565b60008282018381101561142b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006114a98a600a54600b546119f6565b92509250925060006114b96113c6565b905060008060006114cc8e878787611a4f565b919e509c509a509598509396509194505050505091939550919395565b600061142b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061132f565b60006115356113c6565b90506000806000806000806115498861148c565b955095509550955095509550600061156a8883611a9f90919063ffffffff16565b6001600160a01b038c16600090815260026020526040902054909150611590908a6114e9565b6001600160a01b038c166000908152600260209081526040808320939093556001905220546115bf90886114e9565b6001600160a01b03808d1660009081526001602052604080822093909355908c16815220546115ee9087611432565b6001600160a01b038b1660009081526001602052604090205561161385828585611af8565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006116756113c6565b90506000806000806000806116898861148c565b95509550955095509550955060006116aa8883611a9f90919063ffffffff16565b6001600160a01b038c166000908152600160205260409020549091506116d090886114e9565b6001600160a01b03808d16600090815260016020908152604080832094909455918d168152600290915220546117069085611432565b6001600160a01b038b166000908152600260209081526040808320939093556001905220546115ee9087611432565b600061173f6113c6565b90506000806000806000806117538861148c565b95509550955095509550955060006117748883611a9f90919063ffffffff16565b6001600160a01b038c166000908152600160205260409020549091506115bf90886114e9565b60006117a46113c6565b90506000806000806000806117b88861148c565b95509550955095509550955060006117d98883611a9f90919063ffffffff16565b6001600160a01b038c166000908152600260205260409020549091506117ff908a6114e9565b6001600160a01b038c166000908152600260209081526040808320939093556001905220546116d090886114e9565b6007546006546000918291825b60055481101561195f5782600160006005848154811061185757fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806118bc575081600260006005848154811061189557fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156118d3576007546006549450945050505061198d565b61191360016000600584815481106118e757fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906114e9565b9250611955600260006005848154811061192957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906114e9565b915060010161183b565b5060065460075461196f916113e9565b8210156119875760075460065493509350505061198d565b90925090505b9091565b600081836119e05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561138357818101518382015260200161136b565b5060008385816119ec57fe5b0495945050505050565b6000808080611a126064611a0c81818b8b611a9f565b906113e9565b90506000611a276064611a0c81818c8b611a9f565b90506000611a3f82611a398b866114e9565b906114e9565b9992985090965090945050505050565b6000808080611a5e8886611a9f565b90506000611a6c8887611a9f565b90506000611a7a8888611a9f565b90506000611a8c82611a3986866114e9565b939b939a50919850919650505050505050565b600082611aae57506000610577565b82820282848281611abb57fe5b041461142b5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c0b6021913960400191505060405180910390fd5b611b1183611a39866007546114e990919063ffffffff16565b600755600854611b219083611432565b600855600954611b319082611432565b600955600654611b4190826114e9565b6006555050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e742065786365656473203125206f6620546f74616c20537570706c792e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c4ba7284d262abdda5f46664287ae0466b8ba81f975e2480ac5011f1c1d0908364736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80635880b873116100f9578063a9059cbb11610097578063f2cc0c1811610071578063f2cc0c18146104c6578063f2fde38b146104ec578063f7a9159114610512578063f84354f11461051a576101a9565b8063a9059cbb14610446578063cba0e99614610472578063dd62ed3e14610498576101a9565b8063715018a6116100d3578063715018a6146103e65780638da5cb5b146103ee57806395d89b4114610412578063a457c2d71461041a576101a9565b80635880b8731461039b5780636a39d32c146103b857806370a08231146103c0576101a9565b80632fbff030116101665780633b6b1961116101405780633b6b1961146103325780633bd5d173146103515780633c9f861d1461036e5780634549b03914610376576101a9565b80632fbff030146102e0578063313ce567146102e85780633950935114610306576101a9565b806306fdde03146101ae578063095ea7b31461022b57806313114a9d1461026b57806318160ddd1461028557806323b872dd1461028d5780632d838119146102c3575b600080fd5b6101b6610540565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b03813516906020013561055f565b604080519115158252519081900360200190f35b61027361057d565b60408051918252519081900360200190f35b610273610583565b610257600480360360608110156102a357600080fd5b506001600160a01b03813581169160208101359091169060400135610589565b610273600480360360208110156102d957600080fd5b5035610610565b610273610672565b6102f0610678565b6040805160ff9092168252519081900360200190f35b6102576004803603604081101561031c57600080fd5b506001600160a01b03813516906020013561067d565b61034f6004803603602081101561034857600080fd5b50356106cb565b005b61034f6004803603602081101561036757600080fd5b5035610728565b610273610802565b6102736004803603604081101561038c57600080fd5b50803590602001351515610808565b61034f600480360360208110156103b157600080fd5b503561089a565b6102736108f7565b610273600480360360208110156103d657600080fd5b50356001600160a01b03166108fd565b61034f61095f565b6103f6610a01565b604080516001600160a01b039092168252519081900360200190f35b6101b6610a10565b6102576004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a2f565b6102576004803603604081101561045c57600080fd5b506001600160a01b038135169060200135610a97565b6102576004803603602081101561048857600080fd5b50356001600160a01b0316610aab565b610273600480360360408110156104ae57600080fd5b506001600160a01b0381358116916020013516610ac9565b61034f600480360360208110156104dc57600080fd5b50356001600160a01b0316610af4565b61034f6004803603602081101561050257600080fd5b50356001600160a01b0316610cd6565b610273610dce565b61034f6004803603602081101561053057600080fd5b50356001600160a01b0316610dd4565b60408051808201909152600581526410985cd95960da1b602082015290565b600061057361056c610f95565b8484610f99565b5060015b92915050565b60085490565b60065490565b6000610596848484611085565b610606846105a2610f95565b61060185604051806060016040528060288152602001611c2c602891396001600160a01b038a166000908152600360205260408120906105e0610f95565b6001600160a01b03168152602081019190915260400160002054919061132f565b610f99565b5060019392505050565b60006007548211156106535760405162461bcd60e51b815260040180806020018281038252602a815260200180611b6e602a913960400191505060405180910390fd5b600061065d6113c6565b905061066983826113e9565b9150505b919050565b600a5490565b601290565b600061057361068a610f95565b84610601856003600061069b610f95565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611432565b6106d3610f95565b6000546001600160a01b03908116911614610723576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b600b55565b6000610732610f95565b6001600160a01b03811660009081526004602052604090205490915060ff161561078d5760405162461bcd60e51b815260040180806020018281038252602c815260200180611d08602c913960400191505060405180910390fd5b60006107988361148c565b505050506001600160a01b0384166000908152600160205260409020549192506107c4919050826114e9565b6001600160a01b0383166000908152600160205260409020556007546107ea90826114e9565b6007556008546107fa9084611432565b600855505050565b60095490565b6000600654831115610861576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b816108805760006108718461148c565b50939550610577945050505050565b600061088b8461148c565b50929550610577945050505050565b6108a2610f95565b6000546001600160a01b039081169116146108f2576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b600a55565b600b5490565b6001600160a01b03811660009081526004602052604081205460ff161561093d57506001600160a01b03811660009081526002602052604090205461066d565b6001600160a01b03821660009081526001602052604090205461057790610610565b610967610f95565b6000546001600160a01b039081169116146109b7576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b604080518082019091526005815264109054d15160da1b602082015290565b6000610573610a3c610f95565b8461060185604051806060016040528060258152602001611d346025913960036000610a66610f95565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061132f565b6000610573610aa4610f95565b8484611085565b6001600160a01b031660009081526004602052604090205460ff1690565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610afc610f95565b6000546001600160a01b03908116911614610b4c576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610ba85760405162461bcd60e51b8152600401808060200182810382526022815260200180611ce66022913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff1615610c16576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526001602052604090205415610c70576001600160a01b038116600090815260016020526040902054610c5690610610565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b610cde610f95565b6000546001600160a01b03908116911614610d2e576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b6001600160a01b038116610d735760405162461bcd60e51b8152600401808060200182810382526026815260200180611b986026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600c5490565b610ddc610f95565b6000546001600160a01b03908116911614610e2c576040805162461bcd60e51b81526020600482018190526024820152600080516020611c54833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205460ff16610e99576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600554811015610f9157816001600160a01b031660058281548110610ebd57fe5b6000918252602090912001546001600160a01b03161415610f8957600580546000198101908110610eea57fe5b600091825260209091200154600580546001600160a01b039092169183908110610f1057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610f6257fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610f91565b600101610e9c565b5050565b3390565b6001600160a01b038316610fde5760405162461bcd60e51b8152600401808060200182810382526024815260200180611cc26024913960400191505060405180910390fd5b6001600160a01b0382166110235760405162461bcd60e51b8152600401808060200182810382526022815260200180611bbe6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166110ca5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c9d6025913960400191505060405180910390fd5b6001600160a01b03821661110f5760405162461bcd60e51b8152600401808060200182810382526023815260200180611b4b6023913960400191505060405180910390fd5b6000811161114e5760405162461bcd60e51b8152600401808060200182810382526029815260200180611c746029913960400191505060405180910390fd5b611156610a01565b6001600160a01b0316836001600160a01b031614158015611190575061117a610a01565b6001600160a01b0316826001600160a01b031614155b156111d657600c548111156111d65760405162461bcd60e51b815260040180806020018281038252602b815260200180611be0602b913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460ff16801561121757506001600160a01b03821660009081526004602052604090205460ff16155b1561122c5761122783838361152b565b61132a565b6001600160a01b03831660009081526004602052604090205460ff1615801561126d57506001600160a01b03821660009081526004602052604090205460ff165b1561127d5761122783838361166b565b6001600160a01b03831660009081526004602052604090205460ff161580156112bf57506001600160a01b03821660009081526004602052604090205460ff16155b156112cf57611227838383611735565b6001600160a01b03831660009081526004602052604090205460ff16801561130f57506001600160a01b03821660009081526004602052604090205460ff165b1561131f5761122783838361179a565b61132a838383611735565b505050565b600081848411156113be5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138357818101518382015260200161136b565b50505050905090810190601f1680156113b05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008060006113d361182e565b90925090506113e282826113e9565b9250505090565b600061142b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611991565b9392505050565b60008282018381101561142b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006114a98a600a54600b546119f6565b92509250925060006114b96113c6565b905060008060006114cc8e878787611a4f565b919e509c509a509598509396509194505050505091939550919395565b600061142b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061132f565b60006115356113c6565b90506000806000806000806115498861148c565b955095509550955095509550600061156a8883611a9f90919063ffffffff16565b6001600160a01b038c16600090815260026020526040902054909150611590908a6114e9565b6001600160a01b038c166000908152600260209081526040808320939093556001905220546115bf90886114e9565b6001600160a01b03808d1660009081526001602052604080822093909355908c16815220546115ee9087611432565b6001600160a01b038b1660009081526001602052604090205561161385828585611af8565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006116756113c6565b90506000806000806000806116898861148c565b95509550955095509550955060006116aa8883611a9f90919063ffffffff16565b6001600160a01b038c166000908152600160205260409020549091506116d090886114e9565b6001600160a01b03808d16600090815260016020908152604080832094909455918d168152600290915220546117069085611432565b6001600160a01b038b166000908152600260209081526040808320939093556001905220546115ee9087611432565b600061173f6113c6565b90506000806000806000806117538861148c565b95509550955095509550955060006117748883611a9f90919063ffffffff16565b6001600160a01b038c166000908152600160205260409020549091506115bf90886114e9565b60006117a46113c6565b90506000806000806000806117b88861148c565b95509550955095509550955060006117d98883611a9f90919063ffffffff16565b6001600160a01b038c166000908152600260205260409020549091506117ff908a6114e9565b6001600160a01b038c166000908152600260209081526040808320939093556001905220546116d090886114e9565b6007546006546000918291825b60055481101561195f5782600160006005848154811061185757fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806118bc575081600260006005848154811061189557fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156118d3576007546006549450945050505061198d565b61191360016000600584815481106118e757fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906114e9565b9250611955600260006005848154811061192957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906114e9565b915060010161183b565b5060065460075461196f916113e9565b8210156119875760075460065493509350505061198d565b90925090505b9091565b600081836119e05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561138357818101518382015260200161136b565b5060008385816119ec57fe5b0495945050505050565b6000808080611a126064611a0c81818b8b611a9f565b906113e9565b90506000611a276064611a0c81818c8b611a9f565b90506000611a3f82611a398b866114e9565b906114e9565b9992985090965090945050505050565b6000808080611a5e8886611a9f565b90506000611a6c8887611a9f565b90506000611a7a8888611a9f565b90506000611a8c82611a3986866114e9565b939b939a50919850919650505050505050565b600082611aae57506000610577565b82820282848281611abb57fe5b041461142b5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c0b6021913960400191505060405180910390fd5b611b1183611a39866007546114e990919063ffffffff16565b600755600854611b219083611432565b600855600954611b319082611432565b600955600654611b4190826114e9565b6006555050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e742065786365656473203125206f6620546f74616c20537570706c792e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c4ba7284d262abdda5f46664287ae0466b8ba81f975e2480ac5011f1c1d0908364736f6c634300060c0033
Deployed Bytecode Sourcemap
17407:12276:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18462:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19374:161;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19374:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20485:87;;;:::i;:::-;;;;;;;;;;;;;;;;18739:95;;;:::i;19543:313::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19543:313:0;;;;;;;;;;;;;;;;;:::i;21509:253::-;;;;;;;;;;;;;;;;-1:-1:-1;21509:253:0;;:::i;29062:84::-;;;:::i;18648:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19864:218;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19864:218:0;;;;;;;;:::i;29582:96::-;;;;;;;;;;;;;;;;-1:-1:-1;29582:96:0;;:::i;:::-;;20680:377;;;;;;;;;;;;;;;;-1:-1:-1;20680:377:0;;:::i;20584:88::-;;;:::i;21065:436::-;;;;;;;;;;;;;;;;-1:-1:-1;21065:436:0;;;;;;;;;:::i;29357:92::-;;;;;;;;;;;;;;;;-1:-1:-1;29357:92:0;;:::i;29158:86::-;;;:::i;18842:198::-;;;;;;;;;;;;;;;;-1:-1:-1;18842:198:0;-1:-1:-1;;;;;18842:198:0;;:::i;16853:148::-;;;:::i;16211:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;16211:79:0;;;;;;;;;;;;;;18553:87;;;:::i;20090:269::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20090:269:0;;;;;;;;:::i;19048:167::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19048:167:0;;;;;;;;:::i;20367:110::-;;;;;;;;;;;;;;;;-1:-1:-1;20367:110:0;-1:-1:-1;;;;;20367:110:0;;:::i;19223:143::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19223:143:0;;;;;;;;;;:::i;21770:443::-;;;;;;;;;;;;;;;;-1:-1:-1;21770:443:0;-1:-1:-1;;;;;21770:443:0;;:::i;17156:244::-;;;;;;;;;;;;;;;;-1:-1:-1;17156:244:0;-1:-1:-1;;;;;17156:244:0;;:::i;29252:93::-;;;:::i;22221:478::-;;;;;;;;;;;;;;;;-1:-1:-1;22221:478:0;-1:-1:-1;;;;;22221:478:0;;:::i;18462:83::-;18532:5;;;;;;;;;;;;-1:-1:-1;;;18532:5:0;;;;18462:83;:::o;19374:161::-;19449:4;19466:39;19475:12;:10;:12::i;:::-;19489:7;19498:6;19466:8;:39::i;:::-;-1:-1:-1;19523:4:0;19374:161;;;;;:::o;20485:87::-;20554:10;;20485:87;:::o;18739:95::-;18819:7;;18739:95;:::o;19543:313::-;19641:4;19658:36;19668:6;19676:9;19687:6;19658:9;:36::i;:::-;19705:121;19714:6;19722:12;:10;:12::i;:::-;19736:89;19774:6;19736:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19736:19:0;;;;;;:11;:19;;;;;;19756:12;:10;:12::i;:::-;-1:-1:-1;;;;;19736:33:0;;;;;;;;;;;;-1:-1:-1;19736:33:0;;;:89;:37;:89::i;:::-;19705:8;:121::i;:::-;-1:-1:-1;19844:4:0;19543:313;;;;;:::o;21509:253::-;21575:7;21614;;21603;:18;;21595:73;;;;-1:-1:-1;;;21595:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21679:19;21702:10;:8;:10::i;:::-;21679:33;-1:-1:-1;21730:24:0;:7;21679:33;21730:11;:24::i;:::-;21723:31;;;21509:253;;;;:::o;29062:84::-;29131:7;;29062:84;:::o;18648:83::-;17831:2;18648:83;:::o;19864:218::-;19952:4;19969:83;19978:12;:10;:12::i;:::-;19992:7;20001:50;20040:10;20001:11;:25;20013:12;:10;:12::i;:::-;-1:-1:-1;;;;;20001:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20001:25:0;;;:34;;;;;;;;;;;:38;:50::i;29582:96::-;16433:12;:10;:12::i;:::-;16423:6;;-1:-1:-1;;;;;16423:6:0;;;:22;;;16415:67;;;;;-1:-1:-1;;;16415:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16415:67:0;;;;;;;;;;;;;;;29652:8:::1;:18:::0;29582:96::o;20680:377::-;20732:14;20749:12;:10;:12::i;:::-;-1:-1:-1;;;;;20781:19:0;;;;;;:11;:19;;;;;;20732:29;;-1:-1:-1;20781:19:0;;20780:20;20772:77;;;;-1:-1:-1;;;20772:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20861:15;20885:19;20896:7;20885:10;:19::i;:::-;-1:-1:-1;;;;;;;;;20933:15:0;;;;;;:7;:15;;;;;;20860:44;;-1:-1:-1;20933:28:0;;:15;-1:-1:-1;20860:44:0;20933:19;:28::i;:::-;-1:-1:-1;;;;;20915:15:0;;;;;;:7;:15;;;;;:46;20982:7;;:20;;20994:7;20982:11;:20::i;:::-;20972:7;:30;21026:10;;:23;;21041:7;21026:14;:23::i;:::-;21013:10;:36;-1:-1:-1;;;20680:377:0:o;20584:88::-;20653:11;;20584:88;:::o;21065:436::-;21155:7;21194;;21183;:18;;21175:62;;;;;-1:-1:-1;;;21175:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21253:17;21248:246;;21288:15;21312:19;21323:7;21312:10;:19::i;:::-;-1:-1:-1;21287:44:0;;-1:-1:-1;21346:14:0;;-1:-1:-1;;;;;21346:14:0;21248:246;21395:23;21426:19;21437:7;21426:10;:19::i;:::-;-1:-1:-1;21393:52:0;;-1:-1:-1;21460:22:0;;-1:-1:-1;;;;;21460:22:0;29357:92;16433:12;:10;:12::i;:::-;16423:6;;-1:-1:-1;;;;;16423:6:0;;;:22;;;16415:67;;;;;-1:-1:-1;;;16415:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16415:67:0;;;;;;;;;;;;;;;29425:7:::1;:16:::0;29357:92::o;29158:86::-;29228:8;;29158:86;:::o;18842:198::-;-1:-1:-1;;;;;18932:20:0;;18908:7;18932:20;;;:11;:20;;;;;;;;18928:49;;;-1:-1:-1;;;;;;18961:16:0;;;;;;:7;:16;;;;;;18954:23;;18928:49;-1:-1:-1;;;;;19015:16:0;;;;;;:7;:16;;;;;;18995:37;;:19;:37::i;16853:148::-;16433:12;:10;:12::i;:::-;16423:6;;-1:-1:-1;;;;;16423:6:0;;;:22;;;16415:67;;;;;-1:-1:-1;;;16415:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16415:67:0;;;;;;;;;;;;;;;16960:1:::1;16944:6:::0;;16923:40:::1;::::0;-1:-1:-1;;;;;16944:6:0;;::::1;::::0;16923:40:::1;::::0;16960:1;;16923:40:::1;16991:1;16974:19:::0;;-1:-1:-1;;;;;;16974:19:0::1;::::0;;16853:148::o;16211:79::-;16249:7;16276:6;-1:-1:-1;;;;;16276:6:0;16211:79;:::o;18553:87::-;18625:7;;;;;;;;;;;;-1:-1:-1;;;18625:7:0;;;;18553:87;:::o;20090:269::-;20183:4;20200:129;20209:12;:10;:12::i;:::-;20223:7;20232:96;20271:15;20232:96;;;;;;;;;;;;;;;;;:11;:25;20244:12;:10;:12::i;:::-;-1:-1:-1;;;;;20232:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20232:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;19048:167::-;19126:4;19143:42;19153:12;:10;:12::i;:::-;19167:9;19178:6;19143:9;:42::i;20367:110::-;-1:-1:-1;;;;;20449:20:0;20425:4;20449:20;;;:11;:20;;;;;;;;;20367:110::o;19223:143::-;-1:-1:-1;;;;;19331:18:0;;;19304:7;19331:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19223:143::o;21770:443::-;16433:12;:10;:12::i;:::-;16423:6;;-1:-1:-1;;;;;16423:6:0;;;:22;;;16415:67;;;;;-1:-1:-1;;;16415:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16415:67:0;;;;;;;;;;;;;;;21862:42:::1;-1:-1:-1::0;;;;;21851:53:0;::::1;;;21843:100;;;;-1:-1:-1::0;;;21843:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;21963:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;21962:21;21954:61;;;::::0;;-1:-1:-1;;;21954:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;22029:16:0;::::1;22048:1;22029:16:::0;;;:7:::1;:16;::::0;;;;;:20;22026:108:::1;;-1:-1:-1::0;;;;;22105:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22085:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22066:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22026:108:::1;-1:-1:-1::0;;;;;22144:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22144:27:0::1;22167:4;22144:27:::0;;::::1;::::0;;;22182:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22182:23:0::1;::::0;;::::1;::::0;;21770:443::o;17156:244::-;16433:12;:10;:12::i;:::-;16423:6;;-1:-1:-1;;;;;16423:6:0;;;:22;;;16415:67;;;;;-1:-1:-1;;;16415:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16415:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17245:22:0;::::1;17237:73;;;;-1:-1:-1::0;;;17237:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17347:6;::::0;;17326:38:::1;::::0;-1:-1:-1;;;;;17326:38:0;;::::1;::::0;17347:6;::::1;::::0;17326:38:::1;::::0;::::1;17375:6;:17:::0;;-1:-1:-1;;;;;;17375:17:0::1;-1:-1:-1::0;;;;;17375:17:0;;;::::1;::::0;;;::::1;::::0;;17156:244::o;29252:93::-;29325:12;;29252:93;:::o;22221:478::-;16433:12;:10;:12::i;:::-;16423:6;;-1:-1:-1;;;;;16423:6:0;;;:22;;;16415:67;;;;;-1:-1:-1;;;16415:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16415:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22302:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22294:60;;;::::0;;-1:-1:-1;;;22294:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;22370:9;22365:327;22389:9;:16:::0;22385:20;::::1;22365:327;;;22447:7;-1:-1:-1::0;;;;;22431:23:0::1;:9;22441:1;22431:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22431:12:0::1;:23;22427:254;;;22490:9;22500:16:::0;;-1:-1:-1;;22500:20:0;;;22490:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22475:9:::1;:12:::0;;-1:-1:-1;;;;;22490:31:0;;::::1;::::0;22485:1;;22475:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22475:46:0::1;-1:-1:-1::0;;;;;22475:46:0;;::::1;;::::0;;22540:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22579:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22579:28:0::1;::::0;;22626:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;22626:15:0;;;;;-1:-1:-1;;;;;;22626:15:0::1;::::0;;;;;22660:5:::1;;22427:254;22407:3;;22365:327;;;;22221:478:::0;:::o;663:106::-;751:10;663:106;:::o;22707:337::-;-1:-1:-1;;;;;22800:19:0;;22792:68;;;;-1:-1:-1;;;22792:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22879:21:0;;22871:68;;;;-1:-1:-1;;;22871:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22952:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23004:32;;;;;;;;;;;;;;;;;22707:337;;;:::o;23052:1099::-;-1:-1:-1;;;;;23149:20:0;;23141:70;;;;-1:-1:-1;;;23141:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23230:23:0;;23222:71;;;;-1:-1:-1;;;23222:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23321:1;23312:6;:10;23304:64;;;;-1:-1:-1;;;23304:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23402:7;:5;:7::i;:::-;-1:-1:-1;;;;;23392:17:0;:6;-1:-1:-1;;;;;23392:17:0;;;:41;;;;;23426:7;:5;:7::i;:::-;-1:-1:-1;;;;;23413:20:0;:9;-1:-1:-1;;;;;23413:20:0;;;23392:41;23389:137;;;23466:12;;23456:6;:22;;23448:78;;;;-1:-1:-1;;;23448:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23551:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;23575:22:0;;;;;;:11;:22;;;;;;;;23574:23;23551:46;23547:597;;;23614:48;23636:6;23644:9;23655:6;23614:21;:48::i;:::-;23547:597;;;-1:-1:-1;;;;;23685:19:0;;;;;;:11;:19;;;;;;;;23684:20;:46;;;;-1:-1:-1;;;;;;23708:22:0;;;;;;:11;:22;;;;;;;;23684:46;23680:464;;;23747:46;23767:6;23775:9;23786:6;23747:19;:46::i;23680:464::-;-1:-1:-1;;;;;23816:19:0;;;;;;:11;:19;;;;;;;;23815:20;:47;;;;-1:-1:-1;;;;;;23840:22:0;;;;;;:11;:22;;;;;;;;23839:23;23815:47;23811:333;;;23879:44;23897:6;23905:9;23916:6;23879:17;:44::i;23811:333::-;-1:-1:-1;;;;;23945:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;23968:22:0;;;;;;:11;:22;;;;;;;;23945:45;23941:203;;;24007:48;24029:6;24037:9;24048:6;24007:21;:48::i;23941:203::-;24088:44;24106:6;24114:9;24125:6;24088:17;:44::i;:::-;23052:1099;;;:::o;5487:192::-;5573:7;5609:12;5601:6;;;;5593:29;;;;-1:-1:-1;;;5593:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5645:5:0;;;5487:192::o;28318:163::-;28359:7;28380:15;28397;28416:19;:17;:19::i;:::-;28379:56;;-1:-1:-1;28379:56:0;-1:-1:-1;28453:20:0;28379:56;;28453:11;:20::i;:::-;28446:27;;;;28318:163;:::o;6885:132::-;6943:7;6970:39;6974:1;6977;6970:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6963:46;6885:132;-1:-1:-1;;;6885:132:0:o;4584:181::-;4642:7;4674:5;;;4698:6;;;;4690:46;;;;;-1:-1:-1;;;4690:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;27040:468;27099:7;27108;27117;27126;27135;27144;27165:23;27190:12;27204:13;27221:39;27233:7;27242;;27251:8;;27221:11;:39::i;:::-;27164:96;;;;;;27271:19;27294:10;:8;:10::i;:::-;27271:33;;27316:15;27333:23;27358:12;27374:46;27386:7;27395:4;27401:5;27408:11;27374;:46::i;:::-;27315:105;;-1:-1:-1;27315:105:0;-1:-1:-1;27315:105:0;-1:-1:-1;27471:15:0;;-1:-1:-1;27488:4:0;;-1:-1:-1;27494:5:0;;-1:-1:-1;;;;;27040:468:0;;;;;;;:::o;5048:136::-;5106:7;5133:43;5137:1;5140;5133:43;;;;;;;;;;;;;;;;;:3;:43::i;25402:632::-;25504:19;25527:10;:8;:10::i;:::-;25504:33;;25549:15;25566:23;25591:12;25605:23;25630:12;25644:13;25661:19;25672:7;25661:10;:19::i;:::-;25548:132;;;;;;;;;;;;25691:13;25708:22;25718:11;25708:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;25759:15:0;;;;;;:7;:15;;;;;;25691:39;;-1:-1:-1;25759:28:0;;25779:7;25759:19;:28::i;:::-;-1:-1:-1;;;;;25741:15:0;;;;;;:7;:15;;;;;;;;:46;;;;25816:7;:15;;;;:28;;25836:7;25816:19;:28::i;:::-;-1:-1:-1;;;;;25798:15:0;;;;;;;:7;:15;;;;;;:46;;;;25876:18;;;;;;;:39;;25899:15;25876:22;:39::i;:::-;-1:-1:-1;;;;;25855:18:0;;;;;;:7;:18;;;;;:60;25929:37;25941:4;25947:5;25954:4;25960:5;25929:11;:37::i;:::-;25999:9;-1:-1:-1;;;;;25982:44:0;25991:6;-1:-1:-1;;;;;25982:44:0;;26010:15;25982:44;;;;;;;;;;;;;;;;;;25402:632;;;;;;;;;;;:::o;24742:652::-;24842:19;24865:10;:8;:10::i;:::-;24842:33;;24887:15;24904:23;24929:12;24943:23;24968:12;24982:13;24999:19;25010:7;24999:10;:19::i;:::-;24886:132;;;;;;;;;;;;25029:13;25046:22;25056:11;25046:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;25097:15:0;;;;;;:7;:15;;;;;;25029:39;;-1:-1:-1;25097:28:0;;25117:7;25097:19;:28::i;:::-;-1:-1:-1;;;;;25079:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;25157:18;;;;;:7;:18;;;;;:39;;25180:15;25157:22;:39::i;:::-;-1:-1:-1;;;;;25136:18:0;;;;;;:7;:18;;;;;;;;:60;;;;25228:7;:18;;;;:39;;25251:15;25228:22;:39::i;24159:575::-;24257:19;24280:10;:8;:10::i;:::-;24257:33;;24302:15;24319:23;24344:12;24358:23;24383:12;24397:13;24414:19;24425:7;24414:10;:19::i;:::-;24301:132;;;;;;;;;;;;24444:13;24461:22;24471:11;24461:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;24512:15:0;;;;;;:7;:15;;;;;;24444:39;;-1:-1:-1;24512:28:0;;24532:7;24512:19;:28::i;26042:708::-;26144:19;26167:10;:8;:10::i;:::-;26144:33;;26189:15;26206:23;26231:12;26245:23;26270:12;26284:13;26301:19;26312:7;26301:10;:19::i;:::-;26188:132;;;;;;;;;;;;26331:13;26348:22;26358:11;26348:5;:9;;:22;;;;:::i;:::-;-1:-1:-1;;;;;26399:15:0;;;;;;:7;:15;;;;;;26331:39;;-1:-1:-1;26399:28:0;;26419:7;26399:19;:28::i;:::-;-1:-1:-1;;;;;26381:15:0;;;;;;:7;:15;;;;;;;;:46;;;;26456:7;:15;;;;:28;;26476:7;26456:19;:28::i;28489:561::-;28586:7;;28622;;28539;;;;;28646:289;28670:9;:16;28666:20;;28646:289;;;28736:7;28712;:21;28720:9;28730:1;28720:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28720:12:0;28712:21;;;;;;;;;;;;;:31;;:66;;;28771:7;28747;:21;28755:9;28765:1;28755:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28755:12:0;28747:21;;;;;;;;;;;;;:31;28712:66;28708:97;;;28788:7;;28797;;28780:25;;;;;;;;;28708:97;28830:34;28842:7;:21;28850:9;28860:1;28850:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28850:12:0;28842:21;;;;;;;;;;;;;28830:7;;:11;:34::i;:::-;28820:44;;28889:34;28901:7;:21;28909:9;28919:1;28909:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28909:12:0;28901:21;;;;;;;;;;;;;28889:7;;:11;:34::i;:::-;28879:44;-1:-1:-1;28688:3:0;;28646:289;;;-1:-1:-1;28971:7:0;;28959;;:20;;:11;:20::i;:::-;28949:7;:30;28945:61;;;28989:7;;28998;;28981:25;;;;;;;;28945:61;29025:7;;-1:-1:-1;29034:7:0;-1:-1:-1;28489:561:0;;;:::o;7513:278::-;7599:7;7634:12;7627:5;7619:28;;;;-1:-1:-1;;;7619:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7658:9;7674:1;7670;:5;;;;;;;7513:278;-1:-1:-1;;;;;7513:278:0:o;27516:377::-;27609:7;;;;27662:41;27699:3;27663:30;27699:3;27663:30;27664:7;27676:6;27664:11;:19::i;:::-;27663:25;;:30::i;27662:41::-;27647:56;-1:-1:-1;27714:13:0;27730:42;27768:3;27731:31;27768:3;27731:31;27732:7;27744;27732:11;:20::i;27730:42::-;27714:58;-1:-1:-1;27783:23:0;27809:28;27714:58;27809:17;:7;27821:4;27809:11;:17::i;:::-;:21;;:28::i;:::-;27783:54;27873:4;;-1:-1:-1;27879:5:0;;-1:-1:-1;27516:377:0;;-1:-1:-1;;;;;27516:377:0:o;27901:409::-;28011:7;;;;28067:24;:7;28079:11;28067;:24::i;:::-;28049:42;-1:-1:-1;28102:12:0;28117:21;:4;28126:11;28117:8;:21::i;:::-;28102:36;-1:-1:-1;28149:13:0;28165:22;:5;28175:11;28165:9;:22::i;:::-;28149:38;-1:-1:-1;28198:23:0;28224:28;28149:38;28224:17;:7;28236:4;28224:11;:17::i;:28::-;28271:7;;;;-1:-1:-1;28297:4:0;;-1:-1:-1;27901:409:0;;-1:-1:-1;;;;;;;27901:409:0:o;5938:471::-;5996:7;6241:6;6237:47;;-1:-1:-1;6271:1:0;6264:8;;6237:47;6308:5;;;6312:1;6308;:5;:1;6332:5;;;;;:10;6324:56;;;;-1:-1:-1;;;6324:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26758:274;26866:28;26888:5;26866:17;26878:4;26866:7;;:11;;:17;;;;:::i;:28::-;26856:7;:38;26918:10;;:20;;26933:4;26918:14;:20::i;:::-;26905:10;:33;26963:11;;:22;;26979:5;26963:15;:22::i;:::-;26949:11;:36;27006:7;;:18;;27018:5;27006:11;:18::i;:::-;26996:7;:28;-1:-1:-1;;;;26758:274:0:o
Swarm Source
ipfs://c4ba7284d262abdda5f46664287ae0466b8ba81f975e2480ac5011f1c1d09083
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.