Source Code
Multichain Info
N/A
Latest 6 from a total of 6 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Claim Rewards | 32539233 | 10 days ago | IN | 0.5 APE | 0.01038882 | ||||
| Stake | 32290536 | 17 days ago | IN | 4.5 APE | 0.00618566 | ||||
| Stake | 32290478 | 17 days ago | IN | 2 APE | 0.01590033 | ||||
| Stake | 32282928 | 17 days ago | IN | 25 APE | 0.01589809 | ||||
| Deposit Reward T... | 32088040 | 22 days ago | IN | 0 APE | 0.00777018 | ||||
| Stake | 32087437 | 22 days ago | IN | 5 APE | 0.01929054 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
GSAStakingVault
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at apescan.io on 2026-01-06
*/
/// @author OutlawDevs
// .----------------. .----------------. .----------------.
// | .--------------. || .--------------. || .--------------. |
// | | ______ | || | _______ | || | __ | |
// | | .' ___ | | || | / ___ | | || | / \ | |
// | | / .' \_| | || | | (__ \_| | || | / /\ \ | |
// | | | | ____ | || | '.___`-. | || | / ____ \ | |
// | | \ `.___] _| | || | |`\____) | | || | _/ / \ \_ | |
// | | `._____.' | || | |_______.' | || ||____| |____|| |
// | | | || | | || | | |
// | '--------------' || '--------------' || '--------------' |
// '----------------' '----------------' '----------------'
// File: @openzeppelin/contracts/security/ReentrancyGuard.sol
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be _NOT_ENTERED
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == _ENTERED;
}
}
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// File: @openzeppelin/contracts/security/Pausable.sol
// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
abstract contract Pausable is Context {
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() {
_paused = false;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
_requireNotPaused();
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
_requirePaused();
_;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Throws if the contract is paused.
*/
function _requireNotPaused() internal view virtual {
require(!paused(), "Pausable: paused");
}
/**
* @dev Throws if the contract is not paused.
*/
function _requirePaused() internal view virtual {
require(paused(), "Pausable: not paused");
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: GoblinSagaApeStakeVault.sol
pragma solidity ^0.8.20;
interface IERC20 {
function transfer(address to, uint256 amount) external returns (bool);
function transferFrom(address f, address t, uint256 a) external returns (bool);
}
contract GSAStakingVault is
ReentrancyGuard,
Pausable,
Ownable
{
uint256 public constant DAY = 1 days;
uint256 public constant LOCK_30 = 30 days;
uint256 public constant LOCK_60 = 60 days;
uint256 public constant LOCK_90 = 90 days;
// Base reward editable
uint256 public rewardPerApePerDay;
IERC20 public rewardToken;
uint256 public stakeFee;
uint256 public claimFee;
uint256 public earlyExitPenalty; // %
uint256 public vaultLockedShare; // %
uint256 public totalShares;
uint256 public permanentlyLocked;
struct Position {
uint256 shares;
uint256 deposited;
uint256 locked;
uint256 start;
uint256 lockDuration;
uint256 claimedRewards;
}
mapping(address => mapping(uint256 => Position)) public positions;
mapping(uint256 => uint256) public lockBonuses; // lockDuration => bonus
event Staked(address indexed user, uint256 amount, uint256 lock);
event Withdrawn(address indexed user, uint256 amount, uint256 lock);
event RewardsClaimed(address indexed user, uint256 reward);
event RewardPerApeUpdated(uint256 newReward);
event LockBonusUpdated(uint256 lock, uint256 newBonus);
/* ---------------------------------- */
/* Constructor */
/* ---------------------------------- */
constructor(
address _rewardToken,
uint256 _stakeFee,
uint256 _claimFee,
uint256 _earlyExitPenalty,
uint256 _vaultLockedShare,
uint256 _rewardPerApePerDay,
uint256 _bonusLock30,
uint256 _bonusLock60,
uint256 _bonusLock90
) Ownable(msg.sender)
{
require(_rewardToken != address(0), "Invalid token");
require(_earlyExitPenalty <= 50, "Penalty too high");
require(_vaultLockedShare <= 50, "Locked share too high");
rewardToken = IERC20(_rewardToken);
stakeFee = _stakeFee;
claimFee = _claimFee;
earlyExitPenalty = _earlyExitPenalty;
vaultLockedShare = _vaultLockedShare;
rewardPerApePerDay = _rewardPerApePerDay;
lockBonuses[LOCK_30] = _bonusLock30;
lockBonuses[LOCK_60] = _bonusLock60;
lockBonuses[LOCK_90] = _bonusLock90;
}
receive() external payable {}
/* ---------------------------------- */
/* Owner Editable Settings */
/* ---------------------------------- */
function setRewardPerApePerDay(uint256 newReward) external onlyOwner {
rewardPerApePerDay = newReward;
emit RewardPerApeUpdated(newReward);
}
function setLockBonus(uint256 lock, uint256 newBonus) external onlyOwner {
require(lock == LOCK_30 || lock == LOCK_60 || lock == LOCK_90, "Invalid lock");
lockBonuses[lock] = newBonus;
emit LockBonusUpdated(lock, newBonus);
}
function setStakeFee(uint256 newStakeFee) external onlyOwner {
stakeFee = newStakeFee;
}
function setClaimFee(uint256 newClaimFee) external onlyOwner {
claimFee = newClaimFee;
}
function setRewardToken(address newRewardToken) external onlyOwner {
require(newRewardToken != address(0), "Invalid token address");
rewardToken = IERC20(newRewardToken);
}
/* ---------------------------------- */
/* Vault Logic */
/* ---------------------------------- */
function totalAssets() public view returns (uint256) {
return address(this).balance - permanentlyLocked;
}
function previewDeposit(uint256 amount) public view returns (uint256) {
if (totalShares == 0) return amount;
return (amount * totalShares) / totalAssets();
}
function previewWithdraw(uint256 shares) public view returns (uint256) {
return (shares * totalAssets()) / totalShares;
}
function pendingRewards(address user, uint256 lock) public view returns (uint256) {
Position memory p = positions[user][lock];
if (p.shares == 0 || p.deposited == 0) return 0;
uint256 elapsed = block.timestamp - p.start; // segundos transcurridos
uint256 dailyReward = rewardPerApePerDay + lockBonuses[lock]; // base + bonus
uint256 reward = (p.deposited * dailyReward * elapsed) / DAY;
return reward;
}
/* ---------------- User Actions ---------------- */
function stake(uint256 lock) external payable nonReentrant whenNotPaused {
require(lock == LOCK_30 || lock == LOCK_60 || lock == LOCK_90, "Invalid lock");
require(msg.value > stakeFee, "Insufficient APE");
uint256 amount = msg.value - stakeFee;
uint256 locked = (amount * vaultLockedShare) / 100;
uint256 usable = amount - locked;
permanentlyLocked += locked;
uint256 shares = previewDeposit(usable);
totalShares += shares;
Position storage p = positions[msg.sender][lock];
if (p.shares == 0) {
p.start = block.timestamp;
p.lockDuration = lock;
}
p.shares += shares;
p.deposited += usable;
p.locked += locked;
emit Staked(msg.sender, usable, lock);
}
function claimRewards(uint256 lock) external payable nonReentrant {
require(msg.value == claimFee, "Bad fee");
uint256 reward = pendingRewards(msg.sender, lock);
require(reward > 0, "No rewards");
Position storage p = positions[msg.sender][lock];
p.start = block.timestamp;
p.claimedRewards += reward;
rewardToken.transfer(msg.sender, reward);
emit RewardsClaimed(msg.sender, reward);
}
function withdraw(uint256 lock) external nonReentrant {
Position storage p = positions[msg.sender][lock];
require(p.shares > 0, "No position");
uint256 amount = previewWithdraw(p.shares);
if (block.timestamp < p.start + p.lockDuration) {
uint256 penalty = (amount * earlyExitPenalty) / 100;
amount -= penalty;
permanentlyLocked += penalty;
}
totalShares -= p.shares;
delete positions[msg.sender][lock];
payable(msg.sender).transfer(amount);
emit Withdrawn(msg.sender, amount, lock);
}
/* ---------------- Staker Info ---------------- */
function stakerInfo(address user, uint256 lock)
external
view
returns (
uint256 lockDuration,
uint256 startTime,
uint256 depositedAPE,
uint256 lockedAPE,
uint256 claimedRewards,
uint256 pendingReward,
uint256 unlockTime
)
{
Position memory p = positions[user][lock];
if (p.shares == 0) return (0, 0, 0, 0, 0, 0, 0);
return (
p.lockDuration,
p.start,
p.deposited,
p.locked,
p.claimedRewards,
pendingRewards(user, lock),
p.start + p.lockDuration
);
}
/* ---------------- Owner Funds ---------------- */
function depositRewardTokens(uint256 amount) external onlyOwner {
rewardToken.transferFrom(msg.sender, address(this), amount);
}
function withdrawRewardTokens(uint256 amount) external onlyOwner {
rewardToken.transfer(owner(), amount);
}
function withdrawVaultLocked(uint256 amount) external onlyOwner {
require(amount <= permanentlyLocked, "Excess");
permanentlyLocked -= amount;
payable(owner()).transfer(amount);
}
/* ---------------- Vault Info ---------------- */
function vaultLockedAmount() external view returns (uint256) {
return permanentlyLocked;
}
function vaultAvailable() external view returns (uint256) {
return address(this).balance - permanentlyLocked;
}
/* ---------------- Lock Bonuses Info ---------------- */
function getLockBonuses() external view returns (
uint256 lock30,
uint256 lock60,
uint256 lock90
) {
return (
lockBonuses[LOCK_30],
lockBonuses[LOCK_60],
lockBonuses[LOCK_90]
);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"},{"internalType":"uint256","name":"_stakeFee","type":"uint256"},{"internalType":"uint256","name":"_claimFee","type":"uint256"},{"internalType":"uint256","name":"_earlyExitPenalty","type":"uint256"},{"internalType":"uint256","name":"_vaultLockedShare","type":"uint256"},{"internalType":"uint256","name":"_rewardPerApePerDay","type":"uint256"},{"internalType":"uint256","name":"_bonusLock30","type":"uint256"},{"internalType":"uint256","name":"_bonusLock60","type":"uint256"},{"internalType":"uint256","name":"_bonusLock90","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBonus","type":"uint256"}],"name":"LockBonusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newReward","type":"uint256"}],"name":"RewardPerApeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lock","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lock","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOCK_30","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOCK_60","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOCK_90","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lock","type":"uint256"}],"name":"claimRewards","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositRewardTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyExitPenalty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLockBonuses","outputs":[{"internalType":"uint256","name":"lock30","type":"uint256"},{"internalType":"uint256","name":"lock60","type":"uint256"},{"internalType":"uint256","name":"lock90","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockBonuses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"lock","type":"uint256"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"permanentlyLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"deposited","type":"uint256"},{"internalType":"uint256","name":"locked","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"lockDuration","type":"uint256"},{"internalType":"uint256","name":"claimedRewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerApePerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newClaimFee","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lock","type":"uint256"},{"internalType":"uint256","name":"newBonus","type":"uint256"}],"name":"setLockBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newReward","type":"uint256"}],"name":"setRewardPerApePerDay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRewardToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newStakeFee","type":"uint256"}],"name":"setStakeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lock","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"stakeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"lock","type":"uint256"}],"name":"stakerInfo","outputs":[{"internalType":"uint256","name":"lockDuration","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"depositedAPE","type":"uint256"},{"internalType":"uint256","name":"lockedAPE","type":"uint256"},{"internalType":"uint256","name":"claimedRewards","type":"uint256"},{"internalType":"uint256","name":"pendingReward","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vaultAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultLockedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultLockedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lock","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawRewardTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawVaultLocked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801562000010575f80fd5b506040516200293b3803806200293b8339818101604052810190620000369190620003f7565b3360015f819055505f60015f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ca575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c19190620004e1565b60405180910390fd5b620000db816200029860201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036200014d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000144906200055a565b60405180910390fd5b603286111562000194576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200018b90620005c8565b60405180910390fd5b6032851115620001db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d29062000636565b60405180910390fd5b8860035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876004819055508660058190555085600681905550846007819055508360028190555082600b5f62278d0081526020019081526020015f208190555081600b5f624f1a0081526020019081526020015f208190555080600b5f6276a70081526020019081526020015f208190555050505050505050505062000656565b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000389826200035e565b9050919050565b6200039b816200037d565b8114620003a6575f80fd5b50565b5f81519050620003b98162000390565b92915050565b5f819050919050565b620003d381620003bf565b8114620003de575f80fd5b50565b5f81519050620003f181620003c8565b92915050565b5f805f805f805f805f6101208a8c0312156200041857620004176200035a565b5b5f620004278c828d01620003a9565b99505060206200043a8c828d01620003e1565b98505060406200044d8c828d01620003e1565b9750506060620004608c828d01620003e1565b9650506080620004738c828d01620003e1565b95505060a0620004868c828d01620003e1565b94505060c0620004998c828d01620003e1565b93505060e0620004ac8c828d01620003e1565b925050610100620004c08c828d01620003e1565b9150509295985092959850929598565b620004db816200037d565b82525050565b5f602082019050620004f65f830184620004d0565b92915050565b5f82825260208201905092915050565b7f496e76616c696420746f6b656e000000000000000000000000000000000000005f82015250565b5f62000542600d83620004fc565b91506200054f826200050c565b602082019050919050565b5f6020820190508181035f830152620005738162000534565b9050919050565b7f50656e616c747920746f6f2068696768000000000000000000000000000000005f82015250565b5f620005b0601083620004fc565b9150620005bd826200057a565b602082019050919050565b5f6020820190508181035f830152620005e181620005a2565b9050919050565b7f4c6f636b656420736861726520746f6f206869676800000000000000000000005f82015250565b5f6200061e601583620004fc565b91506200062b82620005e8565b602082019050919050565b5f6020820190508181035f8301526200064f8162000610565b9050919050565b6122d780620006645f395ff3fe60806040526004361061021d575f3560e01c80638295a40011610122578063c6337f28116100aa578063e2d7bee41161006e578063e2d7bee41461077d578063ef8b30f7146107a5578063f2fde38b146107e1578063f524fb4814610809578063f7c618c11461084557610224565b8063c6337f2814610695578063c75db412146106d7578063cb43b2dd14610701578063dd95386e14610729578063df2b7cac1461075357610224565b806399d32fc4116100f157806399d32fc4146105bc578063a694fc3a146105e6578063b465613b14610602578063ba0b86101461062a578063c1be66771461065457610224565b80638295a400146105185780638aee8127146105405780638da5cb5b146105685780639051c5971461059257610224565b8063294f6807116101a55780633ad097f6116101745780633ad097f6146104465780635c975abb146104725780635e708c111461049c5780636099ecb2146104c6578063715018a61461050257610224565b8063294f6807146103a45780632e1a7d4d146103cc5780632e75ab50146103f45780633a98ef391461041c57610224565b806313a4f575116101ec57806313a4f575146102d457806316c621e0146102fe57806319fa5af414610326578063222c97771461035057806327cfe8561461037a57610224565b806301e1d114146102285780630962ef791461025257806309e131911461026e5780630a28a4771461029857610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61086f565b604051610249919061199d565b60405180910390f35b61026c600480360381019061026791906119e4565b610883565b005b348015610279575f80fd5b50610282610a88565b60405161028f919061199d565b60405180910390f35b3480156102a3575f80fd5b506102be60048036038101906102b991906119e4565b610a8e565b6040516102cb919061199d565b60405180910390f35b3480156102df575f80fd5b506102e8610ab6565b6040516102f5919061199d565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f91906119e4565b610abd565b005b348015610331575f80fd5b5061033a610b67565b604051610347919061199d565b60405180910390f35b34801561035b575f80fd5b50610364610b70565b604051610371919061199d565b60405180910390f35b348015610385575f80fd5b5061038e610b76565b60405161039b919061199d565b60405180910390f35b3480156103af575f80fd5b506103ca60048036038101906103c59190611a0f565b610b7d565b005b3480156103d7575f80fd5b506103f260048036038101906103ed91906119e4565b610c37565b005b3480156103ff575f80fd5b5061041a600480360381019061041591906119e4565b610e76565b005b348015610427575f80fd5b50610430610e88565b60405161043d919061199d565b60405180910390f35b348015610451575f80fd5b5061045a610e8e565b60405161046993929190611a4d565b60405180910390f35b34801561047d575f80fd5b50610486610edb565b6040516104939190611a9c565b60405180910390f35b3480156104a7575f80fd5b506104b0610ef0565b6040516104bd919061199d565b60405180910390f35b3480156104d1575f80fd5b506104ec60048036038101906104e79190611b0f565b610ef6565b6040516104f9919061199d565b60405180910390f35b34801561050d575f80fd5b5061051661101d565b005b348015610523575f80fd5b5061053e600480360381019061053991906119e4565b611030565b005b34801561054b575f80fd5b5061056660048036038101906105619190611b4d565b6110e3565b005b348015610573575f80fd5b5061057c61119c565b6040516105899190611b87565b60405180910390f35b34801561059d575f80fd5b506105a66111c3565b6040516105b3919061199d565b60405180910390f35b3480156105c7575f80fd5b506105d06111c9565b6040516105dd919061199d565b60405180910390f35b61060060048036038101906105fb91906119e4565b6111cf565b005b34801561060d575f80fd5b50610628600480360381019061062391906119e4565b611414565b005b348015610635575f80fd5b5061063e61145d565b60405161064b919061199d565b60405180910390f35b34801561065f575f80fd5b5061067a60048036038101906106759190611b0f565b611464565b60405161068c96959493929190611ba0565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b69190611b0f565b6114a7565b6040516106ce9796959493929190611bff565b60405180910390f35b3480156106e2575f80fd5b506106eb6115bb565b6040516106f8919061199d565b60405180910390f35b34801561070c575f80fd5b50610727600480360381019061072291906119e4565b6115c1565b005b348015610734575f80fd5b5061073d611670565b60405161074a919061199d565b60405180910390f35b34801561075e575f80fd5b50610767611677565b604051610774919061199d565b60405180910390f35b348015610788575f80fd5b506107a3600480360381019061079e91906119e4565b61168b565b005b3480156107b0575f80fd5b506107cb60048036038101906107c691906119e4565b61169d565b6040516107d8919061199d565b60405180910390f35b3480156107ec575f80fd5b5061080760048036038101906108029190611b4d565b6116d7565b005b348015610814575f80fd5b5061082f600480360381019061082a91906119e4565b61175b565b60405161083c919061199d565b60405180910390f35b348015610850575f80fd5b50610859611770565b6040516108669190611cc7565b60405180910390f35b5f6009544761087e9190611d0d565b905090565b61088b611795565b60055434146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690611d9a565b60405180910390fd5b5f6108da3383610ef6565b90505f811161091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590611e02565b60405180910390fd5b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20905042816003018190555081816005015f8282546109899190611e20565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016109ec929190611e53565b6020604051808303815f875af1158015610a08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2c9190611ea4565b503373ffffffffffffffffffffffffffffffffffffffff167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe83604051610a73919061199d565b60405180910390a25050610a856117e2565b50565b60025481565b5f600854610a9a61086f565b83610aa59190611ecf565b610aaf9190611f3d565b9050919050565b62278d0081565b610ac56117eb565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610b2393929190611f6d565b6020604051808303815f875af1158015610b3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b639190611ea4565b5050565b5f600954905090565b60045481565b6201518081565b610b856117eb565b62278d00821480610b985750624f1a0082145b80610ba557506276a70082145b610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90611fec565b60405180910390fd5b80600b5f8481526020019081526020015f20819055507f7a93146f7fca8437e4d39efe4d2040b57468ce9084355df783cc3f02b36f99558282604051610c2b92919061200a565b60405180910390a15050565b610c3f611795565b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090505f815f015411610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca9061207b565b60405180910390fd5b5f610ce0825f0154610a8e565b905081600401548260030154610cf69190611e20565b421015610d42575f606460065483610d0e9190611ecf565b610d189190611f3d565b90508082610d269190611d0d565b91508060095f828254610d399190611e20565b92505081905550505b815f015460085f828254610d569190611d0d565b92505081905550600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f8082015f9055600182015f9055600282015f9055600382015f9055600482015f9055600582015f905550503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610e18573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc68285604051610e6192919061200a565b60405180910390a25050610e736117e2565b50565b610e7e6117eb565b8060058190555050565b60085481565b5f805f600b5f62278d0081526020019081526020015f2054600b5f624f1a0081526020019081526020015f2054600b5f6276a70081526020019081526020015f2054925092509250909192565b5f60015f9054906101000a900460ff16905090565b60075481565b5f80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f206040518060c00160405290815f82015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090505f815f01511480610fa057505f8160200151145b15610fae575f915050611017565b5f816060015142610fbf9190611d0d565b90505f600b5f8681526020019081526020015f2054600254610fe19190611e20565b90505f6201518083838660200151610ff99190611ecf565b6110039190611ecf565b61100d9190611f3d565b9050809450505050505b92915050565b6110256117eb565b61102e5f611872565b565b6110386117eb565b60095481111561107d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611074906120e3565b60405180910390fd5b8060095f82825461108e9190611d0d565b9250508190555061109d61119c565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156110df573d5f803e3d5ffd5b5050565b6110eb6117eb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611159576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111509061214b565b60405180910390fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60055481565b6111d7611795565b6111df611934565b62278d008114806111f25750624f1a0081145b806111ff57506276a70081145b61123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590611fec565b60405180910390fd5b6004543411611282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611279906121b3565b60405180910390fd5b5f600454346112919190611d0d565b90505f6064600754836112a49190611ecf565b6112ae9190611f3d565b90505f81836112bd9190611d0d565b90508160095f8282546112d09190611e20565b925050819055505f6112e18261169d565b90508060085f8282546112f49190611e20565b925050819055505f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8781526020019081526020015f2090505f815f015403611367574281600301819055508581600401819055505b81815f015f8282546113799190611e20565b9250508190555082816001015f8282546113939190611e20565b9250508190555083816002015f8282546113ad9190611e20565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9084886040516113fc92919061200a565b60405180910390a250505050506114116117e2565b50565b61141c6117eb565b806002819055507fbaddfb138b3878560c0d1f39f105d46c2796b8898c5d91e47ed1008342e35bdc81604051611452919061199d565b60405180910390a150565b624f1a0081565b600a602052815f5260405f20602052805f5260405f205f9150915050805f0154908060010154908060020154908060030154908060040154908060050154905086565b5f805f805f805f80600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a81526020019081526020015f206040518060c00160405290815f82015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090505f815f015103611568575f805f805f805f9750975097509750975097509750506115af565b80608001518160600151826020015183604001518460a0015161158b8f8f610ef6565b8660800151876060015161159f9190611e20565b9750975097509750975097509750505b92959891949750929550565b60065481565b6115c96117eb565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61160e61119c565b836040518363ffffffff1660e01b815260040161162c929190611e53565b6020604051808303815f875af1158015611648573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166c9190611ea4565b5050565b6276a70081565b5f600954476116869190611d0d565b905090565b6116936117eb565b8060048190555050565b5f80600854036116af578190506116d2565b6116b761086f565b600854836116c59190611ecf565b6116cf9190611f3d565b90505b919050565b6116df6117eb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361174f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016117469190611b87565b60405180910390fd5b61175881611872565b50565b600b602052805f5260405f205f915090505481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f54036117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d09061221b565b60405180910390fd5b60025f81905550565b60015f81905550565b6117f361197e565b73ffffffffffffffffffffffffffffffffffffffff1661181161119c565b73ffffffffffffffffffffffffffffffffffffffff16146118705761183461197e565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016118679190611b87565b60405180910390fd5b565b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61193c610edb565b1561197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197390612283565b60405180910390fd5b565b5f33905090565b5f819050919050565b61199781611985565b82525050565b5f6020820190506119b05f83018461198e565b92915050565b5f80fd5b6119c381611985565b81146119cd575f80fd5b50565b5f813590506119de816119ba565b92915050565b5f602082840312156119f9576119f86119b6565b5b5f611a06848285016119d0565b91505092915050565b5f8060408385031215611a2557611a246119b6565b5b5f611a32858286016119d0565b9250506020611a43858286016119d0565b9150509250929050565b5f606082019050611a605f83018661198e565b611a6d602083018561198e565b611a7a604083018461198e565b949350505050565b5f8115159050919050565b611a9681611a82565b82525050565b5f602082019050611aaf5f830184611a8d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ade82611ab5565b9050919050565b611aee81611ad4565b8114611af8575f80fd5b50565b5f81359050611b0981611ae5565b92915050565b5f8060408385031215611b2557611b246119b6565b5b5f611b3285828601611afb565b9250506020611b43858286016119d0565b9150509250929050565b5f60208284031215611b6257611b616119b6565b5b5f611b6f84828501611afb565b91505092915050565b611b8181611ad4565b82525050565b5f602082019050611b9a5f830184611b78565b92915050565b5f60c082019050611bb35f83018961198e565b611bc0602083018861198e565b611bcd604083018761198e565b611bda606083018661198e565b611be7608083018561198e565b611bf460a083018461198e565b979650505050505050565b5f60e082019050611c125f83018a61198e565b611c1f602083018961198e565b611c2c604083018861198e565b611c39606083018761198e565b611c46608083018661198e565b611c5360a083018561198e565b611c6060c083018461198e565b98975050505050505050565b5f819050919050565b5f611c8f611c8a611c8584611ab5565b611c6c565b611ab5565b9050919050565b5f611ca082611c75565b9050919050565b5f611cb182611c96565b9050919050565b611cc181611ca7565b82525050565b5f602082019050611cda5f830184611cb8565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d1782611985565b9150611d2283611985565b9250828203905081811115611d3a57611d39611ce0565b5b92915050565b5f82825260208201905092915050565b7f42616420666565000000000000000000000000000000000000000000000000005f82015250565b5f611d84600783611d40565b9150611d8f82611d50565b602082019050919050565b5f6020820190508181035f830152611db181611d78565b9050919050565b7f4e6f2072657761726473000000000000000000000000000000000000000000005f82015250565b5f611dec600a83611d40565b9150611df782611db8565b602082019050919050565b5f6020820190508181035f830152611e1981611de0565b9050919050565b5f611e2a82611985565b9150611e3583611985565b9250828201905080821115611e4d57611e4c611ce0565b5b92915050565b5f604082019050611e665f830185611b78565b611e73602083018461198e565b9392505050565b611e8381611a82565b8114611e8d575f80fd5b50565b5f81519050611e9e81611e7a565b92915050565b5f60208284031215611eb957611eb86119b6565b5b5f611ec684828501611e90565b91505092915050565b5f611ed982611985565b9150611ee483611985565b9250828202611ef281611985565b91508282048414831517611f0957611f08611ce0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f4782611985565b9150611f5283611985565b925082611f6257611f61611f10565b5b828204905092915050565b5f606082019050611f805f830186611b78565b611f8d6020830185611b78565b611f9a604083018461198e565b949350505050565b7f496e76616c6964206c6f636b00000000000000000000000000000000000000005f82015250565b5f611fd6600c83611d40565b9150611fe182611fa2565b602082019050919050565b5f6020820190508181035f83015261200381611fca565b9050919050565b5f60408201905061201d5f83018561198e565b61202a602083018461198e565b9392505050565b7f4e6f20706f736974696f6e0000000000000000000000000000000000000000005f82015250565b5f612065600b83611d40565b915061207082612031565b602082019050919050565b5f6020820190508181035f83015261209281612059565b9050919050565b7f45786365737300000000000000000000000000000000000000000000000000005f82015250565b5f6120cd600683611d40565b91506120d882612099565b602082019050919050565b5f6020820190508181035f8301526120fa816120c1565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f612135601583611d40565b915061214082612101565b602082019050919050565b5f6020820190508181035f83015261216281612129565b9050919050565b7f496e73756666696369656e7420415045000000000000000000000000000000005f82015250565b5f61219d601083611d40565b91506121a882612169565b602082019050919050565b5f6020820190508181035f8301526121ca81612191565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612205601f83611d40565b9150612210826121d1565b602082019050919050565b5f6020820190508181035f830152612232816121f9565b9050919050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f61226d601083611d40565b915061227882612239565b602082019050919050565b5f6020820190508181035f83015261229a81612261565b905091905056fea2646970667358221220072eb86361e90d6e3c3d5202a09afd46ee9c78fe8f58cf9a98fa279181fc5dcf64736f6c63430008140033000000000000000000000000c3882d10e49ac4e9888d0c594db723fc9ce9546800000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000001f4
Deployed Bytecode
0x60806040526004361061021d575f3560e01c80638295a40011610122578063c6337f28116100aa578063e2d7bee41161006e578063e2d7bee41461077d578063ef8b30f7146107a5578063f2fde38b146107e1578063f524fb4814610809578063f7c618c11461084557610224565b8063c6337f2814610695578063c75db412146106d7578063cb43b2dd14610701578063dd95386e14610729578063df2b7cac1461075357610224565b806399d32fc4116100f157806399d32fc4146105bc578063a694fc3a146105e6578063b465613b14610602578063ba0b86101461062a578063c1be66771461065457610224565b80638295a400146105185780638aee8127146105405780638da5cb5b146105685780639051c5971461059257610224565b8063294f6807116101a55780633ad097f6116101745780633ad097f6146104465780635c975abb146104725780635e708c111461049c5780636099ecb2146104c6578063715018a61461050257610224565b8063294f6807146103a45780632e1a7d4d146103cc5780632e75ab50146103f45780633a98ef391461041c57610224565b806313a4f575116101ec57806313a4f575146102d457806316c621e0146102fe57806319fa5af414610326578063222c97771461035057806327cfe8561461037a57610224565b806301e1d114146102285780630962ef791461025257806309e131911461026e5780630a28a4771461029857610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c61086f565b604051610249919061199d565b60405180910390f35b61026c600480360381019061026791906119e4565b610883565b005b348015610279575f80fd5b50610282610a88565b60405161028f919061199d565b60405180910390f35b3480156102a3575f80fd5b506102be60048036038101906102b991906119e4565b610a8e565b6040516102cb919061199d565b60405180910390f35b3480156102df575f80fd5b506102e8610ab6565b6040516102f5919061199d565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f91906119e4565b610abd565b005b348015610331575f80fd5b5061033a610b67565b604051610347919061199d565b60405180910390f35b34801561035b575f80fd5b50610364610b70565b604051610371919061199d565b60405180910390f35b348015610385575f80fd5b5061038e610b76565b60405161039b919061199d565b60405180910390f35b3480156103af575f80fd5b506103ca60048036038101906103c59190611a0f565b610b7d565b005b3480156103d7575f80fd5b506103f260048036038101906103ed91906119e4565b610c37565b005b3480156103ff575f80fd5b5061041a600480360381019061041591906119e4565b610e76565b005b348015610427575f80fd5b50610430610e88565b60405161043d919061199d565b60405180910390f35b348015610451575f80fd5b5061045a610e8e565b60405161046993929190611a4d565b60405180910390f35b34801561047d575f80fd5b50610486610edb565b6040516104939190611a9c565b60405180910390f35b3480156104a7575f80fd5b506104b0610ef0565b6040516104bd919061199d565b60405180910390f35b3480156104d1575f80fd5b506104ec60048036038101906104e79190611b0f565b610ef6565b6040516104f9919061199d565b60405180910390f35b34801561050d575f80fd5b5061051661101d565b005b348015610523575f80fd5b5061053e600480360381019061053991906119e4565b611030565b005b34801561054b575f80fd5b5061056660048036038101906105619190611b4d565b6110e3565b005b348015610573575f80fd5b5061057c61119c565b6040516105899190611b87565b60405180910390f35b34801561059d575f80fd5b506105a66111c3565b6040516105b3919061199d565b60405180910390f35b3480156105c7575f80fd5b506105d06111c9565b6040516105dd919061199d565b60405180910390f35b61060060048036038101906105fb91906119e4565b6111cf565b005b34801561060d575f80fd5b50610628600480360381019061062391906119e4565b611414565b005b348015610635575f80fd5b5061063e61145d565b60405161064b919061199d565b60405180910390f35b34801561065f575f80fd5b5061067a60048036038101906106759190611b0f565b611464565b60405161068c96959493929190611ba0565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b69190611b0f565b6114a7565b6040516106ce9796959493929190611bff565b60405180910390f35b3480156106e2575f80fd5b506106eb6115bb565b6040516106f8919061199d565b60405180910390f35b34801561070c575f80fd5b50610727600480360381019061072291906119e4565b6115c1565b005b348015610734575f80fd5b5061073d611670565b60405161074a919061199d565b60405180910390f35b34801561075e575f80fd5b50610767611677565b604051610774919061199d565b60405180910390f35b348015610788575f80fd5b506107a3600480360381019061079e91906119e4565b61168b565b005b3480156107b0575f80fd5b506107cb60048036038101906107c691906119e4565b61169d565b6040516107d8919061199d565b60405180910390f35b3480156107ec575f80fd5b5061080760048036038101906108029190611b4d565b6116d7565b005b348015610814575f80fd5b5061082f600480360381019061082a91906119e4565b61175b565b60405161083c919061199d565b60405180910390f35b348015610850575f80fd5b50610859611770565b6040516108669190611cc7565b60405180910390f35b5f6009544761087e9190611d0d565b905090565b61088b611795565b60055434146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690611d9a565b60405180910390fd5b5f6108da3383610ef6565b90505f811161091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590611e02565b60405180910390fd5b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20905042816003018190555081816005015f8282546109899190611e20565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016109ec929190611e53565b6020604051808303815f875af1158015610a08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2c9190611ea4565b503373ffffffffffffffffffffffffffffffffffffffff167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe83604051610a73919061199d565b60405180910390a25050610a856117e2565b50565b60025481565b5f600854610a9a61086f565b83610aa59190611ecf565b610aaf9190611f3d565b9050919050565b62278d0081565b610ac56117eb565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610b2393929190611f6d565b6020604051808303815f875af1158015610b3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b639190611ea4565b5050565b5f600954905090565b60045481565b6201518081565b610b856117eb565b62278d00821480610b985750624f1a0082145b80610ba557506276a70082145b610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90611fec565b60405180910390fd5b80600b5f8481526020019081526020015f20819055507f7a93146f7fca8437e4d39efe4d2040b57468ce9084355df783cc3f02b36f99558282604051610c2b92919061200a565b60405180910390a15050565b610c3f611795565b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090505f815f015411610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca9061207b565b60405180910390fd5b5f610ce0825f0154610a8e565b905081600401548260030154610cf69190611e20565b421015610d42575f606460065483610d0e9190611ecf565b610d189190611f3d565b90508082610d269190611d0d565b91508060095f828254610d399190611e20565b92505081905550505b815f015460085f828254610d569190611d0d565b92505081905550600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f8082015f9055600182015f9055600282015f9055600382015f9055600482015f9055600582015f905550503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610e18573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc68285604051610e6192919061200a565b60405180910390a25050610e736117e2565b50565b610e7e6117eb565b8060058190555050565b60085481565b5f805f600b5f62278d0081526020019081526020015f2054600b5f624f1a0081526020019081526020015f2054600b5f6276a70081526020019081526020015f2054925092509250909192565b5f60015f9054906101000a900460ff16905090565b60075481565b5f80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f206040518060c00160405290815f82015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090505f815f01511480610fa057505f8160200151145b15610fae575f915050611017565b5f816060015142610fbf9190611d0d565b90505f600b5f8681526020019081526020015f2054600254610fe19190611e20565b90505f6201518083838660200151610ff99190611ecf565b6110039190611ecf565b61100d9190611f3d565b9050809450505050505b92915050565b6110256117eb565b61102e5f611872565b565b6110386117eb565b60095481111561107d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611074906120e3565b60405180910390fd5b8060095f82825461108e9190611d0d565b9250508190555061109d61119c565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156110df573d5f803e3d5ffd5b5050565b6110eb6117eb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611159576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111509061214b565b60405180910390fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60055481565b6111d7611795565b6111df611934565b62278d008114806111f25750624f1a0081145b806111ff57506276a70081145b61123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590611fec565b60405180910390fd5b6004543411611282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611279906121b3565b60405180910390fd5b5f600454346112919190611d0d565b90505f6064600754836112a49190611ecf565b6112ae9190611f3d565b90505f81836112bd9190611d0d565b90508160095f8282546112d09190611e20565b925050819055505f6112e18261169d565b90508060085f8282546112f49190611e20565b925050819055505f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8781526020019081526020015f2090505f815f015403611367574281600301819055508581600401819055505b81815f015f8282546113799190611e20565b9250508190555082816001015f8282546113939190611e20565b9250508190555083816002015f8282546113ad9190611e20565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9084886040516113fc92919061200a565b60405180910390a250505050506114116117e2565b50565b61141c6117eb565b806002819055507fbaddfb138b3878560c0d1f39f105d46c2796b8898c5d91e47ed1008342e35bdc81604051611452919061199d565b60405180910390a150565b624f1a0081565b600a602052815f5260405f20602052805f5260405f205f9150915050805f0154908060010154908060020154908060030154908060040154908060050154905086565b5f805f805f805f80600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a81526020019081526020015f206040518060c00160405290815f82015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090505f815f015103611568575f805f805f805f9750975097509750975097509750506115af565b80608001518160600151826020015183604001518460a0015161158b8f8f610ef6565b8660800151876060015161159f9190611e20565b9750975097509750975097509750505b92959891949750929550565b60065481565b6115c96117eb565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61160e61119c565b836040518363ffffffff1660e01b815260040161162c929190611e53565b6020604051808303815f875af1158015611648573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166c9190611ea4565b5050565b6276a70081565b5f600954476116869190611d0d565b905090565b6116936117eb565b8060048190555050565b5f80600854036116af578190506116d2565b6116b761086f565b600854836116c59190611ecf565b6116cf9190611f3d565b90505b919050565b6116df6117eb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361174f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016117469190611b87565b60405180910390fd5b61175881611872565b50565b600b602052805f5260405f205f915090505481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f54036117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d09061221b565b60405180910390fd5b60025f81905550565b60015f81905550565b6117f361197e565b73ffffffffffffffffffffffffffffffffffffffff1661181161119c565b73ffffffffffffffffffffffffffffffffffffffff16146118705761183461197e565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016118679190611b87565b60405180910390fd5b565b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61193c610edb565b1561197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197390612283565b60405180910390fd5b565b5f33905090565b5f819050919050565b61199781611985565b82525050565b5f6020820190506119b05f83018461198e565b92915050565b5f80fd5b6119c381611985565b81146119cd575f80fd5b50565b5f813590506119de816119ba565b92915050565b5f602082840312156119f9576119f86119b6565b5b5f611a06848285016119d0565b91505092915050565b5f8060408385031215611a2557611a246119b6565b5b5f611a32858286016119d0565b9250506020611a43858286016119d0565b9150509250929050565b5f606082019050611a605f83018661198e565b611a6d602083018561198e565b611a7a604083018461198e565b949350505050565b5f8115159050919050565b611a9681611a82565b82525050565b5f602082019050611aaf5f830184611a8d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ade82611ab5565b9050919050565b611aee81611ad4565b8114611af8575f80fd5b50565b5f81359050611b0981611ae5565b92915050565b5f8060408385031215611b2557611b246119b6565b5b5f611b3285828601611afb565b9250506020611b43858286016119d0565b9150509250929050565b5f60208284031215611b6257611b616119b6565b5b5f611b6f84828501611afb565b91505092915050565b611b8181611ad4565b82525050565b5f602082019050611b9a5f830184611b78565b92915050565b5f60c082019050611bb35f83018961198e565b611bc0602083018861198e565b611bcd604083018761198e565b611bda606083018661198e565b611be7608083018561198e565b611bf460a083018461198e565b979650505050505050565b5f60e082019050611c125f83018a61198e565b611c1f602083018961198e565b611c2c604083018861198e565b611c39606083018761198e565b611c46608083018661198e565b611c5360a083018561198e565b611c6060c083018461198e565b98975050505050505050565b5f819050919050565b5f611c8f611c8a611c8584611ab5565b611c6c565b611ab5565b9050919050565b5f611ca082611c75565b9050919050565b5f611cb182611c96565b9050919050565b611cc181611ca7565b82525050565b5f602082019050611cda5f830184611cb8565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d1782611985565b9150611d2283611985565b9250828203905081811115611d3a57611d39611ce0565b5b92915050565b5f82825260208201905092915050565b7f42616420666565000000000000000000000000000000000000000000000000005f82015250565b5f611d84600783611d40565b9150611d8f82611d50565b602082019050919050565b5f6020820190508181035f830152611db181611d78565b9050919050565b7f4e6f2072657761726473000000000000000000000000000000000000000000005f82015250565b5f611dec600a83611d40565b9150611df782611db8565b602082019050919050565b5f6020820190508181035f830152611e1981611de0565b9050919050565b5f611e2a82611985565b9150611e3583611985565b9250828201905080821115611e4d57611e4c611ce0565b5b92915050565b5f604082019050611e665f830185611b78565b611e73602083018461198e565b9392505050565b611e8381611a82565b8114611e8d575f80fd5b50565b5f81519050611e9e81611e7a565b92915050565b5f60208284031215611eb957611eb86119b6565b5b5f611ec684828501611e90565b91505092915050565b5f611ed982611985565b9150611ee483611985565b9250828202611ef281611985565b91508282048414831517611f0957611f08611ce0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f4782611985565b9150611f5283611985565b925082611f6257611f61611f10565b5b828204905092915050565b5f606082019050611f805f830186611b78565b611f8d6020830185611b78565b611f9a604083018461198e565b949350505050565b7f496e76616c6964206c6f636b00000000000000000000000000000000000000005f82015250565b5f611fd6600c83611d40565b9150611fe182611fa2565b602082019050919050565b5f6020820190508181035f83015261200381611fca565b9050919050565b5f60408201905061201d5f83018561198e565b61202a602083018461198e565b9392505050565b7f4e6f20706f736974696f6e0000000000000000000000000000000000000000005f82015250565b5f612065600b83611d40565b915061207082612031565b602082019050919050565b5f6020820190508181035f83015261209281612059565b9050919050565b7f45786365737300000000000000000000000000000000000000000000000000005f82015250565b5f6120cd600683611d40565b91506120d882612099565b602082019050919050565b5f6020820190508181035f8301526120fa816120c1565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f612135601583611d40565b915061214082612101565b602082019050919050565b5f6020820190508181035f83015261216281612129565b9050919050565b7f496e73756666696369656e7420415045000000000000000000000000000000005f82015250565b5f61219d601083611d40565b91506121a882612169565b602082019050919050565b5f6020820190508181035f8301526121ca81612191565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612205601f83611d40565b9150612210826121d1565b602082019050919050565b5f6020820190508181035f830152612232816121f9565b9050919050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f61226d601083611d40565b915061227882612239565b602082019050919050565b5f6020820190508181035f83015261229a81612261565b905091905056fea2646970667358221220072eb86361e90d6e3c3d5202a09afd46ee9c78fe8f58cf9a98fa279181fc5dcf64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c3882d10e49ac4e9888d0c594db723fc9ce9546800000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000001f4
-----Decoded View---------------
Arg [0] : _rewardToken (address): 0xC3882D10e49Ac4E9888D0C594DB723fC9cE95468
Arg [1] : _stakeFee (uint256): 500000000000000000
Arg [2] : _claimFee (uint256): 500000000000000000
Arg [3] : _earlyExitPenalty (uint256): 15
Arg [4] : _vaultLockedShare (uint256): 10
Arg [5] : _rewardPerApePerDay (uint256): 100
Arg [6] : _bonusLock30 (uint256): 50
Arg [7] : _bonusLock60 (uint256): 250
Arg [8] : _bonusLock90 (uint256): 500
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 000000000000000000000000c3882d10e49ac4e9888d0c594db723fc9ce95468
Arg [1] : 00000000000000000000000000000000000000000000000006f05b59d3b20000
Arg [2] : 00000000000000000000000000000000000000000000000006f05b59d3b20000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [7] : 00000000000000000000000000000000000000000000000000000000000000fa
Arg [8] : 00000000000000000000000000000000000000000000000000000000000001f4
Deployed Bytecode Sourcemap
11099:8455:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14639:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16468:471;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11405:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14955:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11230:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18414:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18968:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11481:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11185:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13810:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16947:619;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14185:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11629:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19278:273;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;6674:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11584:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15098:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10001:103;;;;;;;;;;;;;:::i;:::-;;18693:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14295:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9326:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11662:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11511:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15632:828;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13638:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11278:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11901:65;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;17633:714;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;11541:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18564:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11326:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19080:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14075:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14767:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10259:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11975:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11447:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14639:120;14683:7;14734:17;;14710:21;:41;;;;:::i;:::-;14703:48;;14639:120;:::o;16468:471::-;3090:21;:19;:21::i;:::-;16566:8:::1;;16553:9;:21;16545:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16599:14;16616:32;16631:10;16643:4;16616:14;:32::i;:::-;16599:49;;16676:1;16667:6;:10;16659:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;16705:18;16726:9;:21;16736:10;16726:21;;;;;;;;;;;;;;;:27;16748:4;16726:27;;;;;;;;;;;16705:48;;16774:15;16764:1;:7;;:25;;;;16820:6;16800:1;:16;;;:26;;;;;;;:::i;:::-;;;;;;;;16839:11;;;;;;;;;;;:20;;;16860:10;16872:6;16839:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16912:10;16897:34;;;16924:6;16897:34;;;;;;:::i;:::-;;;;;;;;16534:405;;3134:20:::0;:18;:20::i;:::-;16468:471;:::o;11405:33::-;;;;:::o;14955:135::-;15017:7;15071:11;;15054:13;:11;:13::i;:::-;15045:6;:22;;;;:::i;:::-;15044:38;;;;:::i;:::-;15037:45;;14955:135;;;:::o;11230:41::-;11264:7;11230:41;:::o;18414:142::-;9212:13;:11;:13::i;:::-;18489:11:::1;;;;;;;;;;;:24;;;18514:10;18534:4;18541:6;18489:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18414:142:::0;:::o;18968:104::-;19020:7;19047:17;;19040:24;;18968:104;:::o;11481:23::-;;;;:::o;11185:36::-;11215:6;11185:36;:::o;13810:257::-;9212:13;:11;:13::i;:::-;11264:7:::1;13902:4;:15;:34;;;;11312:7;13921:4;:15;13902:34;:53;;;;11360:7;13940:4;:15;13902:53;13894:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14003:8;13983:11;:17;13995:4;13983:17;;;;;;;;;;;:28;;;;14027:32;14044:4;14050:8;14027:32;;;;;;;:::i;:::-;;;;;;;;13810:257:::0;;:::o;16947:619::-;3090:21;:19;:21::i;:::-;17012:18:::1;17033:9;:21;17043:10;17033:21;;;;;;;;;;;;;;;:27;17055:4;17033:27;;;;;;;;;;;17012:48;;17090:1;17079;:8;;;:12;17071:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;17120:14;17137:25;17153:1;:8;;;17137:15;:25::i;:::-;17120:42;;17207:1;:14;;;17197:1;:7;;;:24;;;;:::i;:::-;17179:15;:42;17175:201;;;17238:15;17286:3;17266:16;;17257:6;:25;;;;:::i;:::-;17256:33;;;;:::i;:::-;17238:51;;17314:7;17304:17;;;;;:::i;:::-;;;17357:7;17336:17;;:28;;;;;;;:::i;:::-;;;;;;;;17223:153;17175:201;17403:1;:8;;;17388:11;;:23;;;;;;;:::i;:::-;;;;;;;;17429:9;:21;17439:10;17429:21;;;;;;;;;;;;;;;:27;17451:4;17429:27;;;;;;;;;;;;17422:34:::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17477:10;17469:28;;:36;17498:6;17469:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17533:10;17523:35;;;17545:6;17553:4;17523:35;;;;;;;:::i;:::-;;;;;;;;17001:565;;3134:20:::0;:18;:20::i;:::-;16947:619;:::o;14185:102::-;9212:13;:11;:13::i;:::-;14268:11:::1;14257:8;:22;;;;14185:102:::0;:::o;11629:26::-;;;;:::o;19278:273::-;19337:14;19362;19387;19442:11;:20;11264:7;19442:20;;;;;;;;;;;;19477:11;:20;11312:7;19477:20;;;;;;;;;;;;19512:11;:20;11360:7;19512:20;;;;;;;;;;;;19420:123;;;;;;19278:273;;;:::o;6674:86::-;6721:4;6745:7;;;;;;;;;;;6738:14;;6674:86;:::o;11584:31::-;;;;:::o;15098:466::-;15171:7;15191:17;15211:9;:15;15221:4;15211:15;;;;;;;;;;;;;;;:21;15227:4;15211:21;;;;;;;;;;;15191:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15259:1;15247;:8;;;:13;:33;;;;15279:1;15264;:11;;;:16;15247:33;15243:47;;;15289:1;15282:8;;;;;15243:47;15303:15;15339:1;:7;;;15321:15;:25;;;;:::i;:::-;15303:43;;15383:19;15426:11;:17;15438:4;15426:17;;;;;;;;;;;;15405:18;;:38;;;;:::i;:::-;15383:60;;15470:14;11215:6;15516:7;15502:11;15488:1;:11;;;:25;;;;:::i;:::-;:35;;;;:::i;:::-;15487:43;;;;:::i;:::-;15470:60;;15550:6;15543:13;;;;;;15098:466;;;;;:::o;10001:103::-;9212:13;:11;:13::i;:::-;10066:30:::1;10093:1;10066:18;:30::i;:::-;10001:103::o:0;18693:211::-;9212:13;:11;:13::i;:::-;18786:17:::1;;18776:6;:27;;18768:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18846:6;18825:17;;:27;;;;;;;:::i;:::-;;;;;;;;18871:7;:5;:7::i;:::-;18863:25;;:33;18889:6;18863:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18693:211:::0;:::o;14295:195::-;9212:13;:11;:13::i;:::-;14407:1:::1;14381:28;;:14;:28;;::::0;14373:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14467:14;14446:11;;:36;;;;;;;;;;;;;;;;;;14295:195:::0;:::o;9326:87::-;9372:7;9399:6;;;;;;;;;;9392:13;;9326:87;:::o;11662:32::-;;;;:::o;11511:23::-;;;;:::o;15632:828::-;3090:21;:19;:21::i;:::-;6279:19:::1;:17;:19::i;:::-;11264:7:::2;15724:4;:15;:34;;;;11312:7;15743:4;:15;15724:34;:53;;;;11360:7;15762:4;:15;15724:53;15716:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15825:8;;15813:9;:20;15805:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15867:14;15896:8;;15884:9;:20;;;;:::i;:::-;15867:37;;15915:14;15962:3;15942:16;;15933:6;:25;;;;:::i;:::-;15932:33;;;;:::i;:::-;15915:50;;15976:14;16002:6;15993;:15;;;;:::i;:::-;15976:32;;16042:6;16021:17;;:27;;;;;;;:::i;:::-;;;;;;;;16061:14;16078:22;16093:6;16078:14;:22::i;:::-;16061:39;;16126:6;16111:11;;:21;;;;;;;:::i;:::-;;;;;;;;16145:18;16166:9;:21;16176:10;16166:21;;;;;;;;;;;;;;;:27;16188:4;16166:27;;;;;;;;;;;16145:48;;16220:1;16208;:8;;;:13:::0;16204:107:::2;;16248:15;16238:1;:7;;:25;;;;16295:4;16278:1;:14;;:21;;;;16204:107;16335:6;16323:1;:8;;;:18;;;;;;;:::i;:::-;;;;;;;;16367:6;16352:1;:11;;;:21;;;;;;;:::i;:::-;;;;;;;;16396:6;16384:1;:8;;;:18;;;;;;;:::i;:::-;;;;;;;;16427:10;16420:32;;;16439:6;16447:4;16420:32;;;;;;;:::i;:::-;;;;;;;;15705:755;;;;;3134:20:::0;:18;:20::i;:::-;15632:828;:::o;13638:164::-;9212:13;:11;:13::i;:::-;13739:9:::1;13718:18;:30;;;;13764;13784:9;13764:30;;;;;;:::i;:::-;;;;;;;;13638:164:::0;:::o;11278:41::-;11312:7;11278:41;:::o;11901:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17633:714::-;17745:20;17780:17;17812:20;17847:17;17879:22;17916:21;17952:18;17998:17;18018:9;:15;18028:4;18018:15;;;;;;;;;;;;;;;:21;18034:4;18018:21;;;;;;;;;;;17998:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18066:1;18054;:8;;;:13;18050:47;;18077:1;18080;18083;18086;18089;18092;18095;18069:28;;;;;;;;;;;;;;;;;18050:47;18132:1;:14;;;18161:1;:7;;;18183:1;:11;;;18209:1;:8;;;18232:1;:16;;;18263:26;18278:4;18284;18263:14;:26::i;:::-;18314:1;:14;;;18304:1;:7;;;:24;;;;:::i;:::-;18110:229;;;;;;;;;;;;;;;17633:714;;;;;;;;;;;:::o;11541:31::-;;;;:::o;18564:121::-;9212:13;:11;:13::i;:::-;18640:11:::1;;;;;;;;;;;:20;;;18661:7;:5;:7::i;:::-;18670:6;18640:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18564:121:::0;:::o;11326:41::-;11360:7;11326:41;:::o;19080:125::-;19129:7;19180:17;;19156:21;:41;;;;:::i;:::-;19149:48;;19080:125;:::o;14075:102::-;9212:13;:11;:13::i;:::-;14158:11:::1;14147:8;:22;;;;14075:102:::0;:::o;14767:180::-;14828:7;14867:1;14852:11;;:16;14848:35;;14877:6;14870:13;;;;14848:35;14926:13;:11;:13::i;:::-;14911:11;;14902:6;:20;;;;:::i;:::-;14901:38;;;;:::i;:::-;14894:45;;14767:180;;;;:::o;10259:220::-;9212:13;:11;:13::i;:::-;10364:1:::1;10344:22;;:8;:22;;::::0;10340:93:::1;;10418:1;10390:31;;;;;;;;;;;:::i;:::-;;;;;;;;10340:93;10443:28;10462:8;10443:18;:28::i;:::-;10259:220:::0;:::o;11975:46::-;;;;;;;;;;;;;;;;;:::o;11447:25::-;;;;;;;;;;;;;:::o;3170:293::-;2572:1;3304:7;;:19;3296:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2572:1;3437:7;:18;;;;3170:293::o;3471:213::-;2528:1;3654:7;:22;;;;3471:213::o;9491:166::-;9562:12;:10;:12::i;:::-;9551:23;;:7;:5;:7::i;:::-;:23;;;9547:103;;9625:12;:10;:12::i;:::-;9598:40;;;;;;;;;;;:::i;:::-;;;;;;;;9547:103;9491:166::o;10639:191::-;10713:16;10732:6;;;;;;;;;;10713:25;;10758:8;10749:6;;:17;;;;;;;;;;;;;;;;;;10813:8;10782:40;;10803:8;10782:40;;;;;;;;;;;;10702:128;10639:191;:::o;6833:108::-;6904:8;:6;:8::i;:::-;6903:9;6895:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6833:108::o;4680:98::-;4733:7;4760:10;4753:17;;4680:98;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:474::-;1445:6;1453;1502:2;1490:9;1481:7;1477:23;1473:32;1470:119;;;1508:79;;:::i;:::-;1470:119;1628:1;1653:53;1698:7;1689:6;1678:9;1674:22;1653:53;:::i;:::-;1643:63;;1599:117;1755:2;1781:53;1826:7;1817:6;1806:9;1802:22;1781:53;:::i;:::-;1771:63;;1726:118;1377:474;;;;;:::o;1857:442::-;2006:4;2044:2;2033:9;2029:18;2021:26;;2057:71;2125:1;2114:9;2110:17;2101:6;2057:71;:::i;:::-;2138:72;2206:2;2195:9;2191:18;2182:6;2138:72;:::i;:::-;2220;2288:2;2277:9;2273:18;2264:6;2220:72;:::i;:::-;1857:442;;;;;;:::o;2305:90::-;2339:7;2382:5;2375:13;2368:21;2357:32;;2305:90;;;:::o;2401:109::-;2482:21;2497:5;2482:21;:::i;:::-;2477:3;2470:34;2401:109;;:::o;2516:210::-;2603:4;2641:2;2630:9;2626:18;2618:26;;2654:65;2716:1;2705:9;2701:17;2692:6;2654:65;:::i;:::-;2516:210;;;;:::o;2732:126::-;2769:7;2809:42;2802:5;2798:54;2787:65;;2732:126;;;:::o;2864:96::-;2901:7;2930:24;2948:5;2930:24;:::i;:::-;2919:35;;2864:96;;;:::o;2966:122::-;3039:24;3057:5;3039:24;:::i;:::-;3032:5;3029:35;3019:63;;3078:1;3075;3068:12;3019:63;2966:122;:::o;3094:139::-;3140:5;3178:6;3165:20;3156:29;;3194:33;3221:5;3194:33;:::i;:::-;3094:139;;;;:::o;3239:474::-;3307:6;3315;3364:2;3352:9;3343:7;3339:23;3335:32;3332:119;;;3370:79;;:::i;:::-;3332:119;3490:1;3515:53;3560:7;3551:6;3540:9;3536:22;3515:53;:::i;:::-;3505:63;;3461:117;3617:2;3643:53;3688:7;3679:6;3668:9;3664:22;3643:53;:::i;:::-;3633:63;;3588:118;3239:474;;;;;:::o;3719:329::-;3778:6;3827:2;3815:9;3806:7;3802:23;3798:32;3795:119;;;3833:79;;:::i;:::-;3795:119;3953:1;3978:53;4023:7;4014:6;4003:9;3999:22;3978:53;:::i;:::-;3968:63;;3924:117;3719:329;;;;:::o;4054:118::-;4141:24;4159:5;4141:24;:::i;:::-;4136:3;4129:37;4054:118;;:::o;4178:222::-;4271:4;4309:2;4298:9;4294:18;4286:26;;4322:71;4390:1;4379:9;4375:17;4366:6;4322:71;:::i;:::-;4178:222;;;;:::o;4406:775::-;4639:4;4677:3;4666:9;4662:19;4654:27;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4772:72;4840:2;4829:9;4825:18;4816:6;4772:72;:::i;:::-;4854;4922:2;4911:9;4907:18;4898:6;4854:72;:::i;:::-;4936;5004:2;4993:9;4989:18;4980:6;4936:72;:::i;:::-;5018:73;5086:3;5075:9;5071:19;5062:6;5018:73;:::i;:::-;5101;5169:3;5158:9;5154:19;5145:6;5101:73;:::i;:::-;4406:775;;;;;;;;;:::o;5187:886::-;5448:4;5486:3;5475:9;5471:19;5463:27;;5500:71;5568:1;5557:9;5553:17;5544:6;5500:71;:::i;:::-;5581:72;5649:2;5638:9;5634:18;5625:6;5581:72;:::i;:::-;5663;5731:2;5720:9;5716:18;5707:6;5663:72;:::i;:::-;5745;5813:2;5802:9;5798:18;5789:6;5745:72;:::i;:::-;5827:73;5895:3;5884:9;5880:19;5871:6;5827:73;:::i;:::-;5910;5978:3;5967:9;5963:19;5954:6;5910:73;:::i;:::-;5993;6061:3;6050:9;6046:19;6037:6;5993:73;:::i;:::-;5187:886;;;;;;;;;;:::o;6079:60::-;6107:3;6128:5;6121:12;;6079:60;;;:::o;6145:142::-;6195:9;6228:53;6246:34;6255:24;6273:5;6255:24;:::i;:::-;6246:34;:::i;:::-;6228:53;:::i;:::-;6215:66;;6145:142;;;:::o;6293:126::-;6343:9;6376:37;6407:5;6376:37;:::i;:::-;6363:50;;6293:126;;;:::o;6425:140::-;6489:9;6522:37;6553:5;6522:37;:::i;:::-;6509:50;;6425:140;;;:::o;6571:159::-;6672:51;6717:5;6672:51;:::i;:::-;6667:3;6660:64;6571:159;;:::o;6736:250::-;6843:4;6881:2;6870:9;6866:18;6858:26;;6894:85;6976:1;6965:9;6961:17;6952:6;6894:85;:::i;:::-;6736:250;;;;:::o;6992:180::-;7040:77;7037:1;7030:88;7137:4;7134:1;7127:15;7161:4;7158:1;7151:15;7178:194;7218:4;7238:20;7256:1;7238:20;:::i;:::-;7233:25;;7272:20;7290:1;7272:20;:::i;:::-;7267:25;;7316:1;7313;7309:9;7301:17;;7340:1;7334:4;7331:11;7328:37;;;7345:18;;:::i;:::-;7328:37;7178:194;;;;:::o;7378:169::-;7462:11;7496:6;7491:3;7484:19;7536:4;7531:3;7527:14;7512:29;;7378:169;;;;:::o;7553:157::-;7693:9;7689:1;7681:6;7677:14;7670:33;7553:157;:::o;7716:365::-;7858:3;7879:66;7943:1;7938:3;7879:66;:::i;:::-;7872:73;;7954:93;8043:3;7954:93;:::i;:::-;8072:2;8067:3;8063:12;8056:19;;7716:365;;;:::o;8087:419::-;8253:4;8291:2;8280:9;8276:18;8268:26;;8340:9;8334:4;8330:20;8326:1;8315:9;8311:17;8304:47;8368:131;8494:4;8368:131;:::i;:::-;8360:139;;8087:419;;;:::o;8512:160::-;8652:12;8648:1;8640:6;8636:14;8629:36;8512:160;:::o;8678:366::-;8820:3;8841:67;8905:2;8900:3;8841:67;:::i;:::-;8834:74;;8917:93;9006:3;8917:93;:::i;:::-;9035:2;9030:3;9026:12;9019:19;;8678:366;;;:::o;9050:419::-;9216:4;9254:2;9243:9;9239:18;9231:26;;9303:9;9297:4;9293:20;9289:1;9278:9;9274:17;9267:47;9331:131;9457:4;9331:131;:::i;:::-;9323:139;;9050:419;;;:::o;9475:191::-;9515:3;9534:20;9552:1;9534:20;:::i;:::-;9529:25;;9568:20;9586:1;9568:20;:::i;:::-;9563:25;;9611:1;9608;9604:9;9597:16;;9632:3;9629:1;9626:10;9623:36;;;9639:18;;:::i;:::-;9623:36;9475:191;;;;:::o;9672:332::-;9793:4;9831:2;9820:9;9816:18;9808:26;;9844:71;9912:1;9901:9;9897:17;9888:6;9844:71;:::i;:::-;9925:72;9993:2;9982:9;9978:18;9969:6;9925:72;:::i;:::-;9672:332;;;;;:::o;10010:116::-;10080:21;10095:5;10080:21;:::i;:::-;10073:5;10070:32;10060:60;;10116:1;10113;10106:12;10060:60;10010:116;:::o;10132:137::-;10186:5;10217:6;10211:13;10202:22;;10233:30;10257:5;10233:30;:::i;:::-;10132:137;;;;:::o;10275:345::-;10342:6;10391:2;10379:9;10370:7;10366:23;10362:32;10359:119;;;10397:79;;:::i;:::-;10359:119;10517:1;10542:61;10595:7;10586:6;10575:9;10571:22;10542:61;:::i;:::-;10532:71;;10488:125;10275:345;;;;:::o;10626:410::-;10666:7;10689:20;10707:1;10689:20;:::i;:::-;10684:25;;10723:20;10741:1;10723:20;:::i;:::-;10718:25;;10778:1;10775;10771:9;10800:30;10818:11;10800:30;:::i;:::-;10789:41;;10979:1;10970:7;10966:15;10963:1;10960:22;10940:1;10933:9;10913:83;10890:139;;11009:18;;:::i;:::-;10890:139;10674:362;10626:410;;;;:::o;11042:180::-;11090:77;11087:1;11080:88;11187:4;11184:1;11177:15;11211:4;11208:1;11201:15;11228:185;11268:1;11285:20;11303:1;11285:20;:::i;:::-;11280:25;;11319:20;11337:1;11319:20;:::i;:::-;11314:25;;11358:1;11348:35;;11363:18;;:::i;:::-;11348:35;11405:1;11402;11398:9;11393:14;;11228:185;;;;:::o;11419:442::-;11568:4;11606:2;11595:9;11591:18;11583:26;;11619:71;11687:1;11676:9;11672:17;11663:6;11619:71;:::i;:::-;11700:72;11768:2;11757:9;11753:18;11744:6;11700:72;:::i;:::-;11782;11850:2;11839:9;11835:18;11826:6;11782:72;:::i;:::-;11419:442;;;;;;:::o;11867:162::-;12007:14;12003:1;11995:6;11991:14;11984:38;11867:162;:::o;12035:366::-;12177:3;12198:67;12262:2;12257:3;12198:67;:::i;:::-;12191:74;;12274:93;12363:3;12274:93;:::i;:::-;12392:2;12387:3;12383:12;12376:19;;12035:366;;;:::o;12407:419::-;12573:4;12611:2;12600:9;12596:18;12588:26;;12660:9;12654:4;12650:20;12646:1;12635:9;12631:17;12624:47;12688:131;12814:4;12688:131;:::i;:::-;12680:139;;12407:419;;;:::o;12832:332::-;12953:4;12991:2;12980:9;12976:18;12968:26;;13004:71;13072:1;13061:9;13057:17;13048:6;13004:71;:::i;:::-;13085:72;13153:2;13142:9;13138:18;13129:6;13085:72;:::i;:::-;12832:332;;;;;:::o;13170:161::-;13310:13;13306:1;13298:6;13294:14;13287:37;13170:161;:::o;13337:366::-;13479:3;13500:67;13564:2;13559:3;13500:67;:::i;:::-;13493:74;;13576:93;13665:3;13576:93;:::i;:::-;13694:2;13689:3;13685:12;13678:19;;13337:366;;;:::o;13709:419::-;13875:4;13913:2;13902:9;13898:18;13890:26;;13962:9;13956:4;13952:20;13948:1;13937:9;13933:17;13926:47;13990:131;14116:4;13990:131;:::i;:::-;13982:139;;13709:419;;;:::o;14134:156::-;14274:8;14270:1;14262:6;14258:14;14251:32;14134:156;:::o;14296:365::-;14438:3;14459:66;14523:1;14518:3;14459:66;:::i;:::-;14452:73;;14534:93;14623:3;14534:93;:::i;:::-;14652:2;14647:3;14643:12;14636:19;;14296:365;;;:::o;14667:419::-;14833:4;14871:2;14860:9;14856:18;14848:26;;14920:9;14914:4;14910:20;14906:1;14895:9;14891:17;14884:47;14948:131;15074:4;14948:131;:::i;:::-;14940:139;;14667:419;;;:::o;15092:171::-;15232:23;15228:1;15220:6;15216:14;15209:47;15092:171;:::o;15269:366::-;15411:3;15432:67;15496:2;15491:3;15432:67;:::i;:::-;15425:74;;15508:93;15597:3;15508:93;:::i;:::-;15626:2;15621:3;15617:12;15610:19;;15269:366;;;:::o;15641:419::-;15807:4;15845:2;15834:9;15830:18;15822:26;;15894:9;15888:4;15884:20;15880:1;15869:9;15865:17;15858:47;15922:131;16048:4;15922:131;:::i;:::-;15914:139;;15641:419;;;:::o;16066:166::-;16206:18;16202:1;16194:6;16190:14;16183:42;16066:166;:::o;16238:366::-;16380:3;16401:67;16465:2;16460:3;16401:67;:::i;:::-;16394:74;;16477:93;16566:3;16477:93;:::i;:::-;16595:2;16590:3;16586:12;16579:19;;16238:366;;;:::o;16610:419::-;16776:4;16814:2;16803:9;16799:18;16791:26;;16863:9;16857:4;16853:20;16849:1;16838:9;16834:17;16827:47;16891:131;17017:4;16891:131;:::i;:::-;16883:139;;16610:419;;;:::o;17035:181::-;17175:33;17171:1;17163:6;17159:14;17152:57;17035:181;:::o;17222:366::-;17364:3;17385:67;17449:2;17444:3;17385:67;:::i;:::-;17378:74;;17461:93;17550:3;17461:93;:::i;:::-;17579:2;17574:3;17570:12;17563:19;;17222:366;;;:::o;17594:419::-;17760:4;17798:2;17787:9;17783:18;17775:26;;17847:9;17841:4;17837:20;17833:1;17822:9;17818:17;17811:47;17875:131;18001:4;17875:131;:::i;:::-;17867:139;;17594:419;;;:::o;18019:166::-;18159:18;18155:1;18147:6;18143:14;18136:42;18019:166;:::o;18191:366::-;18333:3;18354:67;18418:2;18413:3;18354:67;:::i;:::-;18347:74;;18430:93;18519:3;18430:93;:::i;:::-;18548:2;18543:3;18539:12;18532:19;;18191:366;;;:::o;18563:419::-;18729:4;18767:2;18756:9;18752:18;18744:26;;18816:9;18810:4;18806:20;18802:1;18791:9;18787:17;18780:47;18844:131;18970:4;18844:131;:::i;:::-;18836:139;;18563:419;;;:::o
Swarm Source
ipfs://072eb86361e90d6e3c3d5202a09afd46ee9c78fe8f58cf9a98fa279181fc5dcf
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.