More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 240 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 44630684 | 9 days ago | IN | 0 BNB | 0.00009457 | ||||
Approve | 43812671 | 38 days ago | IN | 0 BNB | 0.00004629 | ||||
Transfer | 40006263 | 170 days ago | IN | 0 BNB | 0.00009457 | ||||
Approve | 27695550 | 599 days ago | IN | 0 BNB | 0.00004368 | ||||
Approve | 27695546 | 599 days ago | IN | 0 BNB | 0.00004368 | ||||
Approve | 27124109 | 619 days ago | IN | 0 BNB | 0.0000728 | ||||
Approve | 26127681 | 654 days ago | IN | 0 BNB | 0.00007425 | ||||
Transfer | 13880659 | 1083 days ago | IN | 0 BNB | 0.00048531 | ||||
Approve | 12430413 | 1135 days ago | IN | 0 BNB | 0.0000728 | ||||
Approve | 10063592 | 1218 days ago | IN | 0 BNB | 0.0000728 | ||||
Approve | 9802348 | 1227 days ago | IN | 0 BNB | 0.00014994 | ||||
Approve | 9802343 | 1227 days ago | IN | 0 BNB | 0.00026514 | ||||
Transfer | 8786572 | 1263 days ago | IN | 0 BNB | 0.00048633 | ||||
Approve | 8583424 | 1270 days ago | IN | 0 BNB | 0.0000728 | ||||
Approve | 8156366 | 1285 days ago | IN | 0 BNB | 0.00022251 | ||||
Approve | 7127105 | 1321 days ago | IN | 0 BNB | 0.00022251 | ||||
Approve | 6879634 | 1330 days ago | IN | 0 BNB | 0.00022251 | ||||
Approve | 6877434 | 1330 days ago | IN | 0 BNB | 0.00022251 | ||||
Approve | 6429563 | 1346 days ago | IN | 0 BNB | 0.0000728 | ||||
Approve | 6254960 | 1352 days ago | IN | 0 BNB | 0.00044503 | ||||
Approve | 6185638 | 1354 days ago | IN | 0 BNB | 0.00044503 | ||||
Approve | 6098146 | 1357 days ago | IN | 0 BNB | 0.00044503 | ||||
Approve | 5953415 | 1362 days ago | IN | 0 BNB | 0.0001456 | ||||
Approve | 5834854 | 1367 days ago | IN | 0 BNB | 0.00044503 | ||||
Approve | 5800066 | 1368 days ago | IN | 0 BNB | 0.0001456 |
Latest 12 internal transactions
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5469538 | 1379 days ago | 0 BNB | ||||
5469219 | 1379 days ago | 0 BNB | ||||
5469219 | 1379 days ago | 0 BNB | ||||
5469219 | 1379 days ago | 0 BNB | ||||
5469219 | 1379 days ago | 0 BNB | ||||
5467114 | 1379 days ago | 0 BNB | ||||
5466516 | 1379 days ago | 0 BNB | ||||
5465910 | 1379 days ago | 0 BNB | ||||
5465910 | 1379 days ago | 0 BNB | ||||
5330991 | 1384 days ago | 0 BNB | ||||
5330991 | 1384 days ago | 0 BNB | ||||
5330991 | 1384 days ago | 0 BNB |
Loading...
Loading
Contract Name:
GOAL
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at BscScan.com on 2021-02-20 */ // GOALFinance.org Platform Token BEP20 // // TG: https://t.me/joinchat/Tlc4jZkbfdL3yPJj // Web: goalfinance.org // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract GOAL is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; uint8 private constant _decimals = 8; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 100000000 * 10 ** uint256(_decimals); uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBurnTotal; string private constant _name = 'goalfinance.org'; string private constant _symbol = 'GOAL'; uint256 private _taxFee = 500; uint256 private _burnFee = 500; uint private _max_tx_size = 1000000 * 10 ** uint256(_decimals); constructor () public { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function totalBurn() public view returns (uint256) { return _tBurnTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.'); require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(sender != owner() && recipient != owner()) require(amount <= _max_tx_size, "Transfer amount exceeds 1% of Total Supply."); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private { _rTotal = _rTotal.sub(rFee).sub(rBurn); _tFeeTotal = _tFeeTotal.add(tFee); _tBurnTotal = _tBurnTotal.add(tBurn); _tTotal = _tTotal.sub(tBurn); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getTValues(tAmount, _taxFee, _burnFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tBurn, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 burnFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = ((tAmount.mul(taxFee)).div(100)).div(100); uint256 tBurn = ((tAmount.mul(burnFee)).div(100)).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn); return (tTransferAmount, tFee, tBurn); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rBurn = tBurn.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getTaxFee() public view returns(uint256) { return _taxFee; } function _getBurnFee() public view returns(uint256) { return _burnFee; } function _getMaxTxAmount() public view returns(uint256){ return _max_tx_size; } function _setTaxFee(uint256 taxFee) external onlyOwner() { _taxFee = taxFee; } function _setBurnFee(uint256 burnFee) external onlyOwner() { _burnFee = burnFee; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_getBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"_setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600860ff16600a0a6305f5e10002600655600654600019816200002357fe5b06600019036007556101f4600a556101f4600b55600860ff16600a0a620f424002600c553480156200005457600080fd5b50600062000067620001d760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600160006200011c620001d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200016a620001d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3620001df565b600033905090565b6138ce80620001ef6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80635880b873116100f9578063a9059cbb11610097578063f2cc0c1811610071578063f2cc0c1814610801578063f2fde38b14610845578063f7a9159114610889578063f84354f1146108a7576101a9565b8063a9059cbb146106cb578063cba0e9961461072f578063dd62ed3e14610789576101a9565b8063715018a6116100d3578063715018a6146105a65780638da5cb5b146105b057806395d89b41146105e4578063a457c2d714610667576101a9565b80635880b873146105025780636a39d32c1461053057806370a082311461054e576101a9565b80632fbff030116101665780633b6b1961116101405780633b6b19611461043a5780633bd5d173146104685780633c9f861d146104965780634549b039146104b4576101a9565b80632fbff03014610397578063313ce567146103b557806339509351146103d6576101a9565b806306fdde03146101ae578063095ea7b31461023157806313114a9d1461029557806318160ddd146102b357806323b872dd146102d15780632d83811914610355575b600080fd5b6101b66108eb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561024757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610928565b60405180821515815260200191505060405180910390f35b61029d610946565b6040518082815260200191505060405180910390f35b6102bb610950565b6040518082815260200191505060405180910390f35b61033d600480360360608110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061095a565b60405180821515815260200191505060405180910390f35b6103816004803603602081101561036b57600080fd5b8101908080359060200190929190505050610a33565b6040518082815260200191505060405180910390f35b61039f610ab7565b6040518082815260200191505060405180910390f35b6103bd610ac1565b604051808260ff16815260200191505060405180910390f35b610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aca565b60405180821515815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050610b7d565b005b6104946004803603602081101561047e57600080fd5b8101908080359060200190929190505050610c4f565b005b61049e610de0565b6040518082815260200191505060405180910390f35b6104ec600480360360408110156104ca57600080fd5b8101908080359060200190929190803515159060200190929190505050610dea565b6040518082815260200191505060405180910390f35b61052e6004803603602081101561051857600080fd5b8101908080359060200190929190505050610ea1565b005b610538610f73565b6040518082815260200191505060405180910390f35b6105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7d565b6040518082815260200191505060405180910390f35b6105ae611068565b005b6105b86111ee565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105ec611217565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062c578082015181840152602081019050610611565b50505050905090810190601f1680156106595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b36004803603604081101561067d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611254565b60405180821515815260200191505060405180910390f35b610717600480360360408110156106e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611321565b60405180821515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b60405180821515815260200191505060405180910390f35b6107eb6004803603604081101561079f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611395565b6040518082815260200191505060405180910390f35b6108436004803603602081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141c565b005b6108876004803603602081101561085b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cf565b005b6108916119da565b6040518082815260200191505060405180910390f35b6108e9600480360360208110156108bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119e4565b005b60606040518060400160405280600f81526020017f676f616c66696e616e63652e6f72670000000000000000000000000000000000815250905090565b600061093c610935611d6e565b8484611d76565b6001905092915050565b6000600854905090565b6000600654905090565b6000610967848484611f6d565b610a2884610973611d6e565b610a238560405180606001604052806028815260200161379060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b600190509392505050565b6000600754821115610a90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806136f4602a913960400191505060405180910390fd5b6000610a9a61255d565b9050610aaf818461258890919063ffffffff16565b915050919050565b6000600a54905090565b60006008905090565b6000610b73610ad7611d6e565b84610b6e8560036000610ae8611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b611d76565b6001905092915050565b610b85611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b6000610c59611d6e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061384b602c913960400191505060405180910390fd5b6000610d098361265a565b50505050509050610d6281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba816007546126c290919063ffffffff16565b600781905550610dd5836008546125d290919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e84576000610e748461265a565b5050505050905080915050610e9b565b6000610e8f8461265a565b50505050915050809150505b92915050565b610ea9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b6000600b54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101857600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611063565b611060600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b90505b919050565b611070611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f474f414c00000000000000000000000000000000000000000000000000000000815250905090565b6000611317611261611d6e565b8461131285604051806060016040528060258152602001613804602591396003600061128b611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b6001905092915050565b600061133561132e611d6e565b8484611f6d565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611424611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138296022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611711576116cd600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117d7611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561191d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061371e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c54905090565b6119ec611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611d6a578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611b9f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d5d57600560016005805490500381548110611bfb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c3357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611d2357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d6a565b8080600101915050611b6e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806136d06024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138776022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136ab6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806137e16023913960400191505060405180910390fd5b600081116120d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137b86029913960400191505060405180910390fd5b6120da6111ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214857506121186111ee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121a957600c548111156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613744602b913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561224c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122615761225c83838361270c565b612498565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123045750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123195761231483838361298a565b612497565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123bd5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d2576123cd838383612c08565b612496565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124745750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248957612484838383612df1565b612495565b612494838383612c08565b5b5b5b5b505050565b600083831115829061254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561250f5780820151818401526020810190506124f4565b50505050905090810190601f16801561253c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061256a613104565b91509150612581818361258890919063ffffffff16565b9250505090565b60006125ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613395565b905092915050565b600080828401905083811015612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006126778a600a54600b5461345b565b925092509250600061268761255d565b9050600080600061269a8e878787613517565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061270483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b600061271661255d565b905060008060008060008061272a8861265a565b955095509550955095509550600061274b88836135a090919063ffffffff16565b905061279f89600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283487600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c986600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291885828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600061299461255d565b90506000806000806000806129a88861265a565b95509550955095509550955060006129c988836135a090919063ffffffff16565b9050612a1d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab284600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4786600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9685828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612c1261255d565b9050600080600080600080612c268861265a565b9550955095509550955095506000612c4788836135a090919063ffffffff16565b9050612c9b87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3086600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7f85828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612dfb61255d565b9050600080600080600080612e0f8861265a565b9550955095509550955095506000612e3088836135a090919063ffffffff16565b9050612e8489600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fae84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061304386600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061309285828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b6005805490508110156133585782600160006005848154811061313757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061321e57508160026000600584815481106131b657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156132355760075460065494509450505050613391565b6132be600160006005848154811061324957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126c290919063ffffffff16565b925061334960026000600584815481106132d457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126c290919063ffffffff16565b91508080600101915050613118565b5061337060065460075461258890919063ffffffff16565b82101561338857600754600654935093505050613391565b81819350935050505b9091565b60008083118290613441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134065780820151818401526020810190506133eb565b50505050905090810190601f1680156134335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161344d57fe5b049050809150509392505050565b60008060008061349a606461348c606461347e8a8c6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b905060006134d760646134c960646134bb8a8d6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b90506000613500826134f2858c6126c290919063ffffffff16565b6126c290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061353085896135a090919063ffffffff16565b9050600061354786896135a090919063ffffffff16565b9050600061355e87896135a090919063ffffffff16565b905060006135878261357985876126c290919063ffffffff16565b6126c290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156135b35760009050613620565b60008284029050828482816135c457fe5b041461361b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061376f6021913960400191505060405180910390fd5b809150505b92915050565b61364d8361363f866007546126c290919063ffffffff16565b6126c290919063ffffffff16565b600781905550613668826008546125d290919063ffffffff16565b600881905550613683816009546125d290919063ffffffff16565b60098190555061369e816006546126c290919063ffffffff16565b6006819055505050505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735472616e7366657220616d6f756e742065786365656473203125206f6620546f74616c20537570706c792e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f42455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f57652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e42455032303a20617070726f766520746f20746865207a65726f2061646472657373a2646970667358221220f87c1adc5ae0cfbc8d0f25f5ec8011d24cd08ef8ab09f0625993922b17681f6c64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80635880b873116100f9578063a9059cbb11610097578063f2cc0c1811610071578063f2cc0c1814610801578063f2fde38b14610845578063f7a9159114610889578063f84354f1146108a7576101a9565b8063a9059cbb146106cb578063cba0e9961461072f578063dd62ed3e14610789576101a9565b8063715018a6116100d3578063715018a6146105a65780638da5cb5b146105b057806395d89b41146105e4578063a457c2d714610667576101a9565b80635880b873146105025780636a39d32c1461053057806370a082311461054e576101a9565b80632fbff030116101665780633b6b1961116101405780633b6b19611461043a5780633bd5d173146104685780633c9f861d146104965780634549b039146104b4576101a9565b80632fbff03014610397578063313ce567146103b557806339509351146103d6576101a9565b806306fdde03146101ae578063095ea7b31461023157806313114a9d1461029557806318160ddd146102b357806323b872dd146102d15780632d83811914610355575b600080fd5b6101b66108eb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561024757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610928565b60405180821515815260200191505060405180910390f35b61029d610946565b6040518082815260200191505060405180910390f35b6102bb610950565b6040518082815260200191505060405180910390f35b61033d600480360360608110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061095a565b60405180821515815260200191505060405180910390f35b6103816004803603602081101561036b57600080fd5b8101908080359060200190929190505050610a33565b6040518082815260200191505060405180910390f35b61039f610ab7565b6040518082815260200191505060405180910390f35b6103bd610ac1565b604051808260ff16815260200191505060405180910390f35b610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aca565b60405180821515815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050610b7d565b005b6104946004803603602081101561047e57600080fd5b8101908080359060200190929190505050610c4f565b005b61049e610de0565b6040518082815260200191505060405180910390f35b6104ec600480360360408110156104ca57600080fd5b8101908080359060200190929190803515159060200190929190505050610dea565b6040518082815260200191505060405180910390f35b61052e6004803603602081101561051857600080fd5b8101908080359060200190929190505050610ea1565b005b610538610f73565b6040518082815260200191505060405180910390f35b6105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7d565b6040518082815260200191505060405180910390f35b6105ae611068565b005b6105b86111ee565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105ec611217565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062c578082015181840152602081019050610611565b50505050905090810190601f1680156106595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b36004803603604081101561067d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611254565b60405180821515815260200191505060405180910390f35b610717600480360360408110156106e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611321565b60405180821515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b60405180821515815260200191505060405180910390f35b6107eb6004803603604081101561079f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611395565b6040518082815260200191505060405180910390f35b6108436004803603602081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141c565b005b6108876004803603602081101561085b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cf565b005b6108916119da565b6040518082815260200191505060405180910390f35b6108e9600480360360208110156108bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119e4565b005b60606040518060400160405280600f81526020017f676f616c66696e616e63652e6f72670000000000000000000000000000000000815250905090565b600061093c610935611d6e565b8484611d76565b6001905092915050565b6000600854905090565b6000600654905090565b6000610967848484611f6d565b610a2884610973611d6e565b610a238560405180606001604052806028815260200161379060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b600190509392505050565b6000600754821115610a90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806136f4602a913960400191505060405180910390fd5b6000610a9a61255d565b9050610aaf818461258890919063ffffffff16565b915050919050565b6000600a54905090565b60006008905090565b6000610b73610ad7611d6e565b84610b6e8560036000610ae8611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b611d76565b6001905092915050565b610b85611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b6000610c59611d6e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061384b602c913960400191505060405180910390fd5b6000610d098361265a565b50505050509050610d6281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba816007546126c290919063ffffffff16565b600781905550610dd5836008546125d290919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e84576000610e748461265a565b5050505050905080915050610e9b565b6000610e8f8461265a565b50505050915050809150505b92915050565b610ea9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b6000600b54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101857600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611063565b611060600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b90505b919050565b611070611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f474f414c00000000000000000000000000000000000000000000000000000000815250905090565b6000611317611261611d6e565b8461131285604051806060016040528060258152602001613804602591396003600061128b611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b6001905092915050565b600061133561132e611d6e565b8484611f6d565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611424611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138296022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611711576116cd600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117d7611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561191d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061371e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c54905090565b6119ec611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611d6a578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611b9f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d5d57600560016005805490500381548110611bfb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c3357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611d2357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d6a565b8080600101915050611b6e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806136d06024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138776022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136ab6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806137e16023913960400191505060405180910390fd5b600081116120d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137b86029913960400191505060405180910390fd5b6120da6111ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214857506121186111ee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121a957600c548111156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613744602b913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561224c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122615761225c83838361270c565b612498565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123045750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123195761231483838361298a565b612497565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123bd5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d2576123cd838383612c08565b612496565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124745750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248957612484838383612df1565b612495565b612494838383612c08565b5b5b5b5b505050565b600083831115829061254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561250f5780820151818401526020810190506124f4565b50505050905090810190601f16801561253c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061256a613104565b91509150612581818361258890919063ffffffff16565b9250505090565b60006125ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613395565b905092915050565b600080828401905083811015612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006126778a600a54600b5461345b565b925092509250600061268761255d565b9050600080600061269a8e878787613517565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061270483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b600061271661255d565b905060008060008060008061272a8861265a565b955095509550955095509550600061274b88836135a090919063ffffffff16565b905061279f89600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283487600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c986600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291885828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600061299461255d565b90506000806000806000806129a88861265a565b95509550955095509550955060006129c988836135a090919063ffffffff16565b9050612a1d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab284600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4786600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9685828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612c1261255d565b9050600080600080600080612c268861265a565b9550955095509550955095506000612c4788836135a090919063ffffffff16565b9050612c9b87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3086600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7f85828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612dfb61255d565b9050600080600080600080612e0f8861265a565b9550955095509550955095506000612e3088836135a090919063ffffffff16565b9050612e8489600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fae84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061304386600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061309285828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b6005805490508110156133585782600160006005848154811061313757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061321e57508160026000600584815481106131b657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156132355760075460065494509450505050613391565b6132be600160006005848154811061324957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126c290919063ffffffff16565b925061334960026000600584815481106132d457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126c290919063ffffffff16565b91508080600101915050613118565b5061337060065460075461258890919063ffffffff16565b82101561338857600754600654935093505050613391565b81819350935050505b9091565b60008083118290613441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134065780820151818401526020810190506133eb565b50505050905090810190601f1680156134335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161344d57fe5b049050809150509392505050565b60008060008061349a606461348c606461347e8a8c6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b905060006134d760646134c960646134bb8a8d6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b90506000613500826134f2858c6126c290919063ffffffff16565b6126c290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061353085896135a090919063ffffffff16565b9050600061354786896135a090919063ffffffff16565b9050600061355e87896135a090919063ffffffff16565b905060006135878261357985876126c290919063ffffffff16565b6126c290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156135b35760009050613620565b60008284029050828482816135c457fe5b041461361b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061376f6021913960400191505060405180910390fd5b809150505b92915050565b61364d8361363f866007546126c290919063ffffffff16565b6126c290919063ffffffff16565b600781905550613668826008546125d290919063ffffffff16565b600881905550613683816009546125d290919063ffffffff16565b60098190555061369e816006546126c290919063ffffffff16565b6006819055505050505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735472616e7366657220616d6f756e742065786365656473203125206f6620546f74616c20537570706c792e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f42455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f57652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e42455032303a20617070726f766520746f20746865207a65726f2061646472657373a2646970667358221220f87c1adc5ae0cfbc8d0f25f5ec8011d24cd08ef8ab09f0625993922b17681f6c64736f6c634300060c0033
Deployed Bytecode Sourcemap
17047:12166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18113:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19025:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20136:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18390:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19194:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21160:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28713:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18299:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19515:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29112:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20331:377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20235:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20716:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29008:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28809:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18493:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16493:148;;;:::i;:::-;;15851:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18204:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19741:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18699:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20018:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18874:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21421:443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16796:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28903:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21872:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18113:83;18150:13;18183:5;;;;;;;;;;;;;;;;;18176:12;;18113:83;:::o;19025:161::-;19100:4;19117:39;19126:12;:10;:12::i;:::-;19140:7;19149:6;19117:8;:39::i;:::-;19174:4;19167:11;;19025:161;;;;:::o;20136:87::-;20178:7;20205:10;;20198:17;;20136:87;:::o;18390:95::-;18443:7;18470;;18463:14;;18390:95;:::o;19194:313::-;19292:4;19309:36;19319:6;19327:9;19338:6;19309:9;:36::i;:::-;19356:121;19365:6;19373:12;:10;:12::i;:::-;19387:89;19425:6;19387:89;;;;;;;;;;;;;;;;;:11;:19;19399:6;19387:19;;;;;;;;;;;;;;;:33;19407:12;:10;:12::i;:::-;19387:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19356:8;:121::i;:::-;19495:4;19488:11;;19194:313;;;;;:::o;21160:253::-;21226:7;21265;;21254;:18;;21246:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21330:19;21353:10;:8;:10::i;:::-;21330:33;;21381:24;21393:11;21381:7;:11;;:24;;;;:::i;:::-;21374:31;;;21160:253;;;:::o;28713:84::-;28755:7;28782;;28775:14;;28713:84;:::o;18299:83::-;18340:5;17470:1;18358:16;;18299:83;:::o;19515:218::-;19603:4;19620:83;19629:12;:10;:12::i;:::-;19643:7;19652:50;19691:10;19652:11;:25;19664:12;:10;:12::i;:::-;19652:25;;;;;;;;;;;;;;;:34;19678:7;19652:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19620:8;:83::i;:::-;19721:4;19714:11;;19515:218;;;;:::o;29112:96::-;16073:12;:10;:12::i;:::-;16063:22;;:6;;;;;;;;;;:22;;;16055:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29193:7:::1;29182:8;:18;;;;29112:96:::0;:::o;20331:377::-;20383:14;20400:12;:10;:12::i;:::-;20383:29;;20432:11;:19;20444:6;20432:19;;;;;;;;;;;;;;;;;;;;;;;;;20431:20;20423:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20512:15;20536:19;20547:7;20536:10;:19::i;:::-;20511:44;;;;;;;20584:28;20604:7;20584;:15;20592:6;20584:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20566:7;:15;20574:6;20566:15;;;;;;;;;;;;;;;:46;;;;20633:20;20645:7;20633;;:11;;:20;;;;:::i;:::-;20623:7;:30;;;;20677:23;20692:7;20677:10;;:14;;:23;;;;:::i;:::-;20664:10;:36;;;;20331:377;;;:::o;20235:88::-;20277:7;20304:11;;20297:18;;20235:88;:::o;20716:436::-;20806:7;20845;;20834;:18;;20826:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20904:17;20899:246;;20939:15;20963:19;20974:7;20963:10;:19::i;:::-;20938:44;;;;;;;21004:7;20997:14;;;;;20899:246;21046:23;21077:19;21088:7;21077:10;:19::i;:::-;21044:52;;;;;;;21118:15;21111:22;;;20716:436;;;;;:::o;29008:92::-;16073:12;:10;:12::i;:::-;16063:22;;:6;;;;;;;;;;:22;;;16055:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29086:6:::1;29076:7;:16;;;;29008:92:::0;:::o;28809:86::-;28852:7;28879:8;;28872:15;;28809:86;:::o;18493:198::-;18559:7;18583:11;:20;18595:7;18583:20;;;;;;;;;;;;;;;;;;;;;;;;;18579:49;;;18612:7;:16;18620:7;18612:16;;;;;;;;;;;;;;;;18605:23;;;;18579:49;18646:37;18666:7;:16;18674:7;18666:16;;;;;;;;;;;;;;;;18646:19;:37::i;:::-;18639:44;;18493:198;;;;:::o;16493:148::-;16073:12;:10;:12::i;:::-;16063:22;;:6;;;;;;;;;;:22;;;16055:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16600:1:::1;16563:40;;16584:6;::::0;::::1;;;;;;;;16563:40;;;;;;;;;;;;16631:1;16614:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16493:148::o:0;15851:79::-;15889:7;15916:6;;;;;;;;;;;15909:13;;15851:79;:::o;18204:87::-;18243:13;18276:7;;;;;;;;;;;;;;;;;18269:14;;18204:87;:::o;19741:269::-;19834:4;19851:129;19860:12;:10;:12::i;:::-;19874:7;19883:96;19922:15;19883:96;;;;;;;;;;;;;;;;;:11;:25;19895:12;:10;:12::i;:::-;19883:25;;;;;;;;;;;;;;;:34;19909:7;19883:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19851:8;:129::i;:::-;19998:4;19991:11;;19741:269;;;;:::o;18699:167::-;18777:4;18794:42;18804:12;:10;:12::i;:::-;18818:9;18829:6;18794:9;:42::i;:::-;18854:4;18847:11;;18699:167;;;;:::o;20018:110::-;20076:4;20100:11;:20;20112:7;20100:20;;;;;;;;;;;;;;;;;;;;;;;;;20093:27;;20018:110;;;:::o;18874:143::-;18955:7;18982:11;:18;18994:5;18982:18;;;;;;;;;;;;;;;:27;19001:7;18982:27;;;;;;;;;;;;;;;;18975:34;;18874:143;;;;:::o;21421:443::-;16073:12;:10;:12::i;:::-;16063:22;;:6;;;;;;;;;;:22;;;16055:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21513:42:::1;21502:53;;:7;:53;;;;21494:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21614:11;:20;21626:7;21614:20;;;;;;;;;;;;;;;;;;;;;;;;;21613:21;21605:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21699:1;21680:7;:16;21688:7;21680:16;;;;;;;;;;;;;;;;:20;21677:108;;;21736:37;21756:7;:16;21764:7;21756:16;;;;;;;;;;;;;;;;21736:19;:37::i;:::-;21717:7;:16;21725:7;21717:16;;;;;;;;;;;;;;;:56;;;;21677:108;21818:4;21795:11;:20;21807:7;21795:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21833:9;21848:7;21833:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21421:443:::0;:::o;16796:244::-;16073:12;:10;:12::i;:::-;16063:22;;:6;;;;;;;;;;:22;;;16055:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16905:1:::1;16885:22;;:8;:22;;;;16877:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16995:8;16966:38;;16987:6;::::0;::::1;;;;;;;;16966:38;;;;;;;;;;;;17024:8;17015:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16796:244:::0;:::o;28903:93::-;28950:7;28976:12;;28969:19;;28903:93;:::o;21872:478::-;16073:12;:10;:12::i;:::-;16063:22;;:6;;;;;;;;;;:22;;;16055:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21953:11:::1;:20;21965:7;21953:20;;;;;;;;;;;;;;;;;;;;;;;;;21945:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22021:9;22016:327;22040:9;:16;;;;22036:1;:20;22016:327;;;22098:7;22082:23;;:9;22092:1;22082:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;22078:254;;;22141:9;22170:1;22151:9;:16;;;;:20;22141:31;;;;;;;;;;;;;;;;;;;;;;;;;22126:9;22136:1;22126:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22210:1;22191:7;:16;22199:7;22191:16;;;;;;;;;;;;;;;:20;;;;22253:5;22230:11;:20;22242:7;22230:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22277:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22311:5;;22078:254;22058:3;;;;;;;22016:327;;;;21872:478:::0;:::o;310:106::-;363:15;398:10;391:17;;310:106;:::o;22358:337::-;22468:1;22451:19;;:5;:19;;;;22443:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22549:1;22530:21;;:7;:21;;;;22522:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22633:6;22603:11;:18;22615:5;22603:18;;;;;;;;;;;;;;;:27;22622:7;22603:27;;;;;;;;;;;;;;;:36;;;;22671:7;22655:32;;22664:5;22655:32;;;22680:6;22655:32;;;;;;;;;;;;;;;;;;22358:337;;;:::o;22703:1099::-;22818:1;22800:20;;:6;:20;;;;22792:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22902:1;22881:23;;:9;:23;;;;22873:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22972:1;22963:6;:10;22955:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23053:7;:5;:7::i;:::-;23043:17;;:6;:17;;;;:41;;;;;23077:7;:5;:7::i;:::-;23064:20;;:9;:20;;;;23043:41;23040:137;;;23117:12;;23107:6;:22;;23099:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23040:137;23202:11;:19;23214:6;23202:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;23226:11;:22;23238:9;23226:22;;;;;;;;;;;;;;;;;;;;;;;;;23225:23;23202:46;23198:597;;;23265:48;23287:6;23295:9;23306:6;23265:21;:48::i;:::-;23198:597;;;23336:11;:19;23348:6;23336:19;;;;;;;;;;;;;;;;;;;;;;;;;23335:20;:46;;;;;23359:11;:22;23371:9;23359:22;;;;;;;;;;;;;;;;;;;;;;;;;23335:46;23331:464;;;23398:46;23418:6;23426:9;23437:6;23398:19;:46::i;:::-;23331:464;;;23467:11;:19;23479:6;23467:19;;;;;;;;;;;;;;;;;;;;;;;;;23466:20;:47;;;;;23491:11;:22;23503:9;23491:22;;;;;;;;;;;;;;;;;;;;;;;;;23490:23;23466:47;23462:333;;;23530:44;23548:6;23556:9;23567:6;23530:17;:44::i;:::-;23462:333;;;23596:11;:19;23608:6;23596:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;23619:11;:22;23631:9;23619:22;;;;;;;;;;;;;;;;;;;;;;;;;23596:45;23592:203;;;23658:48;23680:6;23688:9;23699:6;23658:21;:48::i;:::-;23592:203;;;23739:44;23757:6;23765:9;23776:6;23739:17;:44::i;:::-;23592:203;23462:333;23331:464;23198:597;22703:1099;;;:::o;5128:192::-;5214:7;5247:1;5242;:6;;5250:12;5234:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5274:9;5290:1;5286;:5;5274:17;;5311:1;5304:8;;;5128:192;;;;;:::o;27969:163::-;28010:7;28031:15;28048;28067:19;:17;:19::i;:::-;28030:56;;;;28104:20;28116:7;28104;:11;;:20;;;;:::i;:::-;28097:27;;;;27969:163;:::o;6526:132::-;6584:7;6611:39;6615:1;6618;6611:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6604:46;;6526:132;;;;:::o;4225:181::-;4283:7;4303:9;4319:1;4315;:5;4303:17;;4344:1;4339;:6;;4331:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4397:1;4390:8;;;4225:181;;;;:::o;26691:468::-;26750:7;26759;26768;26777;26786;26795;26816:23;26841:12;26855:13;26872:39;26884:7;26893;;26902:8;;26872:11;:39::i;:::-;26815:96;;;;;;26922:19;26945:10;:8;:10::i;:::-;26922:33;;26967:15;26984:23;27009:12;27025:46;27037:7;27046:4;27052:5;27059:11;27025;:46::i;:::-;26966:105;;;;;;27090:7;27099:15;27116:4;27122:15;27139:4;27145:5;27082:69;;;;;;;;;;;;;;;;;;;26691:468;;;;;;;:::o;4689:136::-;4747:7;4774:43;4778:1;4781;4774:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4767:50;;4689:136;;;;:::o;25053:632::-;25155:19;25178:10;:8;:10::i;:::-;25155:33;;25200:15;25217:23;25242:12;25256:23;25281:12;25295:13;25312:19;25323:7;25312:10;:19::i;:::-;25199:132;;;;;;;;;;;;25342:13;25359:22;25369:11;25359:5;:9;;:22;;;;:::i;:::-;25342:39;;25410:28;25430:7;25410;:15;25418:6;25410:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25392:7;:15;25400:6;25392:15;;;;;;;;;;;;;;;:46;;;;25467:28;25487:7;25467;:15;25475:6;25467:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25449:7;:15;25457:6;25449:15;;;;;;;;;;;;;;;:46;;;;25527:39;25550:15;25527:7;:18;25535:9;25527:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25506:7;:18;25514:9;25506:18;;;;;;;;;;;;;;;:60;;;;25580:37;25592:4;25598:5;25605:4;25611:5;25580:11;:37::i;:::-;25650:9;25633:44;;25642:6;25633:44;;;25661:15;25633:44;;;;;;;;;;;;;;;;;;25053:632;;;;;;;;;;;:::o;24393:652::-;24493:19;24516:10;:8;:10::i;:::-;24493:33;;24538:15;24555:23;24580:12;24594:23;24619:12;24633:13;24650:19;24661:7;24650:10;:19::i;:::-;24537:132;;;;;;;;;;;;24680:13;24697:22;24707:11;24697:5;:9;;:22;;;;:::i;:::-;24680:39;;24748:28;24768:7;24748;:15;24756:6;24748:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24730:7;:15;24738:6;24730:15;;;;;;;;;;;;;;;:46;;;;24808:39;24831:15;24808:7;:18;24816:9;24808:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24787:7;:18;24795:9;24787:18;;;;;;;;;;;;;;;:60;;;;24879:39;24902:15;24879:7;:18;24887:9;24879:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24858:7;:18;24866:9;24858:18;;;;;;;;;;;;;;;:60;;;;24940:37;24952:4;24958:5;24965:4;24971:5;24940:11;:37::i;:::-;25010:9;24993:44;;25002:6;24993:44;;;25021:15;24993:44;;;;;;;;;;;;;;;;;;24393:652;;;;;;;;;;;:::o;23810:575::-;23908:19;23931:10;:8;:10::i;:::-;23908:33;;23953:15;23970:23;23995:12;24009:23;24034:12;24048:13;24065:19;24076:7;24065:10;:19::i;:::-;23952:132;;;;;;;;;;;;24095:13;24112:22;24122:11;24112:5;:9;;:22;;;;:::i;:::-;24095:39;;24163:28;24183:7;24163;:15;24171:6;24163:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24145:7;:15;24153:6;24145:15;;;;;;;;;;;;;;;:46;;;;24223:39;24246:15;24223:7;:18;24231:9;24223:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24202:7;:18;24210:9;24202:18;;;;;;;;;;;;;;;:60;;;;24280:37;24292:4;24298:5;24305:4;24311:5;24280:11;:37::i;:::-;24350:9;24333:44;;24342:6;24333:44;;;24361:15;24333:44;;;;;;;;;;;;;;;;;;23810:575;;;;;;;;;;;:::o;25693:708::-;25795:19;25818:10;:8;:10::i;:::-;25795:33;;25840:15;25857:23;25882:12;25896:23;25921:12;25935:13;25952:19;25963:7;25952:10;:19::i;:::-;25839:132;;;;;;;;;;;;25982:13;25999:22;26009:11;25999:5;:9;;:22;;;;:::i;:::-;25982:39;;26050:28;26070:7;26050;:15;26058:6;26050:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26032:7;:15;26040:6;26032:15;;;;;;;;;;;;;;;:46;;;;26107:28;26127:7;26107;:15;26115:6;26107:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26089:7;:15;26097:6;26089:15;;;;;;;;;;;;;;;:46;;;;26167:39;26190:15;26167:7;:18;26175:9;26167:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26146:7;:18;26154:9;26146:18;;;;;;;;;;;;;;;:60;;;;26238:39;26261:15;26238:7;:18;26246:9;26238:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26217:7;:18;26225:9;26217:18;;;;;;;;;;;;;;;:60;;;;26296:37;26308:4;26314:5;26321:4;26327:5;26296:11;:37::i;:::-;26366:9;26349:44;;26358:6;26349:44;;;26377:15;26349:44;;;;;;;;;;;;;;;;;;25693:708;;;;;;;;;;;:::o;28140:561::-;28190:7;28199;28219:15;28237:7;;28219:25;;28255:15;28273:7;;28255:25;;28302:9;28297:289;28321:9;:16;;;;28317:1;:20;28297:289;;;28387:7;28363;:21;28371:9;28381:1;28371:12;;;;;;;;;;;;;;;;;;;;;;;;;28363:21;;;;;;;;;;;;;;;;:31;:66;;;;28422:7;28398;:21;28406:9;28416:1;28406:12;;;;;;;;;;;;;;;;;;;;;;;;;28398:21;;;;;;;;;;;;;;;;:31;28363:66;28359:97;;;28439:7;;28448;;28431:25;;;;;;;;;28359:97;28481:34;28493:7;:21;28501:9;28511:1;28501:12;;;;;;;;;;;;;;;;;;;;;;;;;28493:21;;;;;;;;;;;;;;;;28481:7;:11;;:34;;;;:::i;:::-;28471:44;;28540:34;28552:7;:21;28560:9;28570:1;28560:12;;;;;;;;;;;;;;;;;;;;;;;;;28552:21;;;;;;;;;;;;;;;;28540:7;:11;;:34;;;;:::i;:::-;28530:44;;28339:3;;;;;;;28297:289;;;;28610:20;28622:7;;28610;;:11;;:20;;;;:::i;:::-;28600:7;:30;28596:61;;;28640:7;;28649;;28632:25;;;;;;;;28596:61;28676:7;28685;28668:25;;;;;;28140:561;;;:::o;7154:278::-;7240:7;7272:1;7268;:5;7275:12;7260:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7299:9;7315:1;7311;:5;;;;;;7299:17;;7423:1;7416:8;;;7154:278;;;;;:::o;27167:377::-;27260:7;27269;27278;27298:12;27313:41;27350:3;27314:30;27340:3;27315:19;27327:6;27315:7;:11;;:19;;;;:::i;:::-;27314:25;;:30;;;;:::i;:::-;27313:36;;:41;;;;:::i;:::-;27298:56;;27365:13;27381:42;27419:3;27382:31;27409:3;27383:20;27395:7;27383;:11;;:20;;;;:::i;:::-;27382:26;;:31;;;;:::i;:::-;27381:37;;:42;;;;:::i;:::-;27365:58;;27434:23;27460:28;27482:5;27460:17;27472:4;27460:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27434:54;;27507:15;27524:4;27530:5;27499:37;;;;;;;;;27167:377;;;;;;;:::o;27552:409::-;27662:7;27671;27680;27700:15;27718:24;27730:11;27718:7;:11;;:24;;;;:::i;:::-;27700:42;;27753:12;27768:21;27777:11;27768:4;:8;;:21;;;;:::i;:::-;27753:36;;27800:13;27816:22;27826:11;27816:5;:9;;:22;;;;:::i;:::-;27800:38;;27849:23;27875:28;27897:5;27875:17;27887:4;27875:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27849:54;;27922:7;27931:15;27948:4;27914:39;;;;;;;;;;27552:409;;;;;;;;:::o;5579:471::-;5637:7;5887:1;5882;:6;5878:47;;;5912:1;5905:8;;;;5878:47;5937:9;5953:1;5949;:5;5937:17;;5982:1;5977;5973;:5;;;;;;:10;5965:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6041:1;6034:8;;;5579:471;;;;;:::o;26409:274::-;26517:28;26539:5;26517:17;26529:4;26517:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;26507:7;:38;;;;26569:20;26584:4;26569:10;;:14;;:20;;;;:::i;:::-;26556:10;:33;;;;26614:22;26630:5;26614:11;;:15;;:22;;;;:::i;:::-;26600:11;:36;;;;26657:18;26669:5;26657:7;;:11;;:18;;;;:::i;:::-;26647:7;:28;;;;26409:274;;;;:::o
Swarm Source
ipfs://f87c1adc5ae0cfbc8d0f25f5ec8011d24cd08ef8ab09f0625993922b17681f6c
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.