ERC-20
Overview
Max Total Supply
180,573.278411600995888915 xHUBBLE
Holders
28
Market
Price
$0.00 @ 0.000000 S
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
LockedHubble
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-24 */ // SPDX-License-Identifier: MIT // This contract began as a fork of xSHADOW. // It does not make use of the Voter Module, Rebasing etc. // It uses xSHADOW lock and vest mechanics. // It uses the transfer exemptions. pragma solidity ^0.8.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // OpenZeppelin Contracts (last updated v5.1.0) (utils/structs/EnumerableSet.sol) // This file was procedurally generated from scripts/generate/templates/EnumerableSet.js. pragma solidity ^0.8.20; /** * @dev Library for managing * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive * types. * * Sets have the following properties: * * - Elements are added, removed, and checked for existence in constant time * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * * ```solidity * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; * * // Declare a set state variable * EnumerableSet.AddressSet private mySet; * } * ``` * * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) * and `uint256` (`UintSet`) are supported. * * [WARNING] * ==== * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure * unusable. * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. * * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an * array of EnumerableSet. * ==== */ library EnumerableSet { // To implement this library for multiple types with as little code // repetition as possible, we write it in terms of a generic Set type with // bytes32 values. // The Set implementation uses private functions, and user-facing // implementations (such as AddressSet) are just wrappers around the // underlying Set. // This means that we can only create new EnumerableSets for types that fit // in bytes32. struct Set { // Storage of set values bytes32[] _values; // Position is the index of the value in the `values` array plus 1. // Position 0 is used to mean a value is not in the set. mapping(bytes32 value => uint256) _positions; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); // The value is stored at length-1, but we add 1 to all indexes // and use 0 as a sentinel value set._positions[value] = set._values.length; return true; } else { return false; } } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function _remove(Set storage set, bytes32 value) private returns (bool) { // We cache the value's position to prevent multiple reads from the same storage slot uint256 position = set._positions[value]; if (position != 0) { // Equivalent to contains(set, value) // To delete an element from the _values array in O(1), we swap the element to delete with the last one in // the array, and then remove the last element (sometimes called as 'swap and pop'). // This modifies the order of the array, as noted in {at}. uint256 valueIndex = position - 1; uint256 lastIndex = set._values.length - 1; if (valueIndex != lastIndex) { bytes32 lastValue = set._values[lastIndex]; // Move the lastValue to the index where the value to delete is set._values[valueIndex] = lastValue; // Update the tracked position of the lastValue (that was just moved) set._positions[lastValue] = position; } // Delete the slot where the moved value was stored set._values.pop(); // Delete the tracked position for the deleted slot delete set._positions[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._positions[value] != 0; } /** * @dev Returns the number of values on the set. O(1). */ function _length(Set storage set) private view returns (uint256) { return set._values.length; } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function _at(Set storage set, uint256 index) private view returns (bytes32) { return set._values[index]; } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function _values(Set storage set) private view returns (bytes32[] memory) { return set._values; } // Bytes32Set struct Bytes32Set { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _add(set._inner, value); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _remove(set._inner, value); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { return _contains(set._inner, value); } /** * @dev Returns the number of values in the set. O(1). */ function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { return _at(set._inner, index); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { bytes32[] memory store = _values(set._inner); bytes32[] memory result; assembly ("memory-safe") { result := store } return result; } // AddressSet struct AddressSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(AddressSet storage set) internal view returns (address[] memory) { bytes32[] memory store = _values(set._inner); address[] memory result; assembly ("memory-safe") { result := store } return result; } // UintSet struct UintSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } /** * @dev Returns the number of values in the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(UintSet storage set) internal view returns (uint256[] memory) { bytes32[] memory store = _values(set._inner); uint256[] memory result; assembly ("memory-safe") { result := store } return result; } } contract LockedHubble is ERC20 { struct VestPosition { uint256 amount; uint256 start; uint256 maxEnd; uint256 vestID; } using EnumerableSet for EnumerableSet.AddressSet; // immutable IERC20 public immutable HUBBLE; // vars address public admiral; address public missionControl; address public xexStaking; uint256 public missionShare = 5000; uint256 public maxVest = 180 days; EnumerableSet.AddressSet exempt; EnumerableSet.AddressSet exemptTo; // constants uint256 public constant BASIS = 10_000; uint256 public constant SLASHING_PENALTY = 5000; uint256 public constant MIN_VEST = 14 days; // mappings mapping(address => VestPosition[]) public vestInfo; // modifiers modifier onlyAdmiral() { require(msg.sender == admiral, "Not the Admiral"); _; } modifier onlyMissionControl() { require(msg.sender == missionControl, "Not Mission Control"); _; } // errors error ZERO(); error NO_VEST(); error CANT_RESCUE(); error ARRAY_LENGTHS(); // events event Lock(address indexed user, uint256 amount); event Crash(address indexed user, uint256 amount); event Exemption(address indexed candidate, bool status, bool success); event NewVest( address indexed user, uint256 indexed vestId, uint256 indexed amount ); event CancelVesting( address indexed user, uint256 indexed vestId, uint256 amount ); event ExitVesting( address indexed user, uint256 indexed vestId, uint256 amount ); // constructor constructor ( address _hubble ) ERC20("Locked Hubble Protocol Shares", "xHUBBLE") { HUBBLE = IERC20(_hubble); admiral = msg.sender; } // mint xHUBBLE function lock(uint256 _amount) external { require(_amount != 0, ZERO()); HUBBLE.transferFrom(msg.sender, address(this), _amount); _mint(msg.sender, _amount); emit Lock(msg.sender, _amount); } // instantly exit xHUBBLE for HUBBLE function crash( uint256 _amount ) external returns (uint256 _exitedAmount) { require(_amount != 0, ZERO()); uint256 penalty = ((_amount * SLASHING_PENALTY) / BASIS); uint256 exitAmount = _amount - penalty; // burn the xHUBBLE _burn(msg.sender, _amount); //transfer the user their HUBBLE HUBBLE.transfer(msg.sender, exitAmount); //transfer mission control their portion _mint(missionControl, penalty * missionShare / BASIS); // transfer xEX staking their portion _mint(xexStaking, penalty - penalty * missionShare / BASIS); emit Crash(msg.sender, exitAmount); return exitAmount; } function createVest(uint256 _amount) external { require(_amount != 0, ZERO()); _burn(msg.sender, _amount); uint256 vestLength = vestInfo[msg.sender].length; vestInfo[msg.sender].push( VestPosition( _amount, block.timestamp, block.timestamp + maxVest, vestLength ) ); emit NewVest(msg.sender, vestLength, _amount); } function exitVest(uint256 _vestID) external { VestPosition storage _vest = vestInfo[msg.sender][_vestID]; require(_vest.amount != 0, NO_VEST()); uint256 _amount = _vest.amount; uint256 _start = _vest.start; _vest.amount = 0; if (block.timestamp < _start + MIN_VEST) { _mint(msg.sender, _amount); emit CancelVesting(msg.sender, _vestID, _amount); } else if (_vest.maxEnd <= block.timestamp) { HUBBLE.transfer(msg.sender, _amount); emit ExitVesting(msg.sender, _vestID, _amount); } else { uint256 base = (_amount * (SLASHING_PENALTY)) / BASIS; uint256 vestEarned = ((_amount * (BASIS - SLASHING_PENALTY) * (block.timestamp - _start)) / maxVest) / BASIS; uint256 exitedAmount = base + vestEarned; // transfer the hubble to the loser HUBBLE.transfer(msg.sender, exitedAmount); // mint xHUBBLE to mission control _mint(missionControl,(_amount - exitedAmount)*missionShare/BASIS); // mint remaining xHUBBLE to xEX Staking _mint(xexStaking,(_amount - exitedAmount) - (_amount - exitedAmount)*missionShare/BASIS); emit ExitVesting(msg.sender, _vestID, _amount); } } function rescueTrappedTokens( address[] calldata _tokens, uint256[] calldata _amounts ) external onlyAdmiral { for (uint256 i = 0; i < _tokens.length; ++i) { /// @dev cant fetch the underlying require(_tokens[i] != address(HUBBLE), CANT_RESCUE()); IERC20(_tokens[i]).transfer(admiral, _amounts[i]); } } // -------------------------------------------------------------------- // ---- Exemptions (from xSHADOW contract) -------------- function setExemption( address[] calldata _exemptee, bool[] calldata _exempt ) external onlyAdmiral { require(_exemptee.length == _exempt.length, ARRAY_LENGTHS()); for (uint256 i = 0; i < _exempt.length; ++i) { bool success = _exempt[i] ? exempt.add(_exemptee[i]) : exempt.remove(_exemptee[i]); emit Exemption(_exemptee[i], _exempt[i], success); } } function setExemptionTo( address[] calldata _exemptee, bool[] calldata _exempt ) external onlyAdmiral { require(_exemptee.length == _exempt.length, ARRAY_LENGTHS()); for (uint256 i = 0; i < _exempt.length; ++i) { bool success = _exempt[i] ? exemptTo.add(_exemptee[i]) : exemptTo.remove(_exemptee[i]); emit Exemption(_exemptee[i], _exempt[i], success); } } // -- admin -------------------------------------------------------------------- function reduceMaxVest() external onlyAdmiral { require(maxVest - 3 days >= 30 days, "min maxVest is 30 days"); maxVest -= 3 days; } function increaseMaxVest() external onlyAdmiral { require(maxVest + 3 days <= 180 days, "max maxVest is 180 days"); maxVest += 3 days; } function changeAdmiral ( address newAdmiral ) external onlyAdmiral { admiral = newAdmiral; } function changeMissionControl ( address newMissionControl ) external onlyAdmiral { exemptTo.add(newMissionControl); exempt.add(newMissionControl); missionControl = newMissionControl; } function changeXEXStaking ( address newStaking ) external onlyAdmiral { exemptTo.add(newStaking); exempt.add(newStaking); xexStaking = newStaking; } function usersTotalVests( address _who ) public view returns (uint256 _length) { return vestInfo[_who].length; } function getVestInfo( address _who, uint256 _vestID ) public view returns (VestPosition memory) { return vestInfo[_who][_vestID]; } function isExempt(address _who) external view returns (bool _exempt) { return exempt.contains(_who); } function _isExempted( address _from, address _to ) internal view returns (bool) { return (exempt.contains(_from) || _from == address(0) || _to == address(0) || exemptTo.contains(_to)); } function transfer(address to, uint256 amount) public virtual override returns (bool) { require(_isExempted(msg.sender,to), "not whitelisted"); return super.transfer(to, amount); } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { require(_isExempted(from,to), "not whitelisted"); return super.transferFrom(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_hubble","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ARRAY_LENGTHS","type":"error"},{"inputs":[],"name":"CANT_RESCUE","type":"error"},{"inputs":[],"name":"NO_VEST","type":"error"},{"inputs":[],"name":"ZERO","type":"error"},{"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":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"vestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"CancelVesting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Crash","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"candidate","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"Exemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"vestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ExitVesting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"vestId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NewVest","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":"BASIS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HUBBLE","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_VEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SLASHING_PENALTY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admiral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"newAdmiral","type":"address"}],"name":"changeAdmiral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMissionControl","type":"address"}],"name":"changeMissionControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newStaking","type":"address"}],"name":"changeXEXStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"crash","outputs":[{"internalType":"uint256","name":"_exitedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"createVest","outputs":[],"stateMutability":"nonpayable","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":"_vestID","type":"uint256"}],"name":"exitVest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"},{"internalType":"uint256","name":"_vestID","type":"uint256"}],"name":"getVestInfo","outputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"maxEnd","type":"uint256"},{"internalType":"uint256","name":"vestID","type":"uint256"}],"internalType":"struct LockedHubble.VestPosition","name":"","type":"tuple"}],"stateMutability":"view","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":[],"name":"increaseMaxVest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"_exempt","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxVest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"missionControl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"missionShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceMaxVest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"rescueTrappedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_exemptee","type":"address[]"},{"internalType":"bool[]","name":"_exempt","type":"bool[]"}],"name":"setExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_exemptee","type":"address[]"},{"internalType":"bool[]","name":"_exempt","type":"bool[]"}],"name":"setExemptionTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"usersTotalVests","outputs":[{"internalType":"uint256","name":"_length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"vestInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"maxEnd","type":"uint256"},{"internalType":"uint256","name":"vestID","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xexStaking","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a060405261138860085562ed4e0060095534801561001c575f5ffd5b50604051612d05380380612d0583398101604081905261003b916100d3565b6040518060400160405280601d81526020017f4c6f636b656420487562626c652050726f746f636f6c205368617265730000008152506040518060400160405280600781526020016678485542424c4560c81b81525081600390816100a09190610198565b5060046100ad8282610198565b5050506001600160a01b0316608052600580546001600160a01b03191633179055610252565b5f602082840312156100e3575f5ffd5b81516001600160a01b03811681146100f9575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061012857607f821691505b60208210810361014657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561019357805f5260205f20601f840160051c810160208510156101715750805b601f840160051c820191505b81811015610190575f815560010161017d565b50505b505050565b81516001600160401b038111156101b1576101b1610100565b6101c5816101bf8454610114565b8461014c565b6020601f8211600181146101f7575f83156101e05750848201515b5f19600385901b1c1916600184901b178455610190565b5f84815260208120601f198516915b828110156102265787850151825560209485019460019092019101610206565b508482101561024357868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b608051612a7861028d5f395f818161040d01528181610d430152818161158f015281816116ed0152818161199f0152611bbb0152612a785ff3fe608060405234801561000f575f5ffd5b506004361061024f575f3560e01c80636c2fc02c1161013d578063a8ebc89c116100b8578063b387710311610088578063dd4670641161006e578063dd46706414610591578063dd62ed3e146105a4578063ef8f9595146105e9575f5ffd5b8063b38771031461056b578063beb7dc341461057e575f5ffd5b8063a8ebc89c14610512578063a9059cbb14610532578063ab95605414610545578063ad5dff7314610558575f5ffd5b8063894547fe1161010d57806394126bb1116100f357806394126bb1146104e457806395d89b41146104f7578063a457c2d7146104ff575f5ffd5b8063894547fe146104c957806393755319146104dc575f5ffd5b80636c2fc02c1461040857806370a08231146104545780637164b8bf1461048957806378683565146104a9575f5ffd5b80632cf53bd8116101cd578063418e51c61161019d578063528cfa9811610183578063528cfa98146103a657806355490ba1146103af5780635a8aed66146103c2575f5ffd5b8063418e51c61461039457806349e821931461039c575f5ffd5b80632cf53bd81461032a578063313ce5671461035f578063353140d01461036e5780633950935114610381575f5ffd5b806311147bd61161022257806323b872dd1161020857806323b872dd146102fb57806325d64f4b1461030e57806326d25b8014610317575f5ffd5b806311147bd6146102c057806318160ddd146102f3575f5ffd5b806306fdde031461025357806307af93e41461027157806308b4bd6314610288578063095ea7b31461029d575b5f5ffd5b61025b6105f2565b60405161026891906126bd565b60405180910390f35b61027a60085481565b604051908152602001610268565b61029b610296366004612710565b610682565b005b6102b06102ab36600461274f565b610775565b6040519015158152602001610268565b6102d36102ce36600461274f565b61078b565b604080519485526020850193909352918301526060820152608001610268565b60025461027a565b6102b0610309366004612777565b6107cd565b61027a61138881565b61029b6103253660046127b1565b610856565b61027a6103383660046127b1565b73ffffffffffffffffffffffffffffffffffffffff165f908152600e602052604090205490565b60405160128152602001610268565b61029b61037c366004612812565b610936565b6102b061038f36600461274f565b610b40565b61029b610b88565b61027a6212750081565b61027a61271081565b61027a6103bd366004612710565b610ca1565b6103d56103d036600461274f565b610e80565b60405161026891908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61042f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610268565b61027a6104623660046127b1565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b60065461042f9073ffffffffffffffffffffffffffffffffffffffff1681565b60075461042f9073ffffffffffffffffffffffffffffffffffffffff1681565b61029b6104d73660046127b1565b610f23565b61029b611003565b61029b6104f2366004612812565b611115565b61025b611318565b6102b061050d36600461274f565b611327565b60055461042f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102b061054036600461274f565b6113fe565b61029b610553366004612710565b611480565b6102b06105663660046127b1565b61183e565b61029b6105793660046127b1565b61184a565b61029b61058c366004612812565b611912565b61029b61059f366004612710565b611b47565b61027a6105b236600461287e565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205490565b61027a60095481565b606060038054610601906128af565b80601f016020809104026020016040519081016040528092919081815260200182805461062d906128af565b80156106785780601f1061064f57610100808354040283529160200191610678565b820191905f5260205f20905b81548152906001019060200180831161065b57829003601f168201915b5050505050905090565b805f036106bb576040517f58fa63ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106c53382611c7d565b335f908152600e602090815260409182902080548351608081018552858152429381018490526009549194929390928301916107009161292d565b815260209081018490528254600181810185555f948552828520845160049093020191825591830151918101919091556040808301516002830155606090920151600390910155518391839133917f7d9230ebb47980ddc758fe4e69ea83a89dafbceb45bd45934798477baa57766891a45050565b5f610781338484611e68565b5060015b92915050565b600e602052815f5260405f2081815481106107a4575f80fd5b5f9182526020909120600490910201805460018201546002830154600390930154919450925084565b5f6107d88484612012565b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6e6f742077686974656c6973746564000000000000000000000000000000000060448201526064015b60405180910390fd5b61084e84848461206d565b949350505050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146108d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b6108e2600c82612151565b506108ee600a82612151565b50600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff1633146109b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b8281146109f0576040517f3d0084d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b81811015610b39575f838383818110610a0d57610a0d612940565b9050602002016020810190610a22919061297d565b610a5d57610a58868684818110610a3b57610a3b612940565b9050602002016020810190610a5091906127b1565b600c90612172565b610a8f565b610a8f868684818110610a7257610a72612940565b9050602002016020810190610a8791906127b1565b600c90612151565b9050858583818110610aa357610aa3612940565b9050602002016020810190610ab891906127b1565b73ffffffffffffffffffffffffffffffffffffffff167f0c26de26c21d52b9af1eae2bc6d3c4f03cf66cf139d32166af29b8aed7135192858585818110610b0157610b01612940565b9050602002016020810190610b16919061297d565b60408051911515825284151560208301520160405180910390a2506001016109f2565b5050505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610781918590610b8390869061292d565b611e68565b60055473ffffffffffffffffffffffffffffffffffffffff163314610c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b62ed4e006009546203f480610c1e919061292d565b1115610c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6d6178206d617856657374206973203138302064617973000000000000000000604482015260640161083a565b6203f48060095f828254610c9a919061292d565b9091555050565b5f815f03610cdb576040517f58fa63ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f612710610ceb61138885612998565b610cf591906129af565b90505f610d0282856129e7565b9050610d0e3385611c7d565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303815f875af1158015610d9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc291906129fa565b50600654600854610e019173ffffffffffffffffffffffffffffffffffffffff169061271090610df29086612998565b610dfc91906129af565b612193565b600754600854610e449173ffffffffffffffffffffffffffffffffffffffff169061271090610e309086612998565b610e3a91906129af565b610dfc90856129e7565b60405181815233907f553f2eb880ddef4ff8c4d97e35ed75df54b7ded4d99af2cf5bcc8880f408a5b19060200160405180910390a29392505050565b610ea760405180608001604052805f81526020015f81526020015f81526020015f81525090565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600e60205260409020805483908110610edd57610edd612940565b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015481525050905092915050565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b610faf600c82612151565b50610fbb600a82612151565b50600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b62278d006203f48060095461109991906129e7565b1015611101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d696e206d617856657374206973203330206461797300000000000000000000604482015260640161083a565b6203f48060095f828254610c9a91906129e7565b60055473ffffffffffffffffffffffffffffffffffffffff163314611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b8281146111cf576040517f3d0084d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b81811015610b39575f8383838181106111ec576111ec612940565b9050602002016020810190611201919061297d565b61123c5761123786868481811061121a5761121a612940565b905060200201602081019061122f91906127b1565b600a90612172565b61126e565b61126e86868481811061125157611251612940565b905060200201602081019061126691906127b1565b600a90612151565b905085858381811061128257611282612940565b905060200201602081019061129791906127b1565b73ffffffffffffffffffffffffffffffffffffffff167f0c26de26c21d52b9af1eae2bc6d3c4f03cf66cf139d32166af29b8aed71351928585858181106112e0576112e0612940565b90506020020160208101906112f5919061297d565b60408051911515825284151560208301520160405180910390a2506001016111d1565b606060048054610601906128af565b335f90815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156113e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161083a565b6113f43385858403611e68565b5060019392505050565b5f6114093384612012565b61146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6e6f742077686974656c69737465640000000000000000000000000000000000604482015260640161083a565b61147983836122b0565b9392505050565b335f908152600e602052604081208054839081106114a0576114a0612940565b905f5260205f2090600402019050805f01545f036114ea576040517f2b5d497a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805460018201545f8355611501621275008261292d565b42101561154f576115123383612193565b604051828152849033907fcda231b62bdbcfdebaec108470aea3eb3fcc5ebe00d79b6e252850d4bf5c60b5906020015b60405180910390a3611838565b42836002015411611643576040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303815f875af11580156115ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160e91906129fa565b50604051828152849033907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb7690602001611542565b5f61271061165361138885612998565b61165d91906129af565b90505f612710600954844261167291906129e7565b6116806113886127106129e7565b61168a9088612998565b6116949190612998565b61169e91906129af565b6116a891906129af565b90505f6116b5828461292d565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303815f875af1158015611748573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c91906129fa565b506006546008546117a69173ffffffffffffffffffffffffffffffffffffffff16906127109061179c858a6129e7565b610df29190612998565b6007546008546117fd9173ffffffffffffffffffffffffffffffffffffffff1690612710906117d5858a6129e7565b6117df9190612998565b6117e991906129af565b6117f384896129e7565b610dfc91906129e7565b604051858152879033907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb769060200160405180910390a35050505b50505050565b5f610785600a836122bc565b60055473ffffffffffffffffffffffffffffffffffffffff1633146118cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b5f5b83811015610b39577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585838181106119e6576119e6612940565b90506020020160208101906119fb91906127b1565b73ffffffffffffffffffffffffffffffffffffffff1603611a48576040517f512428f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848482818110611a5a57611a5a612940565b9050602002016020810190611a6f91906127b1565b60055473ffffffffffffffffffffffffffffffffffffffff9182169163a9059cbb9116858585818110611aa457611aa4612940565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815273ffffffffffffffffffffffffffffffffffffffff909416600485015260200291909101356024830152506044016020604051808303815f875af1158015611b1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3e91906129fa565b50600101611995565b805f03611b80576040517f58fa63ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015611c16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3a91906129fa565b50611c453382612193565b60405181815233907f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d4279060200160405180910390a250565b73ffffffffffffffffffffffffffffffffffffffff8216611d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020819052604090205481811015611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff83165f908152602081905260408120838303905560028054849290611e109084906129e7565b90915550506040518281525f9073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8216611fad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611e5b565b5f61201e600a846122bc565b8061203d575073ffffffffffffffffffffffffffffffffffffffff8316155b8061205c575073ffffffffffffffffffffffffffffffffffffffff8216155b806114795750611479600c836122bc565b5f6120798484846122ea565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260016020908152604080832033845290915290205482811015612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606482015260840161083a565b6121468533858403611e68565b506001949350505050565b5f6114798373ffffffffffffffffffffffffffffffffffffffff841661258e565b5f6114798373ffffffffffffffffffffffffffffffffffffffff84166125da565b73ffffffffffffffffffffffffffffffffffffffff8216612210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161083a565b8060025f828254612221919061292d565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f908152602081905260408120805483929061225a90849061292d565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f6107813384846122ea565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515611479565b73ffffffffffffffffffffffffffffffffffffffff831661238d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8216612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040902054818110156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8085165f9081526020819052604080822085850390559185168152908120805484929061252890849061292d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161154291815260200190565b5f8181526001830160205260408120546125d357508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610785565b505f610785565b5f81815260018301602052604081205480156126b4575f6125fc6001836129e7565b85549091505f9061260f906001906129e7565b905080821461266e575f865f01828154811061262d5761262d612940565b905f5260205f200154905080875f01848154811061264d5761264d612940565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061267f5761267f612a15565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610785565b5f915050610785565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f60208284031215612720575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461274a575f5ffd5b919050565b5f5f60408385031215612760575f5ffd5b61276983612727565b946020939093013593505050565b5f5f5f60608486031215612789575f5ffd5b61279284612727565b92506127a060208501612727565b929592945050506040919091013590565b5f602082840312156127c1575f5ffd5b61147982612727565b5f5f83601f8401126127da575f5ffd5b50813567ffffffffffffffff8111156127f1575f5ffd5b6020830191508360208260051b850101111561280b575f5ffd5b9250929050565b5f5f5f5f60408587031215612825575f5ffd5b843567ffffffffffffffff81111561283b575f5ffd5b612847878288016127ca565b909550935050602085013567ffffffffffffffff811115612866575f5ffd5b612872878288016127ca565b95989497509550505050565b5f5f6040838503121561288f575f5ffd5b61289883612727565b91506128a660208401612727565b90509250929050565b600181811c908216806128c357607f821691505b6020821081036128fa577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561078557610785612900565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b801515811461297a575f5ffd5b50565b5f6020828403121561298d575f5ffd5b81356114798161296d565b808202811582820484141761078557610785612900565b5f826129e2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561078557610785612900565b5f60208284031215612a0a575f5ffd5b81516114798161296d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212207c0347b480fd7869de038e1b33a2dd3d414f48940e424bb1050c22bbe47f8e5c64736f6c634300081c0033000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd
Deployed Bytecode
0x608060405234801561000f575f5ffd5b506004361061024f575f3560e01c80636c2fc02c1161013d578063a8ebc89c116100b8578063b387710311610088578063dd4670641161006e578063dd46706414610591578063dd62ed3e146105a4578063ef8f9595146105e9575f5ffd5b8063b38771031461056b578063beb7dc341461057e575f5ffd5b8063a8ebc89c14610512578063a9059cbb14610532578063ab95605414610545578063ad5dff7314610558575f5ffd5b8063894547fe1161010d57806394126bb1116100f357806394126bb1146104e457806395d89b41146104f7578063a457c2d7146104ff575f5ffd5b8063894547fe146104c957806393755319146104dc575f5ffd5b80636c2fc02c1461040857806370a08231146104545780637164b8bf1461048957806378683565146104a9575f5ffd5b80632cf53bd8116101cd578063418e51c61161019d578063528cfa9811610183578063528cfa98146103a657806355490ba1146103af5780635a8aed66146103c2575f5ffd5b8063418e51c61461039457806349e821931461039c575f5ffd5b80632cf53bd81461032a578063313ce5671461035f578063353140d01461036e5780633950935114610381575f5ffd5b806311147bd61161022257806323b872dd1161020857806323b872dd146102fb57806325d64f4b1461030e57806326d25b8014610317575f5ffd5b806311147bd6146102c057806318160ddd146102f3575f5ffd5b806306fdde031461025357806307af93e41461027157806308b4bd6314610288578063095ea7b31461029d575b5f5ffd5b61025b6105f2565b60405161026891906126bd565b60405180910390f35b61027a60085481565b604051908152602001610268565b61029b610296366004612710565b610682565b005b6102b06102ab36600461274f565b610775565b6040519015158152602001610268565b6102d36102ce36600461274f565b61078b565b604080519485526020850193909352918301526060820152608001610268565b60025461027a565b6102b0610309366004612777565b6107cd565b61027a61138881565b61029b6103253660046127b1565b610856565b61027a6103383660046127b1565b73ffffffffffffffffffffffffffffffffffffffff165f908152600e602052604090205490565b60405160128152602001610268565b61029b61037c366004612812565b610936565b6102b061038f36600461274f565b610b40565b61029b610b88565b61027a6212750081565b61027a61271081565b61027a6103bd366004612710565b610ca1565b6103d56103d036600461274f565b610e80565b60405161026891908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61042f7f000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd81565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610268565b61027a6104623660046127b1565b73ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205490565b60065461042f9073ffffffffffffffffffffffffffffffffffffffff1681565b60075461042f9073ffffffffffffffffffffffffffffffffffffffff1681565b61029b6104d73660046127b1565b610f23565b61029b611003565b61029b6104f2366004612812565b611115565b61025b611318565b6102b061050d36600461274f565b611327565b60055461042f9073ffffffffffffffffffffffffffffffffffffffff1681565b6102b061054036600461274f565b6113fe565b61029b610553366004612710565b611480565b6102b06105663660046127b1565b61183e565b61029b6105793660046127b1565b61184a565b61029b61058c366004612812565b611912565b61029b61059f366004612710565b611b47565b61027a6105b236600461287e565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205490565b61027a60095481565b606060038054610601906128af565b80601f016020809104026020016040519081016040528092919081815260200182805461062d906128af565b80156106785780601f1061064f57610100808354040283529160200191610678565b820191905f5260205f20905b81548152906001019060200180831161065b57829003601f168201915b5050505050905090565b805f036106bb576040517f58fa63ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106c53382611c7d565b335f908152600e602090815260409182902080548351608081018552858152429381018490526009549194929390928301916107009161292d565b815260209081018490528254600181810185555f948552828520845160049093020191825591830151918101919091556040808301516002830155606090920151600390910155518391839133917f7d9230ebb47980ddc758fe4e69ea83a89dafbceb45bd45934798477baa57766891a45050565b5f610781338484611e68565b5060015b92915050565b600e602052815f5260405f2081815481106107a4575f80fd5b5f9182526020909120600490910201805460018201546002830154600390930154919450925084565b5f6107d88484612012565b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6e6f742077686974656c6973746564000000000000000000000000000000000060448201526064015b60405180910390fd5b61084e84848461206d565b949350505050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146108d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b6108e2600c82612151565b506108ee600a82612151565b50600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff1633146109b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b8281146109f0576040517f3d0084d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b81811015610b39575f838383818110610a0d57610a0d612940565b9050602002016020810190610a22919061297d565b610a5d57610a58868684818110610a3b57610a3b612940565b9050602002016020810190610a5091906127b1565b600c90612172565b610a8f565b610a8f868684818110610a7257610a72612940565b9050602002016020810190610a8791906127b1565b600c90612151565b9050858583818110610aa357610aa3612940565b9050602002016020810190610ab891906127b1565b73ffffffffffffffffffffffffffffffffffffffff167f0c26de26c21d52b9af1eae2bc6d3c4f03cf66cf139d32166af29b8aed7135192858585818110610b0157610b01612940565b9050602002016020810190610b16919061297d565b60408051911515825284151560208301520160405180910390a2506001016109f2565b5050505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610781918590610b8390869061292d565b611e68565b60055473ffffffffffffffffffffffffffffffffffffffff163314610c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b62ed4e006009546203f480610c1e919061292d565b1115610c86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6d6178206d617856657374206973203138302064617973000000000000000000604482015260640161083a565b6203f48060095f828254610c9a919061292d565b9091555050565b5f815f03610cdb576040517f58fa63ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f612710610ceb61138885612998565b610cf591906129af565b90505f610d0282856129e7565b9050610d0e3385611c7d565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd73ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303815f875af1158015610d9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc291906129fa565b50600654600854610e019173ffffffffffffffffffffffffffffffffffffffff169061271090610df29086612998565b610dfc91906129af565b612193565b600754600854610e449173ffffffffffffffffffffffffffffffffffffffff169061271090610e309086612998565b610e3a91906129af565b610dfc90856129e7565b60405181815233907f553f2eb880ddef4ff8c4d97e35ed75df54b7ded4d99af2cf5bcc8880f408a5b19060200160405180910390a29392505050565b610ea760405180608001604052805f81526020015f81526020015f81526020015f81525090565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600e60205260409020805483908110610edd57610edd612940565b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015481525050905092915050565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b610faf600c82612151565b50610fbb600a82612151565b50600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b62278d006203f48060095461109991906129e7565b1015611101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d696e206d617856657374206973203330206461797300000000000000000000604482015260640161083a565b6203f48060095f828254610c9a91906129e7565b60055473ffffffffffffffffffffffffffffffffffffffff163314611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b8281146111cf576040517f3d0084d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b81811015610b39575f8383838181106111ec576111ec612940565b9050602002016020810190611201919061297d565b61123c5761123786868481811061121a5761121a612940565b905060200201602081019061122f91906127b1565b600a90612172565b61126e565b61126e86868481811061125157611251612940565b905060200201602081019061126691906127b1565b600a90612151565b905085858381811061128257611282612940565b905060200201602081019061129791906127b1565b73ffffffffffffffffffffffffffffffffffffffff167f0c26de26c21d52b9af1eae2bc6d3c4f03cf66cf139d32166af29b8aed71351928585858181106112e0576112e0612940565b90506020020160208101906112f5919061297d565b60408051911515825284151560208301520160405180910390a2506001016111d1565b606060048054610601906128af565b335f90815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156113e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161083a565b6113f43385858403611e68565b5060019392505050565b5f6114093384612012565b61146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6e6f742077686974656c69737465640000000000000000000000000000000000604482015260640161083a565b61147983836122b0565b9392505050565b335f908152600e602052604081208054839081106114a0576114a0612940565b905f5260205f2090600402019050805f01545f036114ea576040517f2b5d497a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805460018201545f8355611501621275008261292d565b42101561154f576115123383612193565b604051828152849033907fcda231b62bdbcfdebaec108470aea3eb3fcc5ebe00d79b6e252850d4bf5c60b5906020015b60405180910390a3611838565b42836002015411611643576040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390527f000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd73ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303815f875af11580156115ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160e91906129fa565b50604051828152849033907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb7690602001611542565b5f61271061165361138885612998565b61165d91906129af565b90505f612710600954844261167291906129e7565b6116806113886127106129e7565b61168a9088612998565b6116949190612998565b61169e91906129af565b6116a891906129af565b90505f6116b5828461292d565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091507f000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd73ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303815f875af1158015611748573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c91906129fa565b506006546008546117a69173ffffffffffffffffffffffffffffffffffffffff16906127109061179c858a6129e7565b610df29190612998565b6007546008546117fd9173ffffffffffffffffffffffffffffffffffffffff1690612710906117d5858a6129e7565b6117df9190612998565b6117e991906129af565b6117f384896129e7565b610dfc91906129e7565b604051858152879033907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb769060200160405180910390a35050505b50505050565b5f610785600a836122bc565b60055473ffffffffffffffffffffffffffffffffffffffff1633146118cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f74207468652041646d6972616c0000000000000000000000000000000000604482015260640161083a565b5f5b83811015610b39577f000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd73ffffffffffffffffffffffffffffffffffffffff168585838181106119e6576119e6612940565b90506020020160208101906119fb91906127b1565b73ffffffffffffffffffffffffffffffffffffffff1603611a48576040517f512428f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848482818110611a5a57611a5a612940565b9050602002016020810190611a6f91906127b1565b60055473ffffffffffffffffffffffffffffffffffffffff9182169163a9059cbb9116858585818110611aa457611aa4612940565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815273ffffffffffffffffffffffffffffffffffffffff909416600485015260200291909101356024830152506044016020604051808303815f875af1158015611b1a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3e91906129fa565b50600101611995565b805f03611b80576040517f58fa63ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd73ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303815f875af1158015611c16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3a91906129fa565b50611c453382612193565b60405181815233907f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d4279060200160405180910390a250565b73ffffffffffffffffffffffffffffffffffffffff8216611d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020819052604090205481811015611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff83165f908152602081905260408120838303905560028054849290611e109084906129e7565b90915550506040518281525f9073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8216611fad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611e5b565b5f61201e600a846122bc565b8061203d575073ffffffffffffffffffffffffffffffffffffffff8316155b8061205c575073ffffffffffffffffffffffffffffffffffffffff8216155b806114795750611479600c836122bc565b5f6120798484846122ea565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260016020908152604080832033845290915290205482811015612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606482015260840161083a565b6121468533858403611e68565b506001949350505050565b5f6114798373ffffffffffffffffffffffffffffffffffffffff841661258e565b5f6114798373ffffffffffffffffffffffffffffffffffffffff84166125da565b73ffffffffffffffffffffffffffffffffffffffff8216612210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161083a565b8060025f828254612221919061292d565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f908152602081905260408120805483929061225a90849061292d565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f6107813384846122ea565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120541515611479565b73ffffffffffffffffffffffffffffffffffffffff831661238d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8216612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040902054818110156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161083a565b73ffffffffffffffffffffffffffffffffffffffff8085165f9081526020819052604080822085850390559185168152908120805484929061252890849061292d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161154291815260200190565b5f8181526001830160205260408120546125d357508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610785565b505f610785565b5f81815260018301602052604081205480156126b4575f6125fc6001836129e7565b85549091505f9061260f906001906129e7565b905080821461266e575f865f01828154811061262d5761262d612940565b905f5260205f200154905080875f01848154811061264d5761264d612940565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061267f5761267f612a15565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610785565b5f915050610785565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f60208284031215612720575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461274a575f5ffd5b919050565b5f5f60408385031215612760575f5ffd5b61276983612727565b946020939093013593505050565b5f5f5f60608486031215612789575f5ffd5b61279284612727565b92506127a060208501612727565b929592945050506040919091013590565b5f602082840312156127c1575f5ffd5b61147982612727565b5f5f83601f8401126127da575f5ffd5b50813567ffffffffffffffff8111156127f1575f5ffd5b6020830191508360208260051b850101111561280b575f5ffd5b9250929050565b5f5f5f5f60408587031215612825575f5ffd5b843567ffffffffffffffff81111561283b575f5ffd5b612847878288016127ca565b909550935050602085013567ffffffffffffffff811115612866575f5ffd5b612872878288016127ca565b95989497509550505050565b5f5f6040838503121561288f575f5ffd5b61289883612727565b91506128a660208401612727565b90509250929050565b600181811c908216806128c357607f821691505b6020821081036128fa577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561078557610785612900565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b801515811461297a575f5ffd5b50565b5f6020828403121561298d575f5ffd5b81356114798161296d565b808202811582820484141761078557610785612900565b5f826129e2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561078557610785612900565b5f60208284031215612a0a575f5ffd5b81516114798161296d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212207c0347b480fd7869de038e1b33a2dd3d414f48940e424bb1050c22bbe47f8e5c64736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd
-----Decoded View---------------
Arg [0] : _hubble (address): 0xd441a37aA73fc1DDd2db99FC4c92f233b7d41CBd
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d441a37aa73fc1ddd2db99fc4c92f233b7d41cbd
Deployed Bytecode Sourcemap
19695:8496:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20090:34;;;;;;;;;642:25:1;;;630:2;615:18;20090:34:0;496:177:1;22667:468:0;;;;;;:::i;:::-;;:::i;:::-;;2739:169;;;;;;:::i;:::-;;:::i;:::-;;;1580:14:1;;1573:22;1555:41;;1543:2;1528:18;2739:169:0;1415:187:1;20444:50:0;;;;;;:::i;:::-;;:::i;:::-;;;;1838:25:1;;;1894:2;1879:18;;1872:34;;;;1922:18;;;1915:34;1980:2;1965:18;;1958:34;1825:3;1810:19;20444:50:0;1607:391:1;2146:108:0;2234:12;;2146:108;;27930:258;;;;;;:::i;:::-;;:::i;20318:47::-;;20361:4;20318:47;;26796:198;;;;;;:::i;:::-;;:::i;27002:140::-;;;;;;:::i;:::-;27113:14;;27078:15;27113:14;;;:8;:14;;;;;:21;;27002:140;2045:93;;;2128:2;2715:36:1;;2703:2;2688:18;2045:93:0;2573:184:1;25537:470:0;;;;;;:::i;:::-;;:::i;3416:215::-;;;;;;:::i;:::-;;:::i;26262:159::-;;;:::i;20372:42::-;;20407:7;20372:42;;20273:38;;20305:6;20273:38;;21944:715;;;;;;:::i;:::-;;:::i;27150:168::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;4129:13:1;;4111:32;;4199:4;4187:17;;;4181:24;4159:20;;;4152:54;4262:4;4250:17;;;4244:24;4222:20;;;4215:54;4325:4;4313:17;;;4307:24;4285:20;;;4278:54;;;;4098:3;4083:19;;3904:434;19941:30:0;;;;;;;;4532:42:1;4520:55;;;4502:74;;4490:2;4475:18;19941:30:0;4343:239:1;2262:127:0;;;;;;:::i;:::-;2363:18;;2336:7;2363:18;;;;;;;;;;;;2262:127;20022:29;;;;;;;;;20058:25;;;;;;;;;26558:230;;;;;;:::i;:::-;;:::i;26099:155::-;;;:::i;25065:464::-;;;;;;:::i;:::-;;:::i;1933:104::-;;;:::i;3639:413::-;;;;;;:::i;:::-;;:::i;19993:22::-;;;;;;;;;27720:202;;;;;;:::i;:::-;;:::i;23143:1377::-;;;;;;:::i;:::-;;:::i;27326:116::-;;;;;;:::i;:::-;;:::i;26429:120::-;;;;;;:::i;:::-;;:::i;24528:387::-;;;;;;:::i;:::-;;:::i;21662:232::-;;;;;;:::i;:::-;;:::i;2580:151::-;;;;;;:::i;:::-;2696:18;;;;2669:7;2696:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2580:151;20131:33;;;;;;1825:100;1879:13;1912:5;1905:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:100;:::o;22667:468::-;22732:7;22743:1;22732:12;22724:29;;;;;;;;;;;;;;;;;22764:26;22770:10;22782:7;22764:5;:26::i;:::-;22831:10;22801:18;22822:20;;;:8;:20;;;;;;;;;:27;;22900:160;;;;;;;;;;22957:15;22900:160;;;;;;23009:7;;22822:27;;:20;;22900:160;;;;;22991:25;;;:::i;:::-;22900:160;;;;;;;;;22860:211;;;;;;;;-1:-1:-1;22860:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23087:40;23119:7;;23035:10;;23095;;23087:40;;;22713:422;22667:468;:::o;2739:169::-;2822:4;2839:39;1293:10;2862:7;2871:6;2839:8;:39::i;:::-;-1:-1:-1;2896:4:0;2739:169;;;;;:::o;20444:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20444:50:0;-1:-1:-1;20444:50:0;:::o;27930:258::-;28061:4;28086:20;28098:4;28103:2;28086:11;:20::i;:::-;28078:48;;;;;;;6819:2:1;28078:48:0;;;6801:21:1;6858:2;6838:18;;;6831:30;6897:17;6877:18;;;6870:45;6932:18;;28078:48:0;;;;;;;;;28144:36;28163:4;28169:2;28173:6;28144:18;:36::i;:::-;28137:43;27930:258;-1:-1:-1;;;;27930:258:0:o;26796:198::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;26895:24:::1;:8;26908:10:::0;26895:12:::1;:24::i;:::-;-1:-1:-1::0;26930:22:0::1;:6;26941:10:::0;26930::::1;:22::i;:::-;-1:-1:-1::0;26963:10:0::1;:23:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;26796:198::o;25537:470::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;25681:34;;::::1;25673:60;;;;;;;;;;;;;;;;;25749:9;25744:256;25764:18:::0;;::::1;25744:256;;;25804:12;25819:7;;25827:1;25819:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:105;;25895:29;25911:9;;25921:1;25911:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25895:8;::::0;:15:::1;:29::i;:::-;25819:105;;;25849:26;25862:9;;25872:1;25862:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25849:8;::::0;:12:::1;:26::i;:::-;25804:120;;25954:9;;25964:1;25954:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25944:44;;;25968:7;;25976:1;25968:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25944:44;::::0;;8050:14:1;;8043:22;8025:41;;8109:14;;8102:22;8097:2;8082:18;;8075:50;7998:18;25944:44:0::1;;;;;;;-1:-1:-1::0;25784:3:0::1;;25744:256;;;;25537:470:::0;;;;:::o;3416:215::-;1293:10;3504:4;3553:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;3504:4;;3521:80;;3544:7;;3553:47;;3590:10;;3553:47;:::i;:::-;3521:8;:80::i;26262:159::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;26349:8:::1;26329:7;;26339:6;26329:16;;;;:::i;:::-;:28;;26321:64;;;::::0;::::1;::::0;;8338:2:1;26321:64:0::1;::::0;::::1;8320:21:1::0;8377:2;8357:18;;;8350:30;8416:25;8396:18;;;8389:53;8459:18;;26321:64:0::1;8136:347:1::0;26321:64:0::1;26407:6;26396:7;;:17;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;26262:159:0:o;21944:715::-;22010:21;22052:7;22063:1;22052:12;22044:29;;;;;;;;;;;;;;;;;22084:15;20305:6;22104:26;20361:4;22104:7;:26;:::i;:::-;22103:36;;;;:::i;:::-;22084:56;-1:-1:-1;22151:18:0;22172:17;22084:56;22172:7;:17;:::i;:::-;22151:38;;22229:26;22235:10;22247:7;22229:5;:26::i;:::-;22308:39;;;;;22324:10;22308:39;;;9247:74:1;9337:18;;;9330:34;;;22308:6:0;:15;;;;;9220:18:1;;22308:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;22414:14:0;;22440:12;;22408:53;;22414:14;;;20305:6;;22430:22;;:7;:22;:::i;:::-;:30;;;;:::i;:::-;22408:5;:53::i;:::-;22525:10;;22557:12;;22519:59;;22525:10;;;20305:6;;22547:22;;:7;:22;:::i;:::-;:30;;;;:::i;:::-;22537:40;;:7;:40;:::i;22519:59::-;22594:29;;642:25:1;;;22600:10:0;;22594:29;;630:2:1;615:18;22594:29:0;;;;;;;22641:10;21944:715;-1:-1:-1;;;21944:715:0:o;27150:168::-;27248:19;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27248:19:0;27287:14;;;;;;;:8;:14;;;;;:23;;27302:7;;27287:23;;;;;;:::i;:::-;;;;;;;;;;;27280:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27150:168;;;;:::o;26558:230::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;26664:31:::1;:8;26677:17:::0;26664:12:::1;:31::i;:::-;-1:-1:-1::0;26706:29:0::1;:6;26717:17:::0;26706:10:::1;:29::i;:::-;-1:-1:-1::0;26746:14:0::1;:34:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;26558:230::o;26099:155::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;26184:7:::1;26174:6;26164:7;;:16;;;;:::i;:::-;:27;;26156:62;;;::::0;::::1;::::0;;9827:2:1;26156:62:0::1;::::0;::::1;9809:21:1::0;9866:2;9846:18;;;9839:30;9905:24;9885:18;;;9878:52;9947:18;;26156:62:0::1;9625:346:1::0;26156:62:0::1;26240:6;26229:7;;:17;;;;;;;:::i;25065:464::-:0;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;25207:34;;::::1;25199:60;;;;;;;;;;;;;;;;;25275:9;25270:252;25290:18:::0;;::::1;25270:252;;;25330:12;25345:7;;25353:1;25345:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:101;;25419:27;25433:9;;25443:1;25433:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25419:6;::::0;:13:::1;:27::i;:::-;25345:101;;;25375:24;25386:9;;25396:1;25386:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25375:6;::::0;:10:::1;:24::i;:::-;25330:116;;25476:9;;25486:1;25476:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25466:44;;;25490:7;;25498:1;25490:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;25466:44;::::0;;8050:14:1;;8043:22;8025:41;;8109:14;;8102:22;8097:2;8082:18;;8075:50;7998:18;25466:44:0::1;;;;;;;-1:-1:-1::0;25310:3:0::1;;25270:252;;1933:104:::0;1989:13;2022:7;2015:14;;;;;:::i;3639:413::-;1293:10;3732:4;3776:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;3829:35;;;;3821:85;;;;;;;10178:2:1;3821:85:0;;;10160:21:1;10217:2;10197:18;;;10190:30;10256:34;10236:18;;;10229:62;10327:7;10307:18;;;10300:35;10352:19;;3821:85:0;9976:401:1;3821:85:0;3942:67;1293:10;3965:7;3993:15;3974:16;:34;3942:8;:67::i;:::-;-1:-1:-1;4040:4:0;;3639:413;-1:-1:-1;;;3639:413:0:o;27720:202::-;27799:4;27824:26;27836:10;27847:2;27824:11;:26::i;:::-;27816:54;;;;;;;6819:2:1;27816:54:0;;;6801:21:1;6858:2;6838:18;;;6831:30;6897:17;6877:18;;;6870:45;6932:18;;27816:54:0;6617:339:1;27816:54:0;27888:26;27903:2;27907:6;27888:14;:26::i;:::-;27881:33;27720:202;-1:-1:-1;;;27720:202:0:o;23143:1377::-;23236:10;23198:26;23227:20;;;:8;:20;;;;;:29;;23248:7;;23227:29;;;;;;:::i;:::-;;;;;;;;;;;23198:58;;23275:5;:12;;;23291:1;23275:17;23267:37;;;;;;;;;;;;;;;;;23333:12;;23373:11;;;;23315:15;23395:16;;23444:17;20407:7;23373:11;23444:17;:::i;:::-;23426:15;:35;23422:1091;;;23478:26;23484:10;23496:7;23478:5;:26::i;:::-;23524:43;;642:25:1;;;23550:7:0;;23538:10;;23524:43;;630:2:1;615:18;23524:43:0;;;;;;;;23422:1091;;;23614:15;23598:5;:12;;;:31;23594:919;;23646:36;;;;;23662:10;23646:36;;;9247:74:1;9337:18;;;9330:34;;;23646:6:0;:15;;;;;9220:18:1;;23646:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;23702:41:0;;642:25:1;;;23726:7:0;;23714:10;;23702:41;;630:2:1;615:18;23702:41:0;496:177:1;23594:919:0;23785:12;20305:6;23801:28;20361:4;23801:7;:28;:::i;:::-;23800:38;;;;:::i;:::-;23785:53;;23853:18;20305:6;23979:7;;23968:6;23950:15;:24;;;;:::i;:::-;23904;20361:4;20305:6;23904:24;:::i;:::-;23876:53;;:7;:53;:::i;:::-;:99;;;;:::i;:::-;23875:111;;;;:::i;:::-;23874:121;;;;:::i;:::-;23853:142;-1:-1:-1;24010:20:0;24033:17;23853:142;24033:4;:17;:::i;:::-;24114:41;;;;;24130:10;24114:41;;;9247:74:1;9337:18;;;9330:34;;;24010:40:0;;-1:-1:-1;24114:6:0;:15;;;;;9220:18:1;;24114:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24224:14:0;;24264:12;;24218:65;;24224:14;;;20305:6;;24240:22;24250:12;24240:7;:22;:::i;:::-;24239:37;;;;:::i;24218:65::-;24358:10;;24421:12;;24352:88;;24358:10;;;20305:6;;24397:22;24407:12;24397:7;:22;:::i;:::-;24396:37;;;;:::i;:::-;:43;;;;:::i;:::-;24370:22;24380:12;24370:7;:22;:::i;:::-;24369:70;;;;:::i;24352:88::-;24460:41;;642:25:1;;;24484:7:0;;24472:10;;24460:41;;630:2:1;615:18;24460:41:0;;;;;;;23770:743;;;23594:919;23187:1333;;;23143:1377;:::o;27326:116::-;27381:12;27413:21;:6;27429:4;27413:15;:21::i;26429:120::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;26521:7:::1;:20:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;26429:120::o;24528:387::-;20577:7;;;;20563:10;:21;20555:49;;;;;;;7163:2:1;20555:49:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:17;7221:18;;;7214:45;7276:18;;20555:49:0;6961:339:1;20555:49:0;24676:9:::1;24671:237;24691:18:::0;;::::1;24671:237;;;24809:6;24787:29;;:7;;24795:1;24787:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:29;;::::0;24779:53:::1;;;;;;;;;;;;;;;;;24854:7;;24862:1;24854:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;24875:7;::::0;24847:27:::1;::::0;;::::1;::::0;::::1;::::0;24875:7:::1;24884:8:::0;;24893:1;24884:11;;::::1;;;;;:::i;:::-;24847:49;::::0;;::::1;::::0;;;;;;9277:42:1;9265:55;;;24847:49:0::1;::::0;::::1;9247:74:1::0;24884:11:0::1;;::::0;;;::::1;;9337:18:1::0;;;9330:34;-1:-1:-1;9220:18:1;;24847:49:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;24711:3:0::1;;24671:237;;21662:232:::0;21721:7;21732:1;21721:12;21713:29;;;;;;;;;;;;;;;;;21753:55;;;;;21773:10;21753:55;;;10584:74:1;21793:4:0;10674:18:1;;;10667:83;10766:18;;;10759:34;;;21753:6:0;:19;;;;;10557:18:1;;21753:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21819:26;21825:10;21837:7;21819:5;:26::i;:::-;21861:25;;642::1;;;21866:10:0;;21861:25;;630:2:1;615:18;21861:25:0;;;;;;;21662:232;:::o;5208:591::-;5292:21;;;5284:67;;;;;;;11006:2:1;5284:67:0;;;10988:21:1;11045:2;11025:18;;;11018:30;11084:34;11064:18;;;11057:62;11155:3;11135:18;;;11128:31;11176:19;;5284:67:0;10804:397:1;5284:67:0;5451:18;;;5426:22;5451:18;;;;;;;;;;;5488:24;;;;5480:71;;;;;;;11408:2:1;5480:71:0;;;11390:21:1;11447:2;11427:18;;;11420:30;11486:34;11466:18;;;11459:62;11557:4;11537:18;;;11530:32;11579:19;;5480:71:0;11206:398:1;5480:71:0;5587:18;;;:9;:18;;;;;;;;;;5608:23;;;5587:44;;5653:12;:22;;5625:6;;5587:9;5653:22;;5625:6;;5653:22;:::i;:::-;;;;-1:-1:-1;;5693:37:0;;642:25:1;;;5719:1:0;;5693:37;;;;;;630:2:1;615:18;5693:37:0;;;;;;;;5273:526;5208:591;;:::o;5807:380::-;5943:19;;;5935:68;;;;;;;11811:2:1;5935:68:0;;;11793:21:1;11850:2;11830:18;;;11823:30;11889:34;11869:18;;;11862:62;11960:6;11940:18;;;11933:34;11984:19;;5935:68:0;11609:400:1;5935:68:0;6022:21;;;6014:68;;;;;;;12216:2:1;6014:68:0;;;12198:21:1;12255:2;12235:18;;;12228:30;12294:34;12274:18;;;12267:62;12365:4;12345:18;;;12338:32;12387:19;;6014:68:0;12014:398:1;6014:68:0;6095:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6147:32;;642:25:1;;;6147:32:0;;615:18:1;6147:32:0;496:177:1;27450:262:0;27547:4;27572:22;:6;27588:5;27572:15;:22::i;:::-;:58;;;-1:-1:-1;27611:19:0;;;;27572:58;:92;;;-1:-1:-1;27647:17:0;;;;27572:92;:131;;;-1:-1:-1;27681:22:0;:8;27699:3;27681:17;:22::i;2916:492::-;3056:4;3073:36;3083:6;3091:9;3102:6;3073:9;:36::i;:::-;3149:19;;;3122:24;3149:19;;;:11;:19;;;;;;;;1293:10;3149:33;;;;;;;;3201:26;;;;3193:79;;;;;;;12619:2:1;3193:79:0;;;12601:21:1;12658:2;12638:18;;;12631:30;12697:34;12677:18;;;12670:62;12768:10;12748:18;;;12741:38;12796:19;;3193:79:0;12417:404:1;3193:79:0;3308:57;3317:6;1293:10;3358:6;3339:16;:25;3308:8;:57::i;:::-;-1:-1:-1;3396:4:0;;2916:492;-1:-1:-1;;;;2916:492:0:o;14958:152::-;15028:4;15052:50;15057:3;15077:23;;;15052:4;:50::i;15286:158::-;15359:4;15383:53;15391:3;15411:23;;;15383:7;:53::i;4801:399::-;4885:21;;;4877:65;;;;;;;13028:2:1;4877:65:0;;;13010:21:1;13067:2;13047:18;;;13040:30;13106:33;13086:18;;;13079:61;13157:18;;4877:65:0;12826:355:1;4877:65:0;5033:6;5017:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;5050:18:0;;;:9;:18;;;;;;;;;;:28;;5072:6;;5050:9;:28;;5072:6;;5050:28;:::i;:::-;;;;-1:-1:-1;;5094:37:0;;642:25:1;;;5094:37:0;;;;5111:1;;5094:37;;630:2:1;615:18;5094:37:0;;;;;;;4801:399;;:::o;2397:175::-;2483:4;2500:42;1293:10;2524:9;2535:6;2500:9;:42::i;15530:167::-;15664:23;;;15610:4;10908:21;;;:14;;;:21;;;;;;:26;;15634:55;10811:131;4060:733;4200:20;;;4192:70;;;;;;;13388:2:1;4192:70:0;;;13370:21:1;13427:2;13407:18;;;13400:30;13466:34;13446:18;;;13439:62;13537:7;13517:18;;;13510:35;13562:19;;4192:70:0;13186:401:1;4192:70:0;4281:23;;;4273:71;;;;;;;13794:2:1;4273:71:0;;;13776:21:1;13833:2;13813:18;;;13806:30;13872:34;13852:18;;;13845:62;13943:5;13923:18;;;13916:33;13966:19;;4273:71:0;13592:399:1;4273:71:0;4441:17;;;4417:21;4441:17;;;;;;;;;;;4477:23;;;;4469:74;;;;;;;14198:2:1;4469:74:0;;;14180:21:1;14237:2;14217:18;;;14210:30;14276:34;14256:18;;;14249:62;14347:8;14327:18;;;14320:36;14373:19;;4469:74:0;13996:402:1;4469:74:0;4579:17;;;;:9;:17;;;;;;;;;;;4599:22;;;4579:42;;4643:20;;;;;;;;:30;;4615:6;;4579:9;4643:30;;4615:6;;4643:30;:::i;:::-;;;;;;;;4708:9;4691:35;;4700:6;4691:35;;;4719:6;4691:35;;;;642:25:1;;630:2;615:18;;496:177;8733:416:0;8796:4;10908:21;;;:14;;;:21;;;;;;8813:329;;-1:-1:-1;8856:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;9041:18;;9017:21;;;:14;;;:21;;;;;;:42;;;;9074:11;;8813:329;-1:-1:-1;9125:5:0;9118:12;;9325:1400;9391:4;9522:21;;;:14;;;:21;;;;;;9560:13;;9556:1162;;9933:18;9954:12;9965:1;9954:8;:12;:::i;:::-;10001:18;;9933:33;;-1:-1:-1;9981:17:0;;10001:22;;10022:1;;10001:22;:::i;:::-;9981:42;;10058:9;10044:10;:23;10040:385;;10088:17;10108:3;:11;;10120:9;10108:22;;;;;;;;:::i;:::-;;;;;;;;;10088:42;;10258:9;10232:3;:11;;10244:10;10232:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;10373:25;;;:14;;;:25;;;;;:36;;;10040:385;10506:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;10612:3;:14;;:21;10627:5;10612:21;;;;;;;;;;;10605:28;;;10657:4;10650:11;;;;;;;9556:1162;10701:5;10694:12;;;;;14:477:1;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;482:2;412:66;407:2;399:6;395:15;391:88;380:9;376:104;372:113;364:121;;;14:477;;;;:::o;678:226::-;737:6;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;-1:-1:-1;851:23:1;;678:226;-1:-1:-1;678:226:1:o;909:196::-;977:20;;1037:42;1026:54;;1016:65;;1006:93;;1095:1;1092;1085:12;1006:93;909:196;;;:::o;1110:300::-;1178:6;1186;1239:2;1227:9;1218:7;1214:23;1210:32;1207:52;;;1255:1;1252;1245:12;1207:52;1278:29;1297:9;1278:29;:::i;:::-;1268:39;1376:2;1361:18;;;;1348:32;;-1:-1:-1;;;1110:300:1:o;2003:374::-;2080:6;2088;2096;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2188:29;2207:9;2188:29;:::i;:::-;2178:39;;2236:38;2270:2;2259:9;2255:18;2236:38;:::i;:::-;2003:374;;2226:48;;-1:-1:-1;;;2343:2:1;2328:18;;;;2315:32;;2003:374::o;2382:186::-;2441:6;2494:2;2482:9;2473:7;2469:23;2465:32;2462:52;;;2510:1;2507;2500:12;2462:52;2533:29;2552:9;2533:29;:::i;2762:367::-;2825:8;2835:6;2889:3;2882:4;2874:6;2870:17;2866:27;2856:55;;2907:1;2904;2897:12;2856:55;-1:-1:-1;2930:20:1;;2973:18;2962:30;;2959:50;;;3005:1;3002;2995:12;2959:50;3042:4;3034:6;3030:17;3018:29;;3102:3;3095:4;3085:6;3082:1;3078:14;3070:6;3066:27;3062:38;3059:47;3056:67;;;3119:1;3116;3109:12;3056:67;2762:367;;;;;:::o;3134:765::-;3253:6;3261;3269;3277;3330:2;3318:9;3309:7;3305:23;3301:32;3298:52;;;3346:1;3343;3336:12;3298:52;3386:9;3373:23;3419:18;3411:6;3408:30;3405:50;;;3451:1;3448;3441:12;3405:50;3490:70;3552:7;3543:6;3532:9;3528:22;3490:70;:::i;:::-;3579:8;;-1:-1:-1;3464:96:1;-1:-1:-1;;3667:2:1;3652:18;;3639:32;3696:18;3683:32;;3680:52;;;3728:1;3725;3718:12;3680:52;3767:72;3831:7;3820:8;3809:9;3805:24;3767:72;:::i;:::-;3134:765;;;;-1:-1:-1;3858:8:1;-1:-1:-1;;;;3134:765:1:o;5591:260::-;5659:6;5667;5720:2;5708:9;5699:7;5695:23;5691:32;5688:52;;;5736:1;5733;5726:12;5688:52;5759:29;5778:9;5759:29;:::i;:::-;5749:39;;5807:38;5841:2;5830:9;5826:18;5807:38;:::i;:::-;5797:48;;5591:260;;;;;:::o;5856:437::-;5935:1;5931:12;;;;5978;;;5999:61;;6053:4;6045:6;6041:17;6031:27;;5999:61;6106:2;6098:6;6095:14;6075:18;6072:38;6069:218;;6143:77;6140:1;6133:88;6244:4;6241:1;6234:15;6272:4;6269:1;6262:15;6069:218;;5856:437;;;:::o;6298:184::-;6350:77;6347:1;6340:88;6447:4;6444:1;6437:15;6471:4;6468:1;6461:15;6487:125;6552:9;;;6573:10;;;6570:36;;;6586:18;;:::i;7305:184::-;7357:77;7354:1;7347:88;7454:4;7451:1;7444:15;7478:4;7475:1;7468:15;7494:118;7580:5;7573:13;7566:21;7559:5;7556:32;7546:60;;7602:1;7599;7592:12;7546:60;7494:118;:::o;7617:241::-;7673:6;7726:2;7714:9;7705:7;7701:23;7697:32;7694:52;;;7742:1;7739;7732:12;7694:52;7781:9;7768:23;7800:28;7822:5;7800:28;:::i;8488:168::-;8561:9;;;8592;;8609:15;;;8603:22;;8589:37;8579:71;;8630:18;;:::i;8661:274::-;8701:1;8727;8717:189;;8762:77;8759:1;8752:88;8863:4;8860:1;8853:15;8891:4;8888:1;8881:15;8717:189;-1:-1:-1;8920:9:1;;8661:274::o;8940:128::-;9007:9;;;9028:11;;;9025:37;;;9042:18;;:::i;9375:245::-;9442:6;9495:2;9483:9;9474:7;9470:23;9466:32;9463:52;;;9511:1;9508;9501:12;9463:52;9543:9;9537:16;9562:28;9584:5;9562:28;:::i;14403:184::-;14455:77;14452:1;14445:88;14552:4;14549:1;14542:15;14576:4;14573:1;14566:15
Swarm Source
ipfs://7c0347b480fd7869de038e1b33a2dd3d414f48940e424bb1050c22bbe47f8e5c
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.