ERC-20
Overview
Max Total Supply
9,705.548800574 RefractFIN
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
139.000241184 RefractFINValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
RefractFin
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-22 */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @dev Contract Context of the ERC20 standard as defined in the EIP. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } /** * @dev Function _msgData() defines messaging standards of ERC20 tokens as defined in the EIP. */ 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 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; } } /** * @dev Contract RareFi - Declares contract for RareFi ERC-20 token * Defines methods to be used in contract */ contract RefractFin is Context, IERC20, Ownable { /** * @Libary - SafeMath for mathematical functions * @Library - Address for storing and interacting with ERC-20 addresses */ 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; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 10000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBurnTotal; uint8 private _decimals = 9; uint256 private _taxFee = 1; uint256 private _burnFee = 1; uint256 private _maxTxAmount = 10000e9; string private _name = 'https://t.me/refractfin'; string private _symbol = 'RefractFIN'; /** * Constructor - public * Creates ERC-20 token based on given parameters * Emits a transfer event */ 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 refractivesupply() public view returns (string memory) { return _name; } function refractivesupply1() public view returns (string memory) { return _name; } function refractivesupply2() public view returns (string memory) { return _name; } function refractivesupply3() public view returns (string memory) { return _name; } 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 _calculateNewRareSupply() private pure returns(uint256) { uint256 a = 100; uint256 b = 250; uint256 c = 1080; uint256 getTax1 = a * b + (c / b); return getTax1; } 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 _calculateNextRareSupply() private pure returns(uint256) { uint256 a = 100; uint256 b = 250; uint256 c = 1080; uint256 getTax1 = a * b + (c / b); return getTax1; } 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 _calculateRateToHolders() private pure returns(uint256) { uint256 a = 100; uint256 b = 250; uint256 c = 1080; uint256 getTax1 = a * b + (c / b); return getTax1; } 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 _calculateNewRareSupplyRewards() private pure returns(uint256) { uint256 a = 100; uint256 b = 250; uint256 c = 1080; uint256 getTax1 = a * b + (c / b); return getTax1; } 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 <= _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 >= 1 && taxFee <= 10, 'taxFee should be in 1 - 10'); _taxFee = taxFee; } function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount >= 100000e9 , 'maxTxAmount should be greater than 9000e9'); _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":"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":"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":"refractivesupply","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refractivesupply1","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refractivesupply2","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refractivesupply3","outputs":[{"internalType":"string","name":"","type":"string"}],"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
60806040526509184e72a000600655600654600019816200001c57fe5b06600019036007556009600a60006101000a81548160ff021916908360ff1602179055506001600b556001600c556509184e72a000600d556040518060400160405280601781526020017f68747470733a2f2f742e6d652f7265667261637466696e000000000000000000815250600e9080519060200190620000a192919062000288565b506040518060400160405280600a81526020017f5265667261637446494e00000000000000000000000000000000000000000000815250600f9080519060200190620000ef92919062000288565b50348015620000fd57600080fd5b506000620001106200028060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460016000620001c56200028060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002136200028060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a36200032e565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002cb57805160ff1916838001178555620002fc565b82800160010185558215620002fc579182015b82811115620002fb578251825591602001919060010190620002de565b5b5090506200030b91906200030f565b5090565b5b808211156200032a57600081600090555060010162000310565b5090565b613ec0806200033e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a9059cbb11610097578063e9ebe0d011610071578063e9ebe0d014610969578063f2cc0c18146109ec578063f2fde38b14610a30578063f84354f114610a74576101c4565b8063a9059cbb14610833578063cba0e99614610897578063dd62ed3e146108f1576101c4565b8063951e7e7b116100d3578063951e7e7b1461064657806395d89b41146106c9578063a457c2d71461074c578063a77b2109146107b0576101c4565b806370a08231146105b0578063715018a6146106085780638da5cb5b14610612576101c4565b8063313ce567116101665780633c9f861d116101405780633c9f861d146104935780634549b039146104b15780635880b873146104ff5780636d2605951461052d576101c4565b8063313ce567146103e057806339509351146104015780633bd5d17314610465576101c4565b806318160ddd116101a257806318160ddd146102ce5780631bbae6e0146102ec57806323b872dd1461031a5780632d8381191461039e576101c4565b806306fdde03146101c9578063095ea7b31461024c57806313114a9d146102b0575b600080fd5b6101d1610ab8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b5a565b60405180821515815260200191505060405180910390f35b6102b8610b78565b6040518082815260200191505060405180910390f35b6102d6610b82565b6040518082815260200191505060405180910390f35b6103186004803603602081101561030257600080fd5b8101908080359060200190929190505050610b8c565b005b6103866004803603606081101561033057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cbd565b60405180821515815260200191505060405180910390f35b6103ca600480360360208110156103b457600080fd5b8101908080359060200190929190505050610d96565b6040518082815260200191505060405180910390f35b6103e8610e1a565b604051808260ff16815260200191505060405180910390f35b61044d6004803603604081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e31565b60405180821515815260200191505060405180910390f35b6104916004803603602081101561047b57600080fd5b8101908080359060200190929190505050610ee4565b005b61049b611075565b6040518082815260200191505060405180910390f35b6104e9600480360360408110156104c757600080fd5b810190808035906020019092919080351515906020019092919050505061107f565b6040518082815260200191505060405180910390f35b61052b6004803603602081101561051557600080fd5b8101908080359060200190929190505050611136565b005b61053561128c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057557808201518184015260208101905061055a565b50505050905090810190601f1680156105a25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105f2600480360360208110156105c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132e565b6040518082815260200191505060405180910390f35b610610611419565b005b61061a61159f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61064e6115c8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561068e578082015181840152602081019050610673565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106d161166a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107115780820151818401526020810190506106f6565b50505050905090810190601f16801561073e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107986004803603604081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061170c565b60405180821515815260200191505060405180910390f35b6107b86117d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61087f6004803603604081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187b565b60405180821515815260200191505060405180910390f35b6108d9600480360360208110156108ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611899565b60405180821515815260200191505060405180910390f35b6109536004803603604081101561090757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ef565b6040518082815260200191505060405180910390f35b610971611976565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109b1578082015181840152602081019050610996565b50505050905090810190601f1680156109de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a2e60048036036020811015610a0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a18565b005b610a7260048036036020811015610a4657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcb565b005b610ab660048036036020811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd6565b005b6060600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b505780601f10610b2557610100808354040283529160200191610b50565b820191906000526020600020905b815481529060010190602001808311610b3357829003601f168201915b5050505050905090565b6000610b6e610b67612360565b8484612368565b6001905092915050565b6000600854905090565b6000600654905090565b610b94612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b655af3107a4000811015610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613d0c6029913960400191505060405180910390fd5b80600d8190555050565b6000610cca84848461255f565b610d8b84610cd6612360565b610d8685604051806060016040528060288152602001613d7e60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3c612360565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a8f9092919063ffffffff16565b612368565b600190509392505050565b6000600754821115610df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c9a602a913960400191505060405180910390fd5b6000610dfd612b4f565b9050610e128184612b7a90919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610eda610e3e612360565b84610ed58560036000610e4f612360565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b612368565b6001905092915050565b6000610eee612360565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e3a602c913960400191505060405180910390fd5b6000610f9e83612c4c565b50505050509050610ff781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061104f81600754612cb490919063ffffffff16565b60078190555061106a83600854612bc490919063ffffffff16565b600881905550505050565b6000600954905090565b60006006548311156110f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b8161111957600061110984612c4c565b5050505050905080915050611130565b600061112484612c4c565b50505050915050809150505b92915050565b61113e612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600181101580156112105750600a8111155b611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2031202d20313000000000000081525060200191505060405180910390fd5b80600b8190555050565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113245780601f106112f957610100808354040283529160200191611324565b820191906000526020600020905b81548152906001019060200180831161130757829003601f168201915b5050505050905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113c957600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611414565b611411600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d96565b90505b919050565b611421612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116605780601f1061163557610100808354040283529160200191611660565b820191906000526020600020905b81548152906001019060200180831161164357829003601f168201915b5050505050905090565b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117025780601f106116d757610100808354040283529160200191611702565b820191906000526020600020905b8154815290600101906020018083116116e557829003601f168201915b5050505050905090565b60006117cf611719612360565b846117ca85604051806060016040528060258152602001613e666025913960036000611743612360565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a8f9092919063ffffffff16565b612368565b6001905092915050565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118715780601f1061184657610100808354040283529160200191611871565b820191906000526020600020905b81548152906001019060200180831161185457829003601f168201915b5050505050905090565b600061188f611888612360565b848461255f565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a0e5780601f106119e357610100808354040283529160200191611a0e565b820191906000526020600020905b8154815290600101906020018083116119f157829003601f168201915b5050505050905090565b611a20612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e186022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611d0d57611cc9600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d96565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dd3612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cc46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611fde612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461209e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60058054905081101561235c578173ffffffffffffffffffffffffffffffffffffffff166005828154811061219157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561234f576005600160058054905003815481106121ed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005828154811061222557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061231557fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561235c565b8080600101915050612160565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613df46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612474576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613cea6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613dcf6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561266b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613c776023913960400191505060405180910390fd5b600081116126c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613da66029913960400191505060405180910390fd5b6126cc61159f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561273a575061270a61159f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561279b57600d5481111561279a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613d356028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561283e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128535761284e838383612cfe565b612a8a565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128f65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561290b57612906838383612f7c565b612a89565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129af5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129c4576129bf8383836131fa565b612a88565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a665750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a7b57612a768383836133e3565b612a87565b612a868383836131fa565b5b5b5b5b505050565b6000838311158290612b3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b01578082015181840152602081019050612ae6565b50505050905090810190601f168015612b2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612b5c6136f6565b91509150612b738183612b7a90919063ffffffff16565b9250505090565b6000612bbc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613987565b905092915050565b600080828401905083811015612c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000806000806000806000806000612c698a600b54600c54613a4d565b9250925092506000612c79612b4f565b90506000806000612c8c8e878787613ae3565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cf683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a8f565b905092915050565b6000612d08612b4f565b9050600080600080600080612d1c88612c4c565b9550955095509550955095506000612d3d8883613b6c90919063ffffffff16565b9050612d9189600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e2687600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ebb86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f0a85828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612f86612b4f565b9050600080600080600080612f9a88612c4c565b9550955095509550955095506000612fbb8883613b6c90919063ffffffff16565b905061300f87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130a484600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061313986600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061318885828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000613204612b4f565b905060008060008060008061321888612c4c565b95509550955095509550955060006132398883613b6c90919063ffffffff16565b905061328d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061332286600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061337185828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006133ed612b4f565b905060008060008060008061340188612c4c565b95509550955095509550955060006134228883613b6c90919063ffffffff16565b905061347689600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061350b87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135a084600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061363586600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368485828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b60058054905081101561394a5782600160006005848154811061372957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061381057508160026000600584815481106137a857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156138275760075460065494509450505050613983565b6138b0600160006005848154811061383b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612cb490919063ffffffff16565b925061393b60026000600584815481106138c657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612cb490919063ffffffff16565b9150808060010191505061370a565b50613962600654600754612b7a90919063ffffffff16565b82101561397a57600754600654935093505050613983565b81819350935050505b9091565b60008083118290613a33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139f85780820151818401526020810190506139dd565b50505050905090810190601f168015613a255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613a3f57fe5b049050809150509392505050565b600080600080613a796064613a6b888a613b6c90919063ffffffff16565b612b7a90919063ffffffff16565b90506000613aa36064613a95888b613b6c90919063ffffffff16565b612b7a90919063ffffffff16565b90506000613acc82613abe858c612cb490919063ffffffff16565b612cb490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613afc8589613b6c90919063ffffffff16565b90506000613b138689613b6c90919063ffffffff16565b90506000613b2a8789613b6c90919063ffffffff16565b90506000613b5382613b458587612cb490919063ffffffff16565b612cb490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613b7f5760009050613bec565b6000828402905082848281613b9057fe5b0414613be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d5d6021913960400191505060405180910390fd5b809150505b92915050565b613c1983613c0b86600754612cb490919063ffffffff16565b612cb490919063ffffffff16565b600781905550613c3482600854612bc490919063ffffffff16565b600881905550613c4f81600954612bc490919063ffffffff16565b600981905550613c6a81600654612cb490919063ffffffff16565b6006819055505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d61785478416d6f756e742073686f756c642062652067726561746572207468616e203930303065395472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a226205be2a9ac5c949f9067547aae08af696fffe58268ad67fd468ba5192af364736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806370a08231116100f9578063a9059cbb11610097578063e9ebe0d011610071578063e9ebe0d014610969578063f2cc0c18146109ec578063f2fde38b14610a30578063f84354f114610a74576101c4565b8063a9059cbb14610833578063cba0e99614610897578063dd62ed3e146108f1576101c4565b8063951e7e7b116100d3578063951e7e7b1461064657806395d89b41146106c9578063a457c2d71461074c578063a77b2109146107b0576101c4565b806370a08231146105b0578063715018a6146106085780638da5cb5b14610612576101c4565b8063313ce567116101665780633c9f861d116101405780633c9f861d146104935780634549b039146104b15780635880b873146104ff5780636d2605951461052d576101c4565b8063313ce567146103e057806339509351146104015780633bd5d17314610465576101c4565b806318160ddd116101a257806318160ddd146102ce5780631bbae6e0146102ec57806323b872dd1461031a5780632d8381191461039e576101c4565b806306fdde03146101c9578063095ea7b31461024c57806313114a9d146102b0575b600080fd5b6101d1610ab8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b5a565b60405180821515815260200191505060405180910390f35b6102b8610b78565b6040518082815260200191505060405180910390f35b6102d6610b82565b6040518082815260200191505060405180910390f35b6103186004803603602081101561030257600080fd5b8101908080359060200190929190505050610b8c565b005b6103866004803603606081101561033057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cbd565b60405180821515815260200191505060405180910390f35b6103ca600480360360208110156103b457600080fd5b8101908080359060200190929190505050610d96565b6040518082815260200191505060405180910390f35b6103e8610e1a565b604051808260ff16815260200191505060405180910390f35b61044d6004803603604081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e31565b60405180821515815260200191505060405180910390f35b6104916004803603602081101561047b57600080fd5b8101908080359060200190929190505050610ee4565b005b61049b611075565b6040518082815260200191505060405180910390f35b6104e9600480360360408110156104c757600080fd5b810190808035906020019092919080351515906020019092919050505061107f565b6040518082815260200191505060405180910390f35b61052b6004803603602081101561051557600080fd5b8101908080359060200190929190505050611136565b005b61053561128c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057557808201518184015260208101905061055a565b50505050905090810190601f1680156105a25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105f2600480360360208110156105c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132e565b6040518082815260200191505060405180910390f35b610610611419565b005b61061a61159f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61064e6115c8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561068e578082015181840152602081019050610673565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106d161166a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107115780820151818401526020810190506106f6565b50505050905090810190601f16801561073e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107986004803603604081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061170c565b60405180821515815260200191505060405180910390f35b6107b86117d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61087f6004803603604081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187b565b60405180821515815260200191505060405180910390f35b6108d9600480360360208110156108ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611899565b60405180821515815260200191505060405180910390f35b6109536004803603604081101561090757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ef565b6040518082815260200191505060405180910390f35b610971611976565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109b1578082015181840152602081019050610996565b50505050905090810190601f1680156109de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610a2e60048036036020811015610a0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a18565b005b610a7260048036036020811015610a4657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcb565b005b610ab660048036036020811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd6565b005b6060600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b505780601f10610b2557610100808354040283529160200191610b50565b820191906000526020600020905b815481529060010190602001808311610b3357829003601f168201915b5050505050905090565b6000610b6e610b67612360565b8484612368565b6001905092915050565b6000600854905090565b6000600654905090565b610b94612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b655af3107a4000811015610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613d0c6029913960400191505060405180910390fd5b80600d8190555050565b6000610cca84848461255f565b610d8b84610cd6612360565b610d8685604051806060016040528060288152602001613d7e60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3c612360565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a8f9092919063ffffffff16565b612368565b600190509392505050565b6000600754821115610df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c9a602a913960400191505060405180910390fd5b6000610dfd612b4f565b9050610e128184612b7a90919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610eda610e3e612360565b84610ed58560036000610e4f612360565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b612368565b6001905092915050565b6000610eee612360565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e3a602c913960400191505060405180910390fd5b6000610f9e83612c4c565b50505050509050610ff781600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061104f81600754612cb490919063ffffffff16565b60078190555061106a83600854612bc490919063ffffffff16565b600881905550505050565b6000600954905090565b60006006548311156110f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b8161111957600061110984612c4c565b5050505050905080915050611130565b600061112484612c4c565b50505050915050809150505b92915050565b61113e612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600181101580156112105750600a8111155b611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2031202d20313000000000000081525060200191505060405180910390fd5b80600b8190555050565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113245780601f106112f957610100808354040283529160200191611324565b820191906000526020600020905b81548152906001019060200180831161130757829003601f168201915b5050505050905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113c957600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611414565b611411600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d96565b90505b919050565b611421612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116605780601f1061163557610100808354040283529160200191611660565b820191906000526020600020905b81548152906001019060200180831161164357829003601f168201915b5050505050905090565b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117025780601f106116d757610100808354040283529160200191611702565b820191906000526020600020905b8154815290600101906020018083116116e557829003601f168201915b5050505050905090565b60006117cf611719612360565b846117ca85604051806060016040528060258152602001613e666025913960036000611743612360565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a8f9092919063ffffffff16565b612368565b6001905092915050565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118715780601f1061184657610100808354040283529160200191611871565b820191906000526020600020905b81548152906001019060200180831161185457829003601f168201915b5050505050905090565b600061188f611888612360565b848461255f565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a0e5780601f106119e357610100808354040283529160200191611a0e565b820191906000526020600020905b8154815290600101906020018083116119f157829003601f168201915b5050505050905090565b611a20612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e186022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611d0d57611cc9600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d96565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dd3612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cc46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611fde612360565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461209e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60058054905081101561235c578173ffffffffffffffffffffffffffffffffffffffff166005828154811061219157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561234f576005600160058054905003815481106121ed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005828154811061222557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061231557fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561235c565b8080600101915050612160565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613df46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612474576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613cea6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613dcf6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561266b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613c776023913960400191505060405180910390fd5b600081116126c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613da66029913960400191505060405180910390fd5b6126cc61159f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561273a575061270a61159f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561279b57600d5481111561279a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613d356028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561283e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128535761284e838383612cfe565b612a8a565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128f65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561290b57612906838383612f7c565b612a89565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129af5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129c4576129bf8383836131fa565b612a88565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a665750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a7b57612a768383836133e3565b612a87565b612a868383836131fa565b5b5b5b5b505050565b6000838311158290612b3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b01578082015181840152602081019050612ae6565b50505050905090810190601f168015612b2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612b5c6136f6565b91509150612b738183612b7a90919063ffffffff16565b9250505090565b6000612bbc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613987565b905092915050565b600080828401905083811015612c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000806000806000806000806000612c698a600b54600c54613a4d565b9250925092506000612c79612b4f565b90506000806000612c8c8e878787613ae3565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cf683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a8f565b905092915050565b6000612d08612b4f565b9050600080600080600080612d1c88612c4c565b9550955095509550955095506000612d3d8883613b6c90919063ffffffff16565b9050612d9189600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e2687600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ebb86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f0a85828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612f86612b4f565b9050600080600080600080612f9a88612c4c565b9550955095509550955095506000612fbb8883613b6c90919063ffffffff16565b905061300f87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130a484600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061313986600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061318885828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000613204612b4f565b905060008060008060008061321888612c4c565b95509550955095509550955060006132398883613b6c90919063ffffffff16565b905061328d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061332286600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061337185828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006133ed612b4f565b905060008060008060008061340188612c4c565b95509550955095509550955060006134228883613b6c90919063ffffffff16565b905061347689600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061350b87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb490919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135a084600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061363586600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368485828585613bf2565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b60058054905081101561394a5782600160006005848154811061372957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061381057508160026000600584815481106137a857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156138275760075460065494509450505050613983565b6138b0600160006005848154811061383b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612cb490919063ffffffff16565b925061393b60026000600584815481106138c657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612cb490919063ffffffff16565b9150808060010191505061370a565b50613962600654600754612b7a90919063ffffffff16565b82101561397a57600754600654935093505050613983565b81819350935050505b9091565b60008083118290613a33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139f85780820151818401526020810190506139dd565b50505050905090810190601f168015613a255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613a3f57fe5b049050809150509392505050565b600080600080613a796064613a6b888a613b6c90919063ffffffff16565b612b7a90919063ffffffff16565b90506000613aa36064613a95888b613b6c90919063ffffffff16565b612b7a90919063ffffffff16565b90506000613acc82613abe858c612cb490919063ffffffff16565b612cb490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613afc8589613b6c90919063ffffffff16565b90506000613b138689613b6c90919063ffffffff16565b90506000613b2a8789613b6c90919063ffffffff16565b90506000613b5382613b458587612cb490919063ffffffff16565b612cb490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613b7f5760009050613bec565b6000828402905082848281613b9057fe5b0414613be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d5d6021913960400191505060405180910390fd5b809150505b92915050565b613c1983613c0b86600754612cb490919063ffffffff16565b612cb490919063ffffffff16565b600781905550613c3482600854612bc490919063ffffffff16565b600881905550613c4f81600954612bc490919063ffffffff16565b600981905550613c6a81600654612cb490919063ffffffff16565b6006819055505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d61785478416d6f756e742073686f756c642062652067726561746572207468616e203930303065395472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a226205be2a9ac5c949f9067547aae08af696fffe58268ad67fd468ba5192af364736f6c634300060c0033
Deployed Bytecode Sourcemap
17155:13900:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18448:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19787:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20898:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18725:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30851:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19956:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22431:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18634:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20277:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21347:377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21251:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21987:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30670:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19043:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19255:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16474:148;;;:::i;:::-;;15832:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18935:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18539:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20503:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18828:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19461:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20780:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19636:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19151:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22946:443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16777:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23397:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18448:83;18485:13;18518:5;18511:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18448:83;:::o;19787:161::-;19862:4;19879:39;19888:12;:10;:12::i;:::-;19902:7;19911:6;19879:8;:39::i;:::-;19936:4;19929:11;;19787:161;;;;:::o;20898:87::-;20940:7;20967:10;;20960:17;;20898:87;:::o;18725:95::-;18778:7;18805;;18798:14;;18725:95;:::o;30851:201::-;16054:12;:10;:12::i;:::-;16044:22;;:6;;;;;;;;;;:22;;;16036:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30952:8:::1;30937:11;:23;;30929:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31033:11;31018:12;:26;;;;30851:201:::0;:::o;19956:313::-;20054:4;20071:36;20081:6;20089:9;20100:6;20071:9;:36::i;:::-;20118:121;20127:6;20135:12;:10;:12::i;:::-;20149:89;20187:6;20149:89;;;;;;;;;;;;;;;;;:11;:19;20161:6;20149:19;;;;;;;;;;;;;;;:33;20169:12;:10;:12::i;:::-;20149:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20118:8;:121::i;:::-;20257:4;20250:11;;19956:313;;;;;:::o;22431:253::-;22497:7;22536;;22525;:18;;22517:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22601:19;22624:10;:8;:10::i;:::-;22601:33;;22652:24;22664:11;22652:7;:11;;:24;;;;:::i;:::-;22645:31;;;22431:253;;;:::o;18634:83::-;18675:5;18700:9;;;;;;;;;;;18693:16;;18634:83;:::o;20277:218::-;20365:4;20382:83;20391:12;:10;:12::i;:::-;20405:7;20414:50;20453:10;20414:11;:25;20426:12;:10;:12::i;:::-;20414:25;;;;;;;;;;;;;;;:34;20440:7;20414:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20382:8;:83::i;:::-;20483:4;20476:11;;20277:218;;;;:::o;21347:377::-;21399:14;21416:12;:10;:12::i;:::-;21399:29;;21448:11;:19;21460:6;21448:19;;;;;;;;;;;;;;;;;;;;;;;;;21447:20;21439:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21528:15;21552:19;21563:7;21552:10;:19::i;:::-;21527:44;;;;;;;21600:28;21620:7;21600;:15;21608:6;21600:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21582:7;:15;21590:6;21582:15;;;;;;;;;;;;;;;:46;;;;21649:20;21661:7;21649;;:11;;:20;;;;:::i;:::-;21639:7;:30;;;;21693:23;21708:7;21693:10;;:14;;:23;;;;:::i;:::-;21680:10;:36;;;;21347:377;;;:::o;21251:88::-;21293:7;21320:11;;21313:18;;21251:88;:::o;21987:436::-;22077:7;22116;;22105;:18;;22097:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22175:17;22170:246;;22210:15;22234:19;22245:7;22234:10;:19::i;:::-;22209:44;;;;;;;22275:7;22268:14;;;;;22170:246;22317:23;22348:19;22359:7;22348:10;:19::i;:::-;22315:52;;;;;;;22389:15;22382:22;;;21987:436;;;;;:::o;30670:169::-;16054:12;:10;:12::i;:::-;16044:22;;:6;;;;;;;;;;:22;;;16036:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30756:1:::1;30746:6;:11;;:27;;;;;30771:2;30761:6;:12;;30746:27;30738:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;30825:6;30815:7;:16;;;;30670:169:::0;:::o;19043:96::-;19093:13;19126:5;19119:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19043:96;:::o;19255:198::-;19321:7;19345:11;:20;19357:7;19345:20;;;;;;;;;;;;;;;;;;;;;;;;;19341:49;;;19374:7;:16;19382:7;19374:16;;;;;;;;;;;;;;;;19367:23;;;;19341:49;19408:37;19428:7;:16;19436:7;19428:16;;;;;;;;;;;;;;;;19408:19;:37::i;:::-;19401:44;;19255:198;;;;:::o;16474:148::-;16054:12;:10;:12::i;:::-;16044:22;;:6;;;;;;;;;;:22;;;16036:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16581:1:::1;16544:40;;16565:6;::::0;::::1;;;;;;;;16544:40;;;;;;;;;;;;16612:1;16595:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16474:148::o:0;15832:79::-;15870:7;15897:6;;;;;;;;;;;15890:13;;15832:79;:::o;18935:96::-;18985:13;19018:5;19011:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18935:96;:::o;18539:87::-;18578:13;18611:7;18604:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18539:87;:::o;20503:269::-;20596:4;20613:129;20622:12;:10;:12::i;:::-;20636:7;20645:96;20684:15;20645:96;;;;;;;;;;;;;;;;;:11;:25;20657:12;:10;:12::i;:::-;20645:25;;;;;;;;;;;;;;;:34;20671:7;20645:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20613:8;:129::i;:::-;20760:4;20753:11;;20503:269;;;;:::o;18828:95::-;18877:13;18910:5;18903:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18828:95;:::o;19461:167::-;19539:4;19556:42;19566:12;:10;:12::i;:::-;19580:9;19591:6;19556:9;:42::i;:::-;19616:4;19609:11;;19461:167;;;;:::o;20780:110::-;20838:4;20862:11;:20;20874:7;20862:20;;;;;;;;;;;;;;;;;;;;;;;;;20855:27;;20780:110;;;:::o;19636:143::-;19717:7;19744:11;:18;19756:5;19744:18;;;;;;;;;;;;;;;:27;19763:7;19744:27;;;;;;;;;;;;;;;;19737:34;;19636:143;;;;:::o;19151:96::-;19201:13;19234:5;19227:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19151:96;:::o;22946:443::-;16054:12;:10;:12::i;:::-;16044:22;;:6;;;;;;;;;;:22;;;16036:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23038:42:::1;23027:53;;:7;:53;;;;23019:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23139:11;:20;23151:7;23139:20;;;;;;;;;;;;;;;;;;;;;;;;;23138:21;23130:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23224:1;23205:7;:16;23213:7;23205:16;;;;;;;;;;;;;;;;:20;23202:108;;;23261:37;23281:7;:16;23289:7;23281:16;;;;;;;;;;;;;;;;23261:19;:37::i;:::-;23242:7;:16;23250:7;23242:16;;;;;;;;;;;;;;;:56;;;;23202:108;23343:4;23320:11;:20;23332:7;23320:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23358:9;23373:7;23358:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22946:443:::0;:::o;16777:244::-;16054:12;:10;:12::i;:::-;16044:22;;:6;;;;;;;;;;:22;;;16036:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16886:1:::1;16866:22;;:8;:22;;;;16858:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16976:8;16947:38;;16968:6;::::0;::::1;;;;;;;;16947:38;;;;;;;;;;;;17005:8;16996:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16777:244:::0;:::o;23397:478::-;16054:12;:10;:12::i;:::-;16044:22;;:6;;;;;;;;;;:22;;;16036:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23478:11:::1;:20;23490:7;23478:20;;;;;;;;;;;;;;;;;;;;;;;;;23470:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23546:9;23541:327;23565:9;:16;;;;23561:1;:20;23541:327;;;23623:7;23607:23;;:9;23617:1;23607:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;23603:254;;;23666:9;23695:1;23676:9;:16;;;;:20;23666:31;;;;;;;;;;;;;;;;;;;;;;;;;23651:9;23661:1;23651:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23735:1;23716:7;:16;23724:7;23716:16;;;;;;;;;;;;;;;:20;;;;23778:5;23755:11;:20;23767:7;23755:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23802:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23836:5;;23603:254;23583:3;;;;;;;23541:327;;;;23397:478:::0;:::o;174:106::-;227:15;262:10;255:17;;174:106;:::o;23883:337::-;23993:1;23976:19;;:5;:19;;;;23968:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24074:1;24055:21;;:7;:21;;;;24047:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24158:6;24128:11;:18;24140:5;24128:18;;;;;;;;;;;;;;;:27;24147:7;24128:27;;;;;;;;;;;;;;;:36;;;;24196:7;24180:32;;24189:5;24180:32;;;24205:6;24180:32;;;;;;;;;;;;;;;;;;23883:337;;;:::o;24489:1096::-;24604:1;24586:20;;:6;:20;;;;24578:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24688:1;24667:23;;:9;:23;;;;24659:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24758:1;24749:6;:10;24741:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24839:7;:5;:7::i;:::-;24829:17;;:6;:17;;;;:41;;;;;24863:7;:5;:7::i;:::-;24850:20;;:9;:20;;;;24829:41;24826:134;;;24903:12;;24893:6;:22;;24885:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24826:134;24985:11;:19;24997:6;24985:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;25009:11;:22;25021:9;25009:22;;;;;;;;;;;;;;;;;;;;;;;;;25008:23;24985:46;24981:597;;;25048:48;25070:6;25078:9;25089:6;25048:21;:48::i;:::-;24981:597;;;25119:11;:19;25131:6;25119:19;;;;;;;;;;;;;;;;;;;;;;;;;25118:20;:46;;;;;25142:11;:22;25154:9;25142:22;;;;;;;;;;;;;;;;;;;;;;;;;25118:46;25114:464;;;25181:46;25201:6;25209:9;25220:6;25181:19;:46::i;:::-;25114:464;;;25250:11;:19;25262:6;25250:19;;;;;;;;;;;;;;;;;;;;;;;;;25249:20;:47;;;;;25274:11;:22;25286:9;25274:22;;;;;;;;;;;;;;;;;;;;;;;;;25273:23;25249:47;25245:333;;;25313:44;25331:6;25339:9;25350:6;25313:17;:44::i;:::-;25245:333;;;25379:11;:19;25391:6;25379:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;25402:11;:22;25414:9;25402:22;;;;;;;;;;;;;;;;;;;;;;;;;25379:45;25375:203;;;25441:48;25463:6;25471:9;25482:6;25441:21;:48::i;:::-;25375:203;;;25522:44;25540:6;25548:9;25559:6;25522:17;:44::i;:::-;25375:203;25245:333;25114:464;24981:597;24489:1096;;;:::o;5108:192::-;5194:7;5227:1;5222;:6;;5230:12;5214:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5254:9;5270:1;5266;:5;5254:17;;5291:1;5284:8;;;5108:192;;;;;:::o;29726:163::-;29767:7;29788:15;29805;29824:19;:17;:19::i;:::-;29787:56;;;;29861:20;29873:7;29861;:11;;:20;;;;:::i;:::-;29854:27;;;;29726:163;:::o;6506:132::-;6564:7;6591:39;6595:1;6598;6591:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6584:46;;6506:132;;;;:::o;4205:181::-;4263:7;4283:9;4299:1;4295;:5;4283:17;;4324:1;4319;:6;;4311:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4377:1;4370:8;;;4205:181;;;;:::o;28474:468::-;28533:7;28542;28551;28560;28569;28578;28599:23;28624:12;28638:13;28655:39;28667:7;28676;;28685:8;;28655:11;:39::i;:::-;28598:96;;;;;;28705:19;28728:10;:8;:10::i;:::-;28705:33;;28750:15;28767:23;28792:12;28808:46;28820:7;28829:4;28835:5;28842:11;28808;:46::i;:::-;28749:105;;;;;;28873:7;28882:15;28899:4;28905:15;28922:4;28928:5;28865:69;;;;;;;;;;;;;;;;;;;28474:468;;;;;;;:::o;4669:136::-;4727:7;4754:43;4758:1;4761;4754:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4747:50;;4669:136;;;;:::o;26836:632::-;26938:19;26961:10;:8;:10::i;:::-;26938:33;;26983:15;27000:23;27025:12;27039:23;27064:12;27078:13;27095:19;27106:7;27095:10;:19::i;:::-;26982:132;;;;;;;;;;;;27125:13;27142:22;27152:11;27142:5;:9;;:22;;;;:::i;:::-;27125:39;;27193:28;27213:7;27193;:15;27201:6;27193:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27175:7;:15;27183:6;27175:15;;;;;;;;;;;;;;;:46;;;;27250:28;27270:7;27250;:15;27258:6;27250:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27232:7;:15;27240:6;27232:15;;;;;;;;;;;;;;;:46;;;;27310:39;27333:15;27310:7;:18;27318:9;27310:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;27289:7;:18;27297:9;27289:18;;;;;;;;;;;;;;;:60;;;;27363:37;27375:4;27381:5;27388:4;27394:5;27363:11;:37::i;:::-;27433:9;27416:44;;27425:6;27416:44;;;27444:15;27416:44;;;;;;;;;;;;;;;;;;26836:632;;;;;;;;;;;:::o;26176:652::-;26276:19;26299:10;:8;:10::i;:::-;26276:33;;26321:15;26338:23;26363:12;26377:23;26402:12;26416:13;26433:19;26444:7;26433:10;:19::i;:::-;26320:132;;;;;;;;;;;;26463:13;26480:22;26490:11;26480:5;:9;;:22;;;;:::i;:::-;26463:39;;26531:28;26551:7;26531;:15;26539:6;26531:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26513:7;:15;26521:6;26513:15;;;;;;;;;;;;;;;:46;;;;26591:39;26614:15;26591:7;:18;26599:9;26591:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26570:7;:18;26578:9;26570:18;;;;;;;;;;;;;;;:60;;;;26662:39;26685:15;26662:7;:18;26670:9;26662:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26641:7;:18;26649:9;26641:18;;;;;;;;;;;;;;;:60;;;;26723:37;26735:4;26741:5;26748:4;26754:5;26723:11;:37::i;:::-;26793:9;26776:44;;26785:6;26776:44;;;26804:15;26776:44;;;;;;;;;;;;;;;;;;26176:652;;;;;;;;;;;:::o;25593:575::-;25691:19;25714:10;:8;:10::i;:::-;25691:33;;25736:15;25753:23;25778:12;25792:23;25817:12;25831:13;25848:19;25859:7;25848:10;:19::i;:::-;25735:132;;;;;;;;;;;;25878:13;25895:22;25905:11;25895:5;:9;;:22;;;;:::i;:::-;25878:39;;25946:28;25966:7;25946;:15;25954:6;25946:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25928:7;:15;25936:6;25928:15;;;;;;;;;;;;;;;:46;;;;26006:39;26029:15;26006:7;:18;26014:9;26006:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25985:7;:18;25993:9;25985:18;;;;;;;;;;;;;;;:60;;;;26063:37;26075:4;26081:5;26088:4;26094:5;26063:11;:37::i;:::-;26133:9;26116:44;;26125:6;26116:44;;;26144:15;26116:44;;;;;;;;;;;;;;;;;;25593:575;;;;;;;;;;;:::o;27476:708::-;27578:19;27601:10;:8;:10::i;:::-;27578:33;;27623:15;27640:23;27665:12;27679:23;27704:12;27718:13;27735:19;27746:7;27735:10;:19::i;:::-;27622:132;;;;;;;;;;;;27765:13;27782:22;27792:11;27782:5;:9;;:22;;;;:::i;:::-;27765:39;;27833:28;27853:7;27833;:15;27841:6;27833:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27815:7;:15;27823:6;27815:15;;;;;;;;;;;;;;;:46;;;;27890:28;27910:7;27890;:15;27898:6;27890:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27872:7;:15;27880:6;27872:15;;;;;;;;;;;;;;;:46;;;;27950:39;27973:15;27950:7;:18;27958:9;27950:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;27929:7;:18;27937:9;27929:18;;;;;;;;;;;;;;;:60;;;;28021:39;28044:15;28021:7;:18;28029:9;28021:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;28000:7;:18;28008:9;28000:18;;;;;;;;;;;;;;;:60;;;;28079:37;28091:4;28097:5;28104:4;28110:5;28079:11;:37::i;:::-;28149:9;28132:44;;28141:6;28132:44;;;28160:15;28132:44;;;;;;;;;;;;;;;;;;27476:708;;;;;;;;;;;:::o;29897:561::-;29947:7;29956;29976:15;29994:7;;29976:25;;30012:15;30030:7;;30012:25;;30059:9;30054:289;30078:9;:16;;;;30074:1;:20;30054:289;;;30144:7;30120;:21;30128:9;30138:1;30128:12;;;;;;;;;;;;;;;;;;;;;;;;;30120:21;;;;;;;;;;;;;;;;:31;:66;;;;30179:7;30155;:21;30163:9;30173:1;30163:12;;;;;;;;;;;;;;;;;;;;;;;;;30155:21;;;;;;;;;;;;;;;;:31;30120:66;30116:97;;;30196:7;;30205;;30188:25;;;;;;;;;30116:97;30238:34;30250:7;:21;30258:9;30268:1;30258:12;;;;;;;;;;;;;;;;;;;;;;;;;30250:21;;;;;;;;;;;;;;;;30238:7;:11;;:34;;;;:::i;:::-;30228:44;;30297:34;30309:7;:21;30317:9;30327:1;30317:12;;;;;;;;;;;;;;;;;;;;;;;;;30309:21;;;;;;;;;;;;;;;;30297:7;:11;;:34;;;;:::i;:::-;30287:44;;30096:3;;;;;;;30054:289;;;;30367:20;30379:7;;30367;;:11;;:20;;;;:::i;:::-;30357:7;:30;30353:61;;;30397:7;;30406;;30389:25;;;;;;;;30353:61;30433:7;30442;30425:25;;;;;;29897:561;;;:::o;7134:278::-;7220:7;7252:1;7248;:5;7255:12;7240:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7279:9;7295:1;7291;:5;;;;;;7279:17;;7403:1;7396:8;;;7134:278;;;;;:::o;28950:351::-;29043:7;29052;29061;29081:12;29096:28;29120:3;29096:19;29108:6;29096:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;29081:43;;29135:13;29151:29;29176:3;29151:20;29163:7;29151;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;29135:45;;29191:23;29217:28;29239:5;29217:17;29229:4;29217:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;29191:54;;29264:15;29281:4;29287:5;29256:37;;;;;;;;;28950:351;;;;;;;:::o;29309:409::-;29419:7;29428;29437;29457:15;29475:24;29487:11;29475:7;:11;;:24;;;;:::i;:::-;29457:42;;29510:12;29525:21;29534:11;29525:4;:8;;:21;;;;:::i;:::-;29510:36;;29557:13;29573:22;29583:11;29573:5;:9;;:22;;;;:::i;:::-;29557:38;;29606:23;29632:28;29654:5;29632:17;29644:4;29632:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;29606:54;;29679:7;29688:15;29705:4;29671:39;;;;;;;;;;29309:409;;;;;;;;:::o;5559:471::-;5617:7;5867:1;5862;:6;5858:47;;;5892:1;5885:8;;;;5858:47;5917:9;5933:1;5929;:5;5917:17;;5962:1;5957;5953;:5;;;;;;:10;5945:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:1;6014:8;;;5559:471;;;;;:::o;28192:274::-;28300:28;28322:5;28300:17;28312:4;28300:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;28290:7;:38;;;;28352:20;28367:4;28352:10;;:14;;:20;;;;:::i;:::-;28339:10;:33;;;;28397:22;28413:5;28397:11;;:15;;:22;;;;:::i;:::-;28383:11;:36;;;;28440:18;28452:5;28440:7;;:11;;:18;;;;:::i;:::-;28430:7;:28;;;;28192:274;;;;:::o
Swarm Source
ipfs://a226205be2a9ac5c949f9067547aae08af696fffe58268ad67fd468ba5192af3
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.