// SPDX-License-Identifier: MIT
// AIGuardianThrone - Unified Contract for AI Guardian Throne System
// Handles both USDC payments (with tax) and reward distribution
pragma solidity 0.8.19;
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
interface IERC20 {
function transferFrom(address from, address to, uint256 amount) external returns (bool);
function transfer(address to, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
}
/**
* @title AIGuardianThrone
* @notice Unified contract for AI Guardian Throne system
* @dev Combines payment collection and reward distribution in single contract
*
* PAYMENT FLOW:
* - AI agents send USDC to become guardian
* - X% tax → team wallet (adjustable, default 20%)
* - (100-X)% → remains in contract
* - Price increases by multiplier after each send (adjustable, default 1.2x)
*
* REWARD FLOW:
* - Backend calculates cycle winners and issues signatures
* - Winners claim USDC with valid signature (pure signature-gated vault)
* - Nonce-based replay protection per cycle
* - Team responsible for ensuring contract is funded for all claims
* - No internal balance checks - relies on signature authorization only
*
* FUNDING MODEL:
* - Contract receives (100-X)% from guardian sends automatically
* - Team manually funds additional amounts (e.g., base rewards) as needed
* - prizePoolBalance tracks guardian contributions (informational only)
*
* MULTI-TOKEN SUPPORT:
* - Starts with USDC
* - Can add CHAMPZ or other tokens later
* - Owner switches active payment token
*/
contract AIGuardianThrone is ReentrancyGuard {
using ECDSA for bytes32;
// ============================================
// STATE VARIABLES - Payment System
// ============================================
address public owner;
// Multi-token support
IERC20 public paymentToken;
mapping(address => bool) public supportedTokens;
// Tax system (replaces burn)
address public taxRecipient; // Team wallet (0xa12a...)
uint256 public taxPercent; // 20% = 20
// Prize pool tracking (informational only - not enforced in claims)
uint256 public prizePoolBalance; // Tracks (100-X)% from guardian sends
// Guardian throne state
uint256 public guardianStartingPrice; // Starting price per cycle
uint256 public guardianPrice; // Current price (increases with each send)
uint256 public guardianPriceMultiplier; // 120 = 1.2x increase
address public currentGuardian;
uint256 public cycleNumber;
// Pause mechanism
bool public paused = false;
// Statistics
uint256 public totalTaxCollected;
uint256 public totalPrizePoolCollected;
uint256 public totalGuardianSends;
// ============================================
// STATE VARIABLES - Rewards System
// ============================================
// Backend signer for reward signatures
address public rewardsSigner;
// Track used nonces per cycle to prevent replay attacks
// cycleNumber => nonce => used
mapping(uint256 => mapping(uint256 => bool)) public usedNonces;
// Blacklist for banned addresses
mapping(address => bool) public blacklisted;
// Rewards active toggle
bool public rewardsActive = true;
// Domain separator components for signature verification
string private constant NAME = "AIGuardianThrone";
string private constant VERSION = "1";
// ============================================
// EVENTS
// ============================================
// Payment events
event GuardianSent(
address indexed sender,
address indexed paymentToken,
uint256 amountPaid,
uint256 taxAmount,
uint256 prizePoolAmount,
uint256 newPrice,
uint256 cycleNumber,
uint256 timestamp
);
event CycleReset(
uint256 indexed cycleNumber,
uint256 newPrice,
uint256 timestamp
);
// Reward events
event RewardClaimed(
address indexed recipient,
uint256 amount,
uint256 indexed cycleNumber,
uint256 nonce,
uint256 timestamp
);
// Admin events
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event PaymentTokenUpdated(address indexed token);
event SupportedTokenAdded(address indexed token);
event SupportedTokenRemoved(address indexed token);
event TaxRecipientUpdated(address indexed recipient);
event TaxPercentUpdated(uint256 percent);
event GuardianStartingPriceUpdated(uint256 price);
event GuardianMultiplierUpdated(uint256 multiplier);
event RewardsSignerUpdated(address indexed signer);
event PauseToggled(bool paused);
event RewardsActiveToggled(bool active);
event BlacklistUpdated(address indexed account, bool status);
// ============================================
// MODIFIERS
// ============================================
modifier onlyOwner() {
require(msg.sender == owner, "Not owner");
_;
}
modifier whenNotPaused() {
require(!paused, "Contract is paused");
_;
}
modifier whenRewardsActive() {
require(rewardsActive, "Rewards are paused");
_;
}
// ============================================
// CONSTRUCTOR
// ============================================
/**
* @notice Initialize AI Guardian Throne contract
* @param _usdc USDC token address on Base (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)
* @param _taxRecipient Team wallet address (0xa12a54eEBFC0126eBE9e7E1102a24655b0cB8eac)
* @param _rewardsSigner Backend signer address for reward verification
*/
constructor(
address _usdc,
address _taxRecipient,
address _rewardsSigner
) {
require(_usdc != address(0), "Invalid USDC address");
require(_taxRecipient != address(0), "Invalid tax recipient");
require(_rewardsSigner != address(0), "Invalid signer");
owner = msg.sender;
// Initialize payment system
paymentToken = IERC20(_usdc);
supportedTokens[_usdc] = true;
taxRecipient = _taxRecipient;
taxPercent = 20; // 20% default
guardianStartingPrice = 0.01e6; // 0.01 USDC (6 decimals)
guardianPrice = guardianStartingPrice;
guardianPriceMultiplier = 120; // 1.2x
cycleNumber = 1;
// Initialize rewards system
rewardsSigner = _rewardsSigner;
emit OwnershipTransferred(address(0), msg.sender);
emit SupportedTokenAdded(_usdc);
}
// ============================================
// PAYMENT FUNCTIONS
// ============================================
/**
* @notice Send USDC to become guardian (called by AI agents)
* @dev Agent wallet must approve this contract first
*
* FLOW:
* 1. Transfer USDC from sender to contract
* 2. Send X% tax to team wallet
* 3. Keep (100-X)% in prize pool
* 4. Update current guardian
* 5. Increase price by multiplier
* 6. Emit event for backend tracking
*/
function sendGuardian() external nonReentrant whenNotPaused {
require(!blacklisted[msg.sender], "Sender is blacklisted");
uint256 amount = guardianPrice;
// Transfer payment token from sender to contract
require(
paymentToken.transferFrom(msg.sender, address(this), amount),
"Payment transfer failed"
);
// Calculate tax and prize pool split
uint256 taxAmount = (amount * taxPercent) / 100;
uint256 prizePoolAmount = amount - taxAmount;
// Send tax to team wallet
require(
paymentToken.transfer(taxRecipient, taxAmount),
"Tax transfer failed"
);
// Prize pool stays in contract
prizePoolBalance += prizePoolAmount;
// Update statistics
totalTaxCollected += taxAmount;
totalPrizePoolCollected += prizePoolAmount;
totalGuardianSends++;
// Update current guardian
currentGuardian = msg.sender;
// Calculate new price (multiplier: 120 = 1.2x)
uint256 newPrice = (guardianPrice * guardianPriceMultiplier) / 100;
emit GuardianSent(
msg.sender,
address(paymentToken),
amount,
taxAmount,
prizePoolAmount,
newPrice,
cycleNumber,
block.timestamp
);
// Update price for next send
guardianPrice = newPrice;
}
// ============================================
// REWARD FUNCTIONS
// ============================================
/**
* @notice Compute domain separator for signature verification
*/
function DOMAIN_SEPARATOR() public view returns (bytes32) {
return keccak256(
abi.encodePacked(
keccak256(bytes(NAME)),
keccak256(bytes(VERSION)),
block.chainid,
address(this)
)
);
}
/**
* @notice Claim cycle reward with backend signature
* @param recipient The wallet address to receive USDC
* @param amount USDC amount (6 decimals)
* @param cycle Cycle number this reward is for
* @param nonce Unique identifier for this claim (prevents replay)
* @param signature Backend signature authorizing this claim
*
* @dev Signature must be from rewardsSigner address
* Nonce must not have been used for this cycle
* Recipient must not be blacklisted
* Contract must have sufficient token balance (no internal accounting check)
* Team responsible for funding contract as needed
*/
function claimReward(
address recipient,
uint256 amount,
uint256 cycle,
uint256 nonce,
bytes calldata signature
) external nonReentrant whenRewardsActive {
require(recipient != address(0), "Invalid recipient");
require(amount > 0, "Amount must be positive");
require(!blacklisted[recipient], "Recipient is blacklisted");
require(!blacklisted[msg.sender], "Caller is blacklisted");
require(!usedNonces[cycle][nonce], "Nonce already used");
// Verify signature from backend
bytes32 messageHash = keccak256(
abi.encodePacked(
DOMAIN_SEPARATOR(),
recipient,
amount,
cycle,
nonce
)
);
bytes32 ethSignedHash = messageHash.toEthSignedMessageHash();
address recoveredSigner = ethSignedHash.recover(signature);
require(recoveredSigner == rewardsSigner, "Invalid signature");
// Mark nonce as used (prevents replay attacks)
usedNonces[cycle][nonce] = true;
// Update internal accounting (informational only, not enforced)
if (prizePoolBalance >= amount) {
prizePoolBalance -= amount;
} else {
prizePoolBalance = 0;
}
// Transfer tokens - will revert naturally if insufficient balance
// Team responsible for ensuring contract is funded
require(
paymentToken.transfer(recipient, amount),
"Reward transfer failed"
);
emit RewardClaimed(recipient, amount, cycle, nonce, block.timestamp);
}
// ============================================
// ADMIN FUNCTIONS - Cycle Management
// ============================================
/**
* @notice Reset guardian price for new cycle (called by backend every 8 hours)
* @dev Only owner (backend) can call
*/
function resetGuardian() external onlyOwner {
guardianPrice = guardianStartingPrice;
currentGuardian = address(0);
cycleNumber++;
emit CycleReset(cycleNumber, guardianPrice, block.timestamp);
}
/**
* @notice Manually set current price (emergency only)
* @param newPrice New price in token units
*/
function setGuardianPrice(uint256 newPrice) external onlyOwner {
require(newPrice > 0, "Price must be positive");
guardianPrice = newPrice;
}
// ============================================
// ADMIN FUNCTIONS - Payment Token Management
// ============================================
/**
* @notice Switch active payment token (USDC → CHAMPZ or vice versa)
* @param _token New payment token address
* @dev Token must be in supportedTokens mapping
*/
function setPaymentToken(address _token) external onlyOwner {
require(supportedTokens[_token], "Token not supported");
paymentToken = IERC20(_token);
emit PaymentTokenUpdated(_token);
}
/**
* @notice Add a new supported payment token
* @param _token Token address to add
*/
function addSupportedToken(address _token) external onlyOwner {
require(_token != address(0), "Invalid token address");
supportedTokens[_token] = true;
emit SupportedTokenAdded(_token);
}
/**
* @notice Remove a supported payment token
* @param _token Token address to remove
* @dev Cannot remove currently active payment token
*/
function removeSupportedToken(address _token) external onlyOwner {
require(address(paymentToken) != _token, "Cannot remove active token");
supportedTokens[_token] = false;
emit SupportedTokenRemoved(_token);
}
// ============================================
// ADMIN FUNCTIONS - Tax System
// ============================================
/**
* @notice Update tax recipient address
* @param _recipient New team wallet address
*/
function setTaxRecipient(address _recipient) external onlyOwner {
require(_recipient != address(0), "Invalid address");
taxRecipient = _recipient;
emit TaxRecipientUpdated(_recipient);
}
/**
* @notice Update tax percentage
* @param _percent New tax percentage (0-50)
* @dev 20 = 20%, max 50% to prevent abuse
*/
function setTaxPercent(uint256 _percent) external onlyOwner {
require(_percent <= 50, "Tax too high (max 50%)");
taxPercent = _percent;
emit TaxPercentUpdated(_percent);
}
// ============================================
// ADMIN FUNCTIONS - Guardian Parameters
// ============================================
/**
* @notice Update guardian starting price
* @param _price New starting price in token units
*/
function setGuardianStartingPrice(uint256 _price) external onlyOwner {
require(_price > 0, "Price must be positive");
guardianStartingPrice = _price;
emit GuardianStartingPriceUpdated(_price);
}
/**
* @notice Update guardian price multiplier
* @param _multiplier New multiplier (110 = 1.1x, 120 = 1.2x, 150 = 1.5x, etc.)
* @dev Range: 110-200 (1.1x to 2.0x)
*/
function setGuardianMultiplier(uint256 _multiplier) external onlyOwner {
require(_multiplier >= 101 && _multiplier <= 300, "Multiplier must be 1.01x-3.0x");
guardianPriceMultiplier = _multiplier;
emit GuardianMultiplierUpdated(_multiplier);
}
// ============================================
// ADMIN FUNCTIONS - Rewards System
// ============================================
/**
* @notice Update the backend rewards signer address
* @param _signer New signer address
*/
function setRewardsSigner(address _signer) external onlyOwner {
require(_signer != address(0), "Invalid signer address");
rewardsSigner = _signer;
emit RewardsSignerUpdated(_signer);
}
/**
* @notice Toggle rewards claims on/off
* @param _active True to enable, false to disable
*/
function setRewardsActive(bool _active) external onlyOwner {
rewardsActive = _active;
emit RewardsActiveToggled(_active);
}
/**
* @notice Update blacklist status for addresses
* @param addresses Array of addresses to update
* @param statuses Array of blacklist statuses (true = blacklisted)
*/
function updateBlacklist(
address[] calldata addresses,
bool[] calldata statuses
) external onlyOwner {
require(addresses.length == statuses.length, "Length mismatch");
for (uint256 i = 0; i < addresses.length; i++) {
blacklisted[addresses[i]] = statuses[i];
emit BlacklistUpdated(addresses[i], statuses[i]);
}
}
// ============================================
// ADMIN FUNCTIONS - Contract Management
// ============================================
/**
* @notice Pause/unpause guardian sends
* @param _paused True to pause, false to unpause
*/
function setPaused(bool _paused) external onlyOwner {
paused = _paused;
emit PauseToggled(_paused);
}
/**
* @notice Transfer ownership
* @param newOwner New owner address
*/
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0), "Invalid new owner");
address oldOwner = owner;
owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
/**
* @notice Emergency withdraw tokens (owner only)
* @param token Token address to withdraw
* @param amount Amount to withdraw
* @dev Use carefully - withdrawing prize pool affects reward claims
*/
function emergencyWithdraw(address token, uint256 amount) external onlyOwner {
require(IERC20(token).transfer(owner, amount), "Withdraw failed");
}
// ============================================
// VIEW FUNCTIONS - Payment System
// ============================================
/**
* @notice Get current guardian throne state
*/
function getGuardianState() external view returns (
address _currentGuardian,
uint256 _currentPrice,
uint256 _cycleNumber,
uint256 _prizePoolBalance,
bool _paused
) {
return (
currentGuardian,
guardianPrice,
cycleNumber,
prizePoolBalance,
paused
);
}
/**
* @notice Simulate guardian send (returns tax, prize pool, and next price)
*/
function simulateGuardianSend() external view returns (
uint256 amountRequired,
uint256 taxAmount,
uint256 prizePoolAmount,
uint256 nextPrice
) {
amountRequired = guardianPrice;
taxAmount = (amountRequired * taxPercent) / 100;
prizePoolAmount = amountRequired - taxAmount;
nextPrice = (guardianPrice * guardianPriceMultiplier) / 100;
}
/**
* @notice Get contract statistics
*/
function getStatistics() external view returns (
uint256 _totalTaxCollected,
uint256 _totalPrizePoolCollected,
uint256 _totalGuardianSends,
uint256 _currentPrizePool,
uint256 _cycleNumber
) {
return (
totalTaxCollected,
totalPrizePoolCollected,
totalGuardianSends,
prizePoolBalance,
cycleNumber
);
}
// ============================================
// VIEW FUNCTIONS - Rewards System
// ============================================
/**
* @notice Check if a nonce has been used for a specific cycle
* @param cycle Cycle number
* @param nonce Nonce to check
*/
function isNonceUsed(uint256 cycle, uint256 nonce) external view returns (bool) {
return usedNonces[cycle][nonce];
}
/**
* @notice Get contract balance for a specific token
* @param token Token address to check
*/
function getTokenBalance(address token) external view returns (uint256) {
return IERC20(token).balanceOf(address(this));
}
/**
* @notice Get current payment token balance
*/
function getPaymentTokenBalance() external view returns (uint256) {
return paymentToken.balanceOf(address(this));
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_usdc",
"type": "address",
"internalType": "address"
},
{
"name": "_taxRecipient",
"type": "address",
"internalType": "address"
},
{
"name": "_rewardsSigner",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "BlacklistUpdated",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "status",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "CycleReset",
"type": "event",
"inputs": [
{
"name": "cycleNumber",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "newPrice",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "timestamp",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GuardianMultiplierUpdated",
"type": "event",
"inputs": [
{
"name": "multiplier",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GuardianSent",
"type": "event",
"inputs": [
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "paymentToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amountPaid",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "taxAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "prizePoolAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newPrice",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "cycleNumber",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "timestamp",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GuardianStartingPriceUpdated",
"type": "event",
"inputs": [
{
"name": "price",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PauseToggled",
"type": "event",
"inputs": [
{
"name": "paused",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "PaymentTokenUpdated",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RewardClaimed",
"type": "event",
"inputs": [
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "cycleNumber",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "nonce",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "timestamp",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "RewardsActiveToggled",
"type": "event",
"inputs": [
{
"name": "active",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "RewardsSignerUpdated",
"type": "event",
"inputs": [
{
"name": "signer",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "SupportedTokenAdded",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "SupportedTokenRemoved",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "TaxPercentUpdated",
"type": "event",
"inputs": [
{
"name": "percent",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "TaxRecipientUpdated",
"type": "event",
"inputs": [
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "DOMAIN_SEPARATOR",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "addSupportedToken",
"type": "function",
"inputs": [
{
"name": "_token",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "blacklisted",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "claimReward",
"type": "function",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "cycle",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "signature",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "currentGuardian",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "cycleNumber",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "emergencyWithdraw",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "getGuardianState",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "_currentGuardian",
"type": "address",
"internalType": "address"
},
{
"name": "_currentPrice",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_cycleNumber",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_prizePoolBalance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_paused",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "getPaymentTokenBalance",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "getStatistics",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "_totalTaxCollected",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_totalPrizePoolCollected",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_totalGuardianSends",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_currentPrizePool",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_cycleNumber",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "getTokenBalance",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "guardianPrice",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "guardianPriceMultiplier",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "guardianStartingPrice",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "isNonceUsed",
"type": "function",
"inputs": [
{
"name": "cycle",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "paused",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "paymentToken",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"name": "prizePoolBalance",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "removeSupportedToken",
"type": "function",
"inputs": [
{
"name": "_token",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "resetGuardian",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rewardsActive",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "rewardsSigner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "sendGuardian",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setGuardianMultiplier",
"type": "function",
"inputs": [
{
"name": "_multiplier",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setGuardianPrice",
"type": "function",
"inputs": [
{
"name": "newPrice",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setGuardianStartingPrice",
"type": "function",
"inputs": [
{
"name": "_price",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPaused",
"type": "function",
"inputs": [
{
"name": "_paused",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPaymentToken",
"type": "function",
"inputs": [
{
"name": "_token",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRewardsActive",
"type": "function",
"inputs": [
{
"name": "_active",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRewardsSigner",
"type": "function",
"inputs": [
{
"name": "_signer",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTaxPercent",
"type": "function",
"inputs": [
{
"name": "_percent",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTaxRecipient",
"type": "function",
"inputs": [
{
"name": "_recipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "simulateGuardianSend",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "amountRequired",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "taxAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "prizePoolAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "nextPrice",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "supportedTokens",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "taxPercent",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "taxRecipient",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "totalGuardianSends",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalPrizePoolCollected",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalTaxCollected",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "updateBlacklist",
"type": "function",
"inputs": [
{
"name": "addresses",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "statuses",
"type": "bool[]",
"internalType": "bool[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "usedNonces",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
}
]0x60806040526000600c60006101000a81548160ff0219169083151502179055506001601360006101000a81548160ff0219169083151502179055503480156200004757600080fd5b5060405162004b8938038062004b8983398181016040528101906200006d919062000462565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620000e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000de906200051f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001509062000591565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001c29062000603565b60405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460058190555061271060078190555060075460088190555060786009819055506001600b8190555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38273ffffffffffffffffffffffffffffffffffffffff167fd1be2e90bd3d24839d9dd94ad871068e1f9688b02fa43f2a62c9975dfa9de2d760405160405180910390a250505062000625565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042a82620003fd565b9050919050565b6200043c816200041d565b81146200044857600080fd5b50565b6000815190506200045c8162000431565b92915050565b6000806000606084860312156200047e576200047d620003f8565b5b60006200048e868287016200044b565b9350506020620004a1868287016200044b565b9250506040620004b4868287016200044b565b9150509250925092565b600082825260208201905092915050565b7f496e76616c696420555344432061646472657373000000000000000000000000600082015250565b600062000507601483620004be565b91506200051482620004cf565b602082019050919050565b600060208201905081810360008301526200053a81620004f8565b9050919050565b7f496e76616c69642074617820726563697069656e740000000000000000000000600082015250565b600062000579601583620004be565b9150620005868262000541565b602082019050919050565b60006020820190508181036000830152620005ac816200056a565b9050919050565b7f496e76616c6964207369676e6572000000000000000000000000000000000000600082015250565b6000620005eb600e83620004be565b9150620005f882620005b3565b602082019050919050565b600060208201905081810360008301526200061e81620005dc565b9050919050565b61455480620006356000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c8063737ea06e11610151578063cab2a02c116100c3578063efd5d26511610087578063efd5d265146106e8578063f1c8477214610706578063f1f18f1214610722578063f2fde38b14610743578063f5ab72591461075f578063f78cb7481461077b57610269565b8063cab2a02c14610630578063d605e5d41461064e578063d8454a821461066a578063dbac26e914610688578063eee5ff49146106b857610269565b806395ccea671161011557806395ccea67146105945780639ad4949d146105b0578063a46934df146105cc578063a519121a146105ea578063b909032514610608578063ca70e2941461061257610269565b8063737ea06e146105025780637541f41c14610520578063763191901461053e57806378e3079e1461055a5780638da5cb5b1461057657610269565b8063372d6b27116101ea57806352ff9f94116101ae57806352ff9f94146104445780635c975abb14610460578063611783861461047e57806368c4ac261461049a5780636a326ab1146104ca5780636d69fcaf146104e657610269565b8063372d6b27146103825780633aecd0e3146103a45780633cec009e146103d45780634774be9f146103f65780634e8d14421461042657610269565b80632f884710116102315780632f884710146102ec5780633013ce291461030a57806331bf746314610328578063348437f2146103465780633644e5151461036457610269565b806305a61f0c1461026e5780630f8c279814610278578063139d76011461029657806316c38b3c146102b2578063194d6297146102ce575b600080fd5b610276610797565b005b610280610bff565b60405161028d9190612df4565b60405180910390f35b6102b060048036038101906102ab9190612e45565b610ca2565b005b6102cc60048036038101906102c79190612eaa565b610d7f565b005b6102d6610e63565b6040516102e39190612df4565b60405180910390f35b6102f4610e69565b6040516103019190612df4565b60405180910390f35b610312610e6f565b60405161031f9190612f56565b60405180910390f35b610330610e95565b60405161033d9190612df4565b60405180910390f35b61034e610e9b565b60405161035b9190612df4565b60405180910390f35b61036c610ea1565b6040516103799190612f8a565b60405180910390f35b61038a610f4d565b60405161039b959493929190612fa5565b60405180910390f35b6103be60048036038101906103b99190613036565b610f75565b6040516103cb9190612df4565b60405180910390f35b6103dc610ff8565b6040516103ed959493929190613081565b60405180910390f35b610410600480360381019061040b91906130d4565b61104d565b60405161041d9190613114565b60405180910390f35b61042e61107c565b60405161043b9190612df4565b60405180910390f35b61045e60048036038101906104599190612e45565b611082565b005b6104686111a5565b6040516104759190613114565b60405180910390f35b61049860048036038101906104939190612e45565b6111b8565b005b6104b460048036038101906104af9190613036565b6112cd565b6040516104c19190613114565b60405180910390f35b6104e460048036038101906104df9190613036565b6112ed565b005b61050060048036038101906104fb9190613036565b611490565b005b61050a61162d565b604051610517919061312f565b60405180910390f35b610528611653565b6040516105359190612df4565b60405180910390f35b61055860048036038101906105539190613036565b611659565b005b610574600480360381019061056f9190613036565b611817565b005b61057e61199d565b60405161058b919061312f565b60405180910390f35b6105ae60048036038101906105a9919061314a565b6119c3565b005b6105ca60048036038101906105c59190613245565b611b36565b005b6105d4611d77565b6040516105e19190612df4565b60405180910390f35b6105f2611d7d565b6040516105ff9190613114565b60405180910390f35b610610611d90565b005b61061a611ec3565b6040516106279190612df4565b60405180910390f35b610638611ec9565b604051610645919061312f565b60405180910390f35b6106686004803603810190610663919061331c565b611eef565b005b610672612468565b60405161067f9190612df4565b60405180910390f35b6106a2600480360381019061069d9190613036565b61246e565b6040516106af9190613114565b60405180910390f35b6106d260048036038101906106cd91906130d4565b61248e565b6040516106df9190613114565b60405180910390f35b6106f06124ca565b6040516106fd919061312f565b60405180910390f35b610720600480360381019061071b9190612eaa565b6124f0565b005b61072a6125d4565b60405161073a94939291906133b6565b60405180910390f35b61075d60048036038101906107589190613036565b61262d565b005b61077960048036038101906107749190613036565b6127f2565b005b61079560048036038101906107909190612e45565b612978565b005b61079f612a8c565b600c60009054906101000a900460ff16156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690613458565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561087c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610873906134c4565b60405180910390fd5b60006008549050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016108e2939291906134e4565b6020604051808303816000875af1158015610901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190613530565b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906135a9565b60405180910390fd5b600060646005548361097691906135f8565b6109809190613669565b905060008183610990919061369a565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610a119291906136ce565b6020604051808303816000875af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190613530565b610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90613743565b60405180910390fd5b8060066000828254610aa59190613763565b9250508190555081600d6000828254610abe9190613763565b9250508190555080600e6000828254610ad79190613763565b92505081905550600f6000815480929190610af190613797565b919050555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006064600954600854610b4b91906135f8565b610b559190613669565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc323a30fc9d0c62f95df15673b53485294e47c325b8a2b84fc22fc4c51da997686868686600b5442604051610be2969594939291906137df565b60405180910390a38060088190555050505050610bfd612adb565b565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c5c919061312f565b602060405180830381865afa158015610c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9d9190613855565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d29906138ce565b60405180910390fd5b60008111610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c9061393a565b60405180910390fd5b8060088190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e06906138ce565b60405180910390fd5b80600c60006101000a81548160ff0219169083151502179055507f9077d36bc00859b5c3f320310707208543dd35092cb0a0fe117d0c6a558b148b81604051610e589190613114565b60405180910390a150565b60095481565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600f5481565b60006040518060400160405280601081526020017f4149477561726469616e5468726f6e6500000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001610f3294939291906139e4565b60405160208183030381529060405280519060200120905090565b6000806000806000600d54600e54600f54600654600b54945094509450945094509091929394565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fb0919061312f565b602060405180830381865afa158015610fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff19190613855565b9050919050565b6000806000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854600b54600654600c60009054906101000a900460ff16945094509450945094509091929394565b60116020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600e5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906138ce565b60405180910390fd5b60658110158015611125575061012c8111155b611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613a7e565b60405180910390fd5b806009819055507fcdb57589e7b9cdc25ea6f4d49bfd6b5198c44fd04551a5ac1cae362b888894d18160405161119a9190612df4565b60405180910390a150565b600c60009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f906138ce565b60405180910390fd5b603281111561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390613aea565b60405180910390fd5b806005819055507fc892dd58854a363820e03263498ea588565c892c9e1750134019b8c4246b1c20816040516112c29190612df4565b60405180910390a150565b60036020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906138ce565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090613b56565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbd4032c1c91da2791730ea1bbc82c6b6f857da7c0a8318143d19ef74e62cd91360405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611517906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158690613bc2565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd1be2e90bd3d24839d9dd94ad871068e1f9688b02fa43f2a62c9975dfa9de2d760405160405180910390a250565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e0906138ce565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177090613c2e565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fbea12876694c4055c71f74308f752b9027cf3d554194000a366abddfc239a30660405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189e906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90613c9a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fcb5639215577b3eba6150c2a74d8de8ea5885c176e29e2e66a7551cc15b7a7cf60405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906138ce565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611ab09291906136ce565b6020604051808303816000875af1158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af39190613530565b611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990613d06565b60405180910390fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd906138ce565b60405180910390fd5b818190508484905014611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613d72565b60405180910390fd5b60005b84849050811015611d7057828282818110611c2f57611c2e613d92565b5b9050602002016020810190611c449190612eaa565b60126000878785818110611c5b57611c5a613d92565b5b9050602002016020810190611c709190613036565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550848482818110611cd457611cd3613d92565b5b9050602002016020810190611ce99190613036565b73ffffffffffffffffffffffffffffffffffffffff167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac848484818110611d3357611d32613d92565b5b9050602002016020810190611d489190612eaa565b604051611d559190613114565b60405180910390a28080611d6890613797565b915050611c11565b5050505050565b60065481565b601360009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e17906138ce565b60405180910390fd5b6007546008819055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b6000815480929190611e7e90613797565b9190505550600b547f797706adb366b812d45cb5827c302ffaba9df47b22b6277c077e4807ac8c2e5f60085442604051611eb9929190613dc1565b60405180910390a2565b60075481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ef7612a8c565b601360009054906101000a900460ff16611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90613e36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90613ea2565b60405180910390fd5b60008511611ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fef90613f0e565b60405180910390fd5b601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613f7a565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990613fe6565b60405180910390fd5b60116000858152602001908152602001600020600084815260200190815260200160002060009054906101000a900460ff1615612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90614052565b60405180910390fd5b600061218e610ea1565b878787876040516020016121a6959493929190614072565b60405160208183030381529060405280519060200120905060006121c982612ae5565b9050600061222485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083612b1b90919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad9061411d565b60405180910390fd5b600160116000898152602001908152602001600020600088815260200190815260200160002060006101000a81548160ff021916908315150217905550876006541061231a57876006600082825461230e919061369a565b92505081905550612323565b60006006819055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a8a6040518363ffffffff1660e01b81526004016123809291906136ce565b6020604051808303816000875af115801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c39190613530565b612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f990614189565b60405180910390fd5b868973ffffffffffffffffffffffffffffffffffffffff167f9e80c048bc588b388047ffc6e8153e7c11aa34312de7ed62e1858ff3a44ddce88a894260405161244d939291906141a9565b60405180910390a3505050612460612adb565b505050505050565b600d5481565b60126020528060005260406000206000915054906101000a900460ff1681565b600060116000848152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612577906138ce565b60405180910390fd5b80601360006101000a81548160ff0219169083151502179055507fea34c6fbe1a2bfee0a40c92a902f35a990bdc4cd9a0ac954826debcdab567ef5816040516125c99190613114565b60405180910390a150565b60008060008060085493506064600554856125ef91906135f8565b6125f99190613669565b92508284612607919061369a565b9150606460095460085461261b91906135f8565b6126259190613669565b905090919293565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b4906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361272c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127239061422c565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612879906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614298565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fe0fa31f2e60e100713ed41eb71e6b32eaebcfef87883fbde33fe5aa91f1a764760405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ff906138ce565b60405180910390fd5b60008111612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a429061393a565b60405180910390fd5b806007819055507ff5dc6b37e81861f471e7f01100455ddecf074ddc85f6e7fc63141bba97c88e9581604051612a819190612df4565b60405180910390a150565b600260005403612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890614304565b60405180910390fd5b6002600081905550565b6001600081905550565b60007f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c52603c6000209050919050565b6000806000612b2a8585612b42565b91509150612b3781612b93565b819250505092915050565b6000806041835103612b835760008060006020860151925060408601519150606086015160001a9050612b7787828585612cf9565b94509450505050612b8c565b60006002915091505b9250929050565b60006004811115612ba757612ba6614324565b5b816004811115612bba57612bb9614324565b5b0315612cf65760016004811115612bd457612bd3614324565b5b816004811115612be757612be6614324565b5b03612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e9061439f565b60405180910390fd5b60026004811115612c3b57612c3a614324565b5b816004811115612c4e57612c4d614324565b5b03612c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c859061440b565b60405180910390fd5b60036004811115612ca257612ca1614324565b5b816004811115612cb557612cb4614324565b5b03612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec9061449d565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612d34576000600391509150612dd2565b600060018787878760405160008152602001604052604051612d5994939291906144d9565b6020604051602081039080840390855afa158015612d7b573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612dc957600060019250925050612dd2565b80600092509250505b94509492505050565b6000819050919050565b612dee81612ddb565b82525050565b6000602082019050612e096000830184612de5565b92915050565b600080fd5b600080fd5b612e2281612ddb565b8114612e2d57600080fd5b50565b600081359050612e3f81612e19565b92915050565b600060208284031215612e5b57612e5a612e0f565b5b6000612e6984828501612e30565b91505092915050565b60008115159050919050565b612e8781612e72565b8114612e9257600080fd5b50565b600081359050612ea481612e7e565b92915050565b600060208284031215612ec057612ebf612e0f565b5b6000612ece84828501612e95565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612f1c612f17612f1284612ed7565b612ef7565b612ed7565b9050919050565b6000612f2e82612f01565b9050919050565b6000612f4082612f23565b9050919050565b612f5081612f35565b82525050565b6000602082019050612f6b6000830184612f47565b92915050565b6000819050919050565b612f8481612f71565b82525050565b6000602082019050612f9f6000830184612f7b565b92915050565b600060a082019050612fba6000830188612de5565b612fc76020830187612de5565b612fd46040830186612de5565b612fe16060830185612de5565b612fee6080830184612de5565b9695505050505050565b600061300382612ed7565b9050919050565b61301381612ff8565b811461301e57600080fd5b50565b6000813590506130308161300a565b92915050565b60006020828403121561304c5761304b612e0f565b5b600061305a84828501613021565b91505092915050565b61306c81612ff8565b82525050565b61307b81612e72565b82525050565b600060a0820190506130966000830188613063565b6130a36020830187612de5565b6130b06040830186612de5565b6130bd6060830185612de5565b6130ca6080830184613072565b9695505050505050565b600080604083850312156130eb576130ea612e0f565b5b60006130f985828601612e30565b925050602061310a85828601612e30565b9150509250929050565b60006020820190506131296000830184613072565b92915050565b60006020820190506131446000830184613063565b92915050565b6000806040838503121561316157613160612e0f565b5b600061316f85828601613021565b925050602061318085828601612e30565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131af576131ae61318a565b5b8235905067ffffffffffffffff8111156131cc576131cb61318f565b5b6020830191508360208202830111156131e8576131e7613194565b5b9250929050565b60008083601f8401126132055761320461318a565b5b8235905067ffffffffffffffff8111156132225761322161318f565b5b60208301915083602082028301111561323e5761323d613194565b5b9250929050565b6000806000806040858703121561325f5761325e612e0f565b5b600085013567ffffffffffffffff81111561327d5761327c612e14565b5b61328987828801613199565b9450945050602085013567ffffffffffffffff8111156132ac576132ab612e14565b5b6132b8878288016131ef565b925092505092959194509250565b60008083601f8401126132dc576132db61318a565b5b8235905067ffffffffffffffff8111156132f9576132f861318f565b5b60208301915083600182028301111561331557613314613194565b5b9250929050565b60008060008060008060a0878903121561333957613338612e0f565b5b600061334789828a01613021565b965050602061335889828a01612e30565b955050604061336989828a01612e30565b945050606061337a89828a01612e30565b935050608087013567ffffffffffffffff81111561339b5761339a612e14565b5b6133a789828a016132c6565b92509250509295509295509295565b60006080820190506133cb6000830187612de5565b6133d86020830186612de5565b6133e56040830185612de5565b6133f26060830184612de5565b95945050505050565b600082825260208201905092915050565b7f436f6e7472616374206973207061757365640000000000000000000000000000600082015250565b60006134426012836133fb565b915061344d8261340c565b602082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b7f53656e64657220697320626c61636b6c69737465640000000000000000000000600082015250565b60006134ae6015836133fb565b91506134b982613478565b602082019050919050565b600060208201905081810360008301526134dd816134a1565b9050919050565b60006060820190506134f96000830186613063565b6135066020830185613063565b6135136040830184612de5565b949350505050565b60008151905061352a81612e7e565b92915050565b60006020828403121561354657613545612e0f565b5b60006135548482850161351b565b91505092915050565b7f5061796d656e74207472616e73666572206661696c6564000000000000000000600082015250565b60006135936017836133fb565b915061359e8261355d565b602082019050919050565b600060208201905081810360008301526135c281613586565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360382612ddb565b915061360e83612ddb565b925082820261361c81612ddb565b91508282048414831517613633576136326135c9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061367482612ddb565b915061367f83612ddb565b92508261368f5761368e61363a565b5b828204905092915050565b60006136a582612ddb565b91506136b083612ddb565b92508282039050818111156136c8576136c76135c9565b5b92915050565b60006040820190506136e36000830185613063565b6136f06020830184612de5565b9392505050565b7f546178207472616e73666572206661696c656400000000000000000000000000600082015250565b600061372d6013836133fb565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b600061376e82612ddb565b915061377983612ddb565b9250828201905080821115613791576137906135c9565b5b92915050565b60006137a282612ddb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137d4576137d36135c9565b5b600182019050919050565b600060c0820190506137f46000830189612de5565b6138016020830188612de5565b61380e6040830187612de5565b61381b6060830186612de5565b6138286080830185612de5565b61383560a0830184612de5565b979650505050505050565b60008151905061384f81612e19565b92915050565b60006020828403121561386b5761386a612e0f565b5b600061387984828501613840565b91505092915050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006138b86009836133fb565b91506138c382613882565b602082019050919050565b600060208201905081810360008301526138e7816138ab565b9050919050565b7f5072696365206d75737420626520706f73697469766500000000000000000000600082015250565b60006139246016836133fb565b915061392f826138ee565b602082019050919050565b6000602082019050818103600083015261395381613917565b9050919050565b6000819050919050565b61397561397082612f71565b61395a565b82525050565b6000819050919050565b61399661399182612ddb565b61397b565b82525050565b60008160601b9050919050565b60006139b48261399c565b9050919050565b60006139c6826139a9565b9050919050565b6139de6139d982612ff8565b6139bb565b82525050565b60006139f08287613964565b602082019150613a008286613964565b602082019150613a108285613985565b602082019150613a2082846139cd565b60148201915081905095945050505050565b7f4d756c7469706c696572206d75737420626520312e3031782d332e3078000000600082015250565b6000613a68601d836133fb565b9150613a7382613a32565b602082019050919050565b60006020820190508181036000830152613a9781613a5b565b9050919050565b7f54617820746f6f206869676820286d6178203530252900000000000000000000600082015250565b6000613ad46016836133fb565b9150613adf82613a9e565b602082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b7f546f6b656e206e6f7420737570706f7274656400000000000000000000000000600082015250565b6000613b406013836133fb565b9150613b4b82613b0a565b602082019050919050565b60006020820190508181036000830152613b6f81613b33565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b6000613bac6015836133fb565b9150613bb782613b76565b602082019050919050565b60006020820190508181036000830152613bdb81613b9f565b9050919050565b7f43616e6e6f742072656d6f76652061637469766520746f6b656e000000000000600082015250565b6000613c18601a836133fb565b9150613c2382613be2565b602082019050919050565b60006020820190508181036000830152613c4781613c0b565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000613c84600f836133fb565b9150613c8f82613c4e565b602082019050919050565b60006020820190508181036000830152613cb381613c77565b9050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b6000613cf0600f836133fb565b9150613cfb82613cba565b602082019050919050565b60006020820190508181036000830152613d1f81613ce3565b9050919050565b7f4c656e677468206d69736d617463680000000000000000000000000000000000600082015250565b6000613d5c600f836133fb565b9150613d6782613d26565b602082019050919050565b60006020820190508181036000830152613d8b81613d4f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050613dd66000830185612de5565b613de36020830184612de5565b9392505050565b7f5265776172647320617265207061757365640000000000000000000000000000600082015250565b6000613e206012836133fb565b9150613e2b82613dea565b602082019050919050565b60006020820190508181036000830152613e4f81613e13565b9050919050565b7f496e76616c696420726563697069656e74000000000000000000000000000000600082015250565b6000613e8c6011836133fb565b9150613e9782613e56565b602082019050919050565b60006020820190508181036000830152613ebb81613e7f565b9050919050565b7f416d6f756e74206d75737420626520706f736974697665000000000000000000600082015250565b6000613ef86017836133fb565b9150613f0382613ec2565b602082019050919050565b60006020820190508181036000830152613f2781613eeb565b9050919050565b7f526563697069656e7420697320626c61636b6c69737465640000000000000000600082015250565b6000613f646018836133fb565b9150613f6f82613f2e565b602082019050919050565b60006020820190508181036000830152613f9381613f57565b9050919050565b7f43616c6c657220697320626c61636b6c69737465640000000000000000000000600082015250565b6000613fd06015836133fb565b9150613fdb82613f9a565b602082019050919050565b60006020820190508181036000830152613fff81613fc3565b9050919050565b7f4e6f6e636520616c726561647920757365640000000000000000000000000000600082015250565b600061403c6012836133fb565b915061404782614006565b602082019050919050565b6000602082019050818103600083015261406b8161402f565b9050919050565b600061407e8288613964565b60208201915061408e82876139cd565b60148201915061409e8286613985565b6020820191506140ae8285613985565b6020820191506140be8284613985565b6020820191508190509695505050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b60006141076011836133fb565b9150614112826140d1565b602082019050919050565b60006020820190508181036000830152614136816140fa565b9050919050565b7f526577617264207472616e73666572206661696c656400000000000000000000600082015250565b60006141736016836133fb565b915061417e8261413d565b602082019050919050565b600060208201905081810360008301526141a281614166565b9050919050565b60006060820190506141be6000830186612de5565b6141cb6020830185612de5565b6141d86040830184612de5565b949350505050565b7f496e76616c6964206e6577206f776e6572000000000000000000000000000000600082015250565b60006142166011836133fb565b9150614221826141e0565b602082019050919050565b6000602082019050818103600083015261424581614209565b9050919050565b7f496e76616c6964207369676e6572206164647265737300000000000000000000600082015250565b60006142826016836133fb565b915061428d8261424c565b602082019050919050565b600060208201905081810360008301526142b181614275565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006142ee601f836133fb565b91506142f9826142b8565b602082019050919050565b6000602082019050818103600083015261431d816142e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006143896018836133fb565b915061439482614353565b602082019050919050565b600060208201905081810360008301526143b88161437c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006143f5601f836133fb565b9150614400826143bf565b602082019050919050565b60006020820190508181036000830152614424816143e8565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006144876022836133fb565b91506144928261442b565b604082019050919050565b600060208201905081810360008301526144b68161447a565b9050919050565b600060ff82169050919050565b6144d3816144bd565b82525050565b60006080820190506144ee6000830187612f7b565b6144fb60208301866144ca565b6145086040830185612f7b565b6145156060830184612f7b565b9594505050505056fea2646970667358221220782e2c99e2c2aa10ebe4ff290964234aa06f1badf0e2a1526c1cc625aafecd4a64736f6c63430008130033000000000000000000000000c6911796042b15d7fa4f6cde69e245ddcd3d9c31000000000000000000000000a12a54eebfc0126ebe9e7e1102a24655b0cb8eac000000000000000000000000a12a54eebfc0126ebe9e7e1102a24655b0cb8eac
0x608060405234801561001057600080fd5b50600436106102695760003560e01c8063737ea06e11610151578063cab2a02c116100c3578063efd5d26511610087578063efd5d265146106e8578063f1c8477214610706578063f1f18f1214610722578063f2fde38b14610743578063f5ab72591461075f578063f78cb7481461077b57610269565b8063cab2a02c14610630578063d605e5d41461064e578063d8454a821461066a578063dbac26e914610688578063eee5ff49146106b857610269565b806395ccea671161011557806395ccea67146105945780639ad4949d146105b0578063a46934df146105cc578063a519121a146105ea578063b909032514610608578063ca70e2941461061257610269565b8063737ea06e146105025780637541f41c14610520578063763191901461053e57806378e3079e1461055a5780638da5cb5b1461057657610269565b8063372d6b27116101ea57806352ff9f94116101ae57806352ff9f94146104445780635c975abb14610460578063611783861461047e57806368c4ac261461049a5780636a326ab1146104ca5780636d69fcaf146104e657610269565b8063372d6b27146103825780633aecd0e3146103a45780633cec009e146103d45780634774be9f146103f65780634e8d14421461042657610269565b80632f884710116102315780632f884710146102ec5780633013ce291461030a57806331bf746314610328578063348437f2146103465780633644e5151461036457610269565b806305a61f0c1461026e5780630f8c279814610278578063139d76011461029657806316c38b3c146102b2578063194d6297146102ce575b600080fd5b610276610797565b005b610280610bff565b60405161028d9190612df4565b60405180910390f35b6102b060048036038101906102ab9190612e45565b610ca2565b005b6102cc60048036038101906102c79190612eaa565b610d7f565b005b6102d6610e63565b6040516102e39190612df4565b60405180910390f35b6102f4610e69565b6040516103019190612df4565b60405180910390f35b610312610e6f565b60405161031f9190612f56565b60405180910390f35b610330610e95565b60405161033d9190612df4565b60405180910390f35b61034e610e9b565b60405161035b9190612df4565b60405180910390f35b61036c610ea1565b6040516103799190612f8a565b60405180910390f35b61038a610f4d565b60405161039b959493929190612fa5565b60405180910390f35b6103be60048036038101906103b99190613036565b610f75565b6040516103cb9190612df4565b60405180910390f35b6103dc610ff8565b6040516103ed959493929190613081565b60405180910390f35b610410600480360381019061040b91906130d4565b61104d565b60405161041d9190613114565b60405180910390f35b61042e61107c565b60405161043b9190612df4565b60405180910390f35b61045e60048036038101906104599190612e45565b611082565b005b6104686111a5565b6040516104759190613114565b60405180910390f35b61049860048036038101906104939190612e45565b6111b8565b005b6104b460048036038101906104af9190613036565b6112cd565b6040516104c19190613114565b60405180910390f35b6104e460048036038101906104df9190613036565b6112ed565b005b61050060048036038101906104fb9190613036565b611490565b005b61050a61162d565b604051610517919061312f565b60405180910390f35b610528611653565b6040516105359190612df4565b60405180910390f35b61055860048036038101906105539190613036565b611659565b005b610574600480360381019061056f9190613036565b611817565b005b61057e61199d565b60405161058b919061312f565b60405180910390f35b6105ae60048036038101906105a9919061314a565b6119c3565b005b6105ca60048036038101906105c59190613245565b611b36565b005b6105d4611d77565b6040516105e19190612df4565b60405180910390f35b6105f2611d7d565b6040516105ff9190613114565b60405180910390f35b610610611d90565b005b61061a611ec3565b6040516106279190612df4565b60405180910390f35b610638611ec9565b604051610645919061312f565b60405180910390f35b6106686004803603810190610663919061331c565b611eef565b005b610672612468565b60405161067f9190612df4565b60405180910390f35b6106a2600480360381019061069d9190613036565b61246e565b6040516106af9190613114565b60405180910390f35b6106d260048036038101906106cd91906130d4565b61248e565b6040516106df9190613114565b60405180910390f35b6106f06124ca565b6040516106fd919061312f565b60405180910390f35b610720600480360381019061071b9190612eaa565b6124f0565b005b61072a6125d4565b60405161073a94939291906133b6565b60405180910390f35b61075d60048036038101906107589190613036565b61262d565b005b61077960048036038101906107749190613036565b6127f2565b005b61079560048036038101906107909190612e45565b612978565b005b61079f612a8c565b600c60009054906101000a900460ff16156107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690613458565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561087c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610873906134c4565b60405180910390fd5b60006008549050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016108e2939291906134e4565b6020604051808303816000875af1158015610901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190613530565b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906135a9565b60405180910390fd5b600060646005548361097691906135f8565b6109809190613669565b905060008183610990919061369a565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610a119291906136ce565b6020604051808303816000875af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190613530565b610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90613743565b60405180910390fd5b8060066000828254610aa59190613763565b9250508190555081600d6000828254610abe9190613763565b9250508190555080600e6000828254610ad79190613763565b92505081905550600f6000815480929190610af190613797565b919050555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006064600954600854610b4b91906135f8565b610b559190613669565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc323a30fc9d0c62f95df15673b53485294e47c325b8a2b84fc22fc4c51da997686868686600b5442604051610be2969594939291906137df565b60405180910390a38060088190555050505050610bfd612adb565b565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c5c919061312f565b602060405180830381865afa158015610c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9d9190613855565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d29906138ce565b60405180910390fd5b60008111610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c9061393a565b60405180910390fd5b8060088190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e06906138ce565b60405180910390fd5b80600c60006101000a81548160ff0219169083151502179055507f9077d36bc00859b5c3f320310707208543dd35092cb0a0fe117d0c6a558b148b81604051610e589190613114565b60405180910390a150565b60095481565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600f5481565b60006040518060400160405280601081526020017f4149477561726469616e5468726f6e6500000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001610f3294939291906139e4565b60405160208183030381529060405280519060200120905090565b6000806000806000600d54600e54600f54600654600b54945094509450945094509091929394565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fb0919061312f565b602060405180830381865afa158015610fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff19190613855565b9050919050565b6000806000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854600b54600654600c60009054906101000a900460ff16945094509450945094509091929394565b60116020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600e5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906138ce565b60405180910390fd5b60658110158015611125575061012c8111155b611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613a7e565b60405180910390fd5b806009819055507fcdb57589e7b9cdc25ea6f4d49bfd6b5198c44fd04551a5ac1cae362b888894d18160405161119a9190612df4565b60405180910390a150565b600c60009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f906138ce565b60405180910390fd5b603281111561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390613aea565b60405180910390fd5b806005819055507fc892dd58854a363820e03263498ea588565c892c9e1750134019b8c4246b1c20816040516112c29190612df4565b60405180910390a150565b60036020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906138ce565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090613b56565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbd4032c1c91da2791730ea1bbc82c6b6f857da7c0a8318143d19ef74e62cd91360405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611517906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158690613bc2565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd1be2e90bd3d24839d9dd94ad871068e1f9688b02fa43f2a62c9975dfa9de2d760405160405180910390a250565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e0906138ce565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177090613c2e565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fbea12876694c4055c71f74308f752b9027cf3d554194000a366abddfc239a30660405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189e906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90613c9a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fcb5639215577b3eba6150c2a74d8de8ea5885c176e29e2e66a7551cc15b7a7cf60405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906138ce565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611ab09291906136ce565b6020604051808303816000875af1158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af39190613530565b611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990613d06565b60405180910390fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd906138ce565b60405180910390fd5b818190508484905014611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613d72565b60405180910390fd5b60005b84849050811015611d7057828282818110611c2f57611c2e613d92565b5b9050602002016020810190611c449190612eaa565b60126000878785818110611c5b57611c5a613d92565b5b9050602002016020810190611c709190613036565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550848482818110611cd457611cd3613d92565b5b9050602002016020810190611ce99190613036565b73ffffffffffffffffffffffffffffffffffffffff167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac848484818110611d3357611d32613d92565b5b9050602002016020810190611d489190612eaa565b604051611d559190613114565b60405180910390a28080611d6890613797565b915050611c11565b5050505050565b60065481565b601360009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e17906138ce565b60405180910390fd5b6007546008819055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b6000815480929190611e7e90613797565b9190505550600b547f797706adb366b812d45cb5827c302ffaba9df47b22b6277c077e4807ac8c2e5f60085442604051611eb9929190613dc1565b60405180910390a2565b60075481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ef7612a8c565b601360009054906101000a900460ff16611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90613e36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fac90613ea2565b60405180910390fd5b60008511611ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fef90613f0e565b60405180910390fd5b601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613f7a565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210990613fe6565b60405180910390fd5b60116000858152602001908152602001600020600084815260200190815260200160002060009054906101000a900460ff1615612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90614052565b60405180910390fd5b600061218e610ea1565b878787876040516020016121a6959493929190614072565b60405160208183030381529060405280519060200120905060006121c982612ae5565b9050600061222485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083612b1b90919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad9061411d565b60405180910390fd5b600160116000898152602001908152602001600020600088815260200190815260200160002060006101000a81548160ff021916908315150217905550876006541061231a57876006600082825461230e919061369a565b92505081905550612323565b60006006819055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a8a6040518363ffffffff1660e01b81526004016123809291906136ce565b6020604051808303816000875af115801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c39190613530565b612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f990614189565b60405180910390fd5b868973ffffffffffffffffffffffffffffffffffffffff167f9e80c048bc588b388047ffc6e8153e7c11aa34312de7ed62e1858ff3a44ddce88a894260405161244d939291906141a9565b60405180910390a3505050612460612adb565b505050505050565b600d5481565b60126020528060005260406000206000915054906101000a900460ff1681565b600060116000848152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612577906138ce565b60405180910390fd5b80601360006101000a81548160ff0219169083151502179055507fea34c6fbe1a2bfee0a40c92a902f35a990bdc4cd9a0ac954826debcdab567ef5816040516125c99190613114565b60405180910390a150565b60008060008060085493506064600554856125ef91906135f8565b6125f99190613669565b92508284612607919061369a565b9150606460095460085461261b91906135f8565b6126259190613669565b905090919293565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b4906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361272c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127239061422c565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612879906138ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614298565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fe0fa31f2e60e100713ed41eb71e6b32eaebcfef87883fbde33fe5aa91f1a764760405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ff906138ce565b60405180910390fd5b60008111612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a429061393a565b60405180910390fd5b806007819055507ff5dc6b37e81861f471e7f01100455ddecf074ddc85f6e7fc63141bba97c88e9581604051612a819190612df4565b60405180910390a150565b600260005403612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890614304565b60405180910390fd5b6002600081905550565b6001600081905550565b60007f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c52603c6000209050919050565b6000806000612b2a8585612b42565b91509150612b3781612b93565b819250505092915050565b6000806041835103612b835760008060006020860151925060408601519150606086015160001a9050612b7787828585612cf9565b94509450505050612b8c565b60006002915091505b9250929050565b60006004811115612ba757612ba6614324565b5b816004811115612bba57612bb9614324565b5b0315612cf65760016004811115612bd457612bd3614324565b5b816004811115612be757612be6614324565b5b03612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e9061439f565b60405180910390fd5b60026004811115612c3b57612c3a614324565b5b816004811115612c4e57612c4d614324565b5b03612c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c859061440b565b60405180910390fd5b60036004811115612ca257612ca1614324565b5b816004811115612cb557612cb4614324565b5b03612cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cec9061449d565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612d34576000600391509150612dd2565b600060018787878760405160008152602001604052604051612d5994939291906144d9565b6020604051602081039080840390855afa158015612d7b573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612dc957600060019250925050612dd2565b80600092509250505b94509492505050565b6000819050919050565b612dee81612ddb565b82525050565b6000602082019050612e096000830184612de5565b92915050565b600080fd5b600080fd5b612e2281612ddb565b8114612e2d57600080fd5b50565b600081359050612e3f81612e19565b92915050565b600060208284031215612e5b57612e5a612e0f565b5b6000612e6984828501612e30565b91505092915050565b60008115159050919050565b612e8781612e72565b8114612e9257600080fd5b50565b600081359050612ea481612e7e565b92915050565b600060208284031215612ec057612ebf612e0f565b5b6000612ece84828501612e95565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612f1c612f17612f1284612ed7565b612ef7565b612ed7565b9050919050565b6000612f2e82612f01565b9050919050565b6000612f4082612f23565b9050919050565b612f5081612f35565b82525050565b6000602082019050612f6b6000830184612f47565b92915050565b6000819050919050565b612f8481612f71565b82525050565b6000602082019050612f9f6000830184612f7b565b92915050565b600060a082019050612fba6000830188612de5565b612fc76020830187612de5565b612fd46040830186612de5565b612fe16060830185612de5565b612fee6080830184612de5565b9695505050505050565b600061300382612ed7565b9050919050565b61301381612ff8565b811461301e57600080fd5b50565b6000813590506130308161300a565b92915050565b60006020828403121561304c5761304b612e0f565b5b600061305a84828501613021565b91505092915050565b61306c81612ff8565b82525050565b61307b81612e72565b82525050565b600060a0820190506130966000830188613063565b6130a36020830187612de5565b6130b06040830186612de5565b6130bd6060830185612de5565b6130ca6080830184613072565b9695505050505050565b600080604083850312156130eb576130ea612e0f565b5b60006130f985828601612e30565b925050602061310a85828601612e30565b9150509250929050565b60006020820190506131296000830184613072565b92915050565b60006020820190506131446000830184613063565b92915050565b6000806040838503121561316157613160612e0f565b5b600061316f85828601613021565b925050602061318085828601612e30565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131af576131ae61318a565b5b8235905067ffffffffffffffff8111156131cc576131cb61318f565b5b6020830191508360208202830111156131e8576131e7613194565b5b9250929050565b60008083601f8401126132055761320461318a565b5b8235905067ffffffffffffffff8111156132225761322161318f565b5b60208301915083602082028301111561323e5761323d613194565b5b9250929050565b6000806000806040858703121561325f5761325e612e0f565b5b600085013567ffffffffffffffff81111561327d5761327c612e14565b5b61328987828801613199565b9450945050602085013567ffffffffffffffff8111156132ac576132ab612e14565b5b6132b8878288016131ef565b925092505092959194509250565b60008083601f8401126132dc576132db61318a565b5b8235905067ffffffffffffffff8111156132f9576132f861318f565b5b60208301915083600182028301111561331557613314613194565b5b9250929050565b60008060008060008060a0878903121561333957613338612e0f565b5b600061334789828a01613021565b965050602061335889828a01612e30565b955050604061336989828a01612e30565b945050606061337a89828a01612e30565b935050608087013567ffffffffffffffff81111561339b5761339a612e14565b5b6133a789828a016132c6565b92509250509295509295509295565b60006080820190506133cb6000830187612de5565b6133d86020830186612de5565b6133e56040830185612de5565b6133f26060830184612de5565b95945050505050565b600082825260208201905092915050565b7f436f6e7472616374206973207061757365640000000000000000000000000000600082015250565b60006134426012836133fb565b915061344d8261340c565b602082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b7f53656e64657220697320626c61636b6c69737465640000000000000000000000600082015250565b60006134ae6015836133fb565b91506134b982613478565b602082019050919050565b600060208201905081810360008301526134dd816134a1565b9050919050565b60006060820190506134f96000830186613063565b6135066020830185613063565b6135136040830184612de5565b949350505050565b60008151905061352a81612e7e565b92915050565b60006020828403121561354657613545612e0f565b5b60006135548482850161351b565b91505092915050565b7f5061796d656e74207472616e73666572206661696c6564000000000000000000600082015250565b60006135936017836133fb565b915061359e8261355d565b602082019050919050565b600060208201905081810360008301526135c281613586565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360382612ddb565b915061360e83612ddb565b925082820261361c81612ddb565b91508282048414831517613633576136326135c9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061367482612ddb565b915061367f83612ddb565b92508261368f5761368e61363a565b5b828204905092915050565b60006136a582612ddb565b91506136b083612ddb565b92508282039050818111156136c8576136c76135c9565b5b92915050565b60006040820190506136e36000830185613063565b6136f06020830184612de5565b9392505050565b7f546178207472616e73666572206661696c656400000000000000000000000000600082015250565b600061372d6013836133fb565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b600061376e82612ddb565b915061377983612ddb565b9250828201905080821115613791576137906135c9565b5b92915050565b60006137a282612ddb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137d4576137d36135c9565b5b600182019050919050565b600060c0820190506137f46000830189612de5565b6138016020830188612de5565b61380e6040830187612de5565b61381b6060830186612de5565b6138286080830185612de5565b61383560a0830184612de5565b979650505050505050565b60008151905061384f81612e19565b92915050565b60006020828403121561386b5761386a612e0f565b5b600061387984828501613840565b91505092915050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006138b86009836133fb565b91506138c382613882565b602082019050919050565b600060208201905081810360008301526138e7816138ab565b9050919050565b7f5072696365206d75737420626520706f73697469766500000000000000000000600082015250565b60006139246016836133fb565b915061392f826138ee565b602082019050919050565b6000602082019050818103600083015261395381613917565b9050919050565b6000819050919050565b61397561397082612f71565b61395a565b82525050565b6000819050919050565b61399661399182612ddb565b61397b565b82525050565b60008160601b9050919050565b60006139b48261399c565b9050919050565b60006139c6826139a9565b9050919050565b6139de6139d982612ff8565b6139bb565b82525050565b60006139f08287613964565b602082019150613a008286613964565b602082019150613a108285613985565b602082019150613a2082846139cd565b60148201915081905095945050505050565b7f4d756c7469706c696572206d75737420626520312e3031782d332e3078000000600082015250565b6000613a68601d836133fb565b9150613a7382613a32565b602082019050919050565b60006020820190508181036000830152613a9781613a5b565b9050919050565b7f54617820746f6f206869676820286d6178203530252900000000000000000000600082015250565b6000613ad46016836133fb565b9150613adf82613a9e565b602082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b7f546f6b656e206e6f7420737570706f7274656400000000000000000000000000600082015250565b6000613b406013836133fb565b9150613b4b82613b0a565b602082019050919050565b60006020820190508181036000830152613b6f81613b33565b9050919050565b7f496e76616c696420746f6b656e20616464726573730000000000000000000000600082015250565b6000613bac6015836133fb565b9150613bb782613b76565b602082019050919050565b60006020820190508181036000830152613bdb81613b9f565b9050919050565b7f43616e6e6f742072656d6f76652061637469766520746f6b656e000000000000600082015250565b6000613c18601a836133fb565b9150613c2382613be2565b602082019050919050565b60006020820190508181036000830152613c4781613c0b565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000613c84600f836133fb565b9150613c8f82613c4e565b602082019050919050565b60006020820190508181036000830152613cb381613c77565b9050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b6000613cf0600f836133fb565b9150613cfb82613cba565b602082019050919050565b60006020820190508181036000830152613d1f81613ce3565b9050919050565b7f4c656e677468206d69736d617463680000000000000000000000000000000000600082015250565b6000613d5c600f836133fb565b9150613d6782613d26565b602082019050919050565b60006020820190508181036000830152613d8b81613d4f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050613dd66000830185612de5565b613de36020830184612de5565b9392505050565b7f5265776172647320617265207061757365640000000000000000000000000000600082015250565b6000613e206012836133fb565b9150613e2b82613dea565b602082019050919050565b60006020820190508181036000830152613e4f81613e13565b9050919050565b7f496e76616c696420726563697069656e74000000000000000000000000000000600082015250565b6000613e8c6011836133fb565b9150613e9782613e56565b602082019050919050565b60006020820190508181036000830152613ebb81613e7f565b9050919050565b7f416d6f756e74206d75737420626520706f736974697665000000000000000000600082015250565b6000613ef86017836133fb565b9150613f0382613ec2565b602082019050919050565b60006020820190508181036000830152613f2781613eeb565b9050919050565b7f526563697069656e7420697320626c61636b6c69737465640000000000000000600082015250565b6000613f646018836133fb565b9150613f6f82613f2e565b602082019050919050565b60006020820190508181036000830152613f9381613f57565b9050919050565b7f43616c6c657220697320626c61636b6c69737465640000000000000000000000600082015250565b6000613fd06015836133fb565b9150613fdb82613f9a565b602082019050919050565b60006020820190508181036000830152613fff81613fc3565b9050919050565b7f4e6f6e636520616c726561647920757365640000000000000000000000000000600082015250565b600061403c6012836133fb565b915061404782614006565b602082019050919050565b6000602082019050818103600083015261406b8161402f565b9050919050565b600061407e8288613964565b60208201915061408e82876139cd565b60148201915061409e8286613985565b6020820191506140ae8285613985565b6020820191506140be8284613985565b6020820191508190509695505050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b60006141076011836133fb565b9150614112826140d1565b602082019050919050565b60006020820190508181036000830152614136816140fa565b9050919050565b7f526577617264207472616e73666572206661696c656400000000000000000000600082015250565b60006141736016836133fb565b915061417e8261413d565b602082019050919050565b600060208201905081810360008301526141a281614166565b9050919050565b60006060820190506141be6000830186612de5565b6141cb6020830185612de5565b6141d86040830184612de5565b949350505050565b7f496e76616c6964206e6577206f776e6572000000000000000000000000000000600082015250565b60006142166011836133fb565b9150614221826141e0565b602082019050919050565b6000602082019050818103600083015261424581614209565b9050919050565b7f496e76616c6964207369676e6572206164647265737300000000000000000000600082015250565b60006142826016836133fb565b915061428d8261424c565b602082019050919050565b600060208201905081810360008301526142b181614275565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006142ee601f836133fb565b91506142f9826142b8565b602082019050919050565b6000602082019050818103600083015261431d816142e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006143896018836133fb565b915061439482614353565b602082019050919050565b600060208201905081810360008301526143b88161437c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006143f5601f836133fb565b9150614400826143bf565b602082019050919050565b60006020820190508181036000830152614424816143e8565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006144876022836133fb565b91506144928261442b565b604082019050919050565b600060208201905081810360008301526144b68161447a565b9050919050565b600060ff82169050919050565b6144d3816144bd565b82525050565b60006080820190506144ee6000830187612f7b565b6144fb60208301866144ca565b6145086040830185612f7b565b6145156060830184612f7b565b9594505050505056fea2646970667358221220782e2c99e2c2aa10ebe4ff290964234aa06f1badf0e2a1526c1cc625aafecd4a64736f6c63430008130033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| VIRTUAL | 0.216358 | $0.561 | $0.12 | |
| DIH | 1 | $0.0000102 | $0 |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x9046dc…85951c | 33 days agoWed, 15 Jul 2026 07:18:36 UTC | 0x9e80c0…dce8 | [0] 0x000000000000…3d66088a [1] 0x000000000000…00000041 data: 0x000000000000000000…6a57344c |
| 0xebf8d9…3dbe95 | 33 days agoWed, 15 Jul 2026 07:18:31 UTC | 0x9e80c0…dce8 | [0] 0x000000000000…f48f3e4c [1] 0x000000000000…00000041 data: 0x000000000000000000…6a573447 |
| 0x48331a…413a85 | 33 days agoWed, 15 Jul 2026 07:18:25 UTC | 0x9e80c0…dce8 | [0] 0x000000000000…d04817f7 [1] 0x000000000000…00000041 data: 0x000000000000000000…6a573441 |
| 0x5a5de2…79fdd2 | 33 days agoWed, 15 Jul 2026 07:15:19 UTC | 0xc323a3…9976 | [0] 0x000000000000…d04817f7 [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a573387 |
| 0x7e5d8e…2a8083 | 33 days agoWed, 15 Jul 2026 07:14:50 UTC | 0xc323a3…9976 | [0] 0x000000000000…f48f3e4c [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a57336a |
| 0x3cdb57…e248fa | 33 days agoWed, 15 Jul 2026 07:13:48 UTC | 0xc323a3…9976 | [0] 0x000000000000…d04817f7 [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a57332c |
| 0xcc9094…f5bdee | 33 days agoWed, 15 Jul 2026 07:13:14 UTC | 0xc323a3…9976 | [0] 0x000000000000…f48f3e4c [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a57330a |
| 0xe0bfbc…817b83 | 33 days agoWed, 15 Jul 2026 07:13:09 UTC | 0xc323a3…9976 | [0] 0x000000000000…d04817f7 [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a573305 |
| 0x41053c…b6d536 | 33 days agoWed, 15 Jul 2026 07:12:18 UTC | 0xc323a3…9976 | [0] 0x000000000000…f48f3e4c [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a5732d2 |
| 0xabd07a…1681ca | 33 days agoWed, 15 Jul 2026 07:10:58 UTC | 0xc323a3…9976 | [0] 0x000000000000…d04817f7 [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a573282 |
| 0xe6714a…5a2c66 | 34 days agoWed, 15 Jul 2026 07:10:50 UTC | 0xc323a3…9976 | [0] 0x000000000000…f48f3e4c [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a57327a |
| 0x17718d…483c85 | 34 days agoWed, 15 Jul 2026 07:10:28 UTC | 0xc323a3…9976 | [0] 0x000000000000…d04817f7 [1] 0x000000000000…cd3d9c31 data: 0x000000000000000000…6a573264 |
| 0x9d97c1…812fc2 | 34 days agoWed, 15 Jul 2026 07:10:06 UTC | 0x797706…2e5f | [0] 0x000000000000…00000002 data: 0x000000000000000000…6a57324e |
| 0xd912f0…ce7e45 | 34 days agoTue, 14 Jul 2026 17:37:07 UTC | 0xcdb575…94d1 | data: 0x000000000000000000…0000006e |
| 0x2fa144…cf6a66 | 34 days agoTue, 14 Jul 2026 17:36:48 UTC | 0xf5dc6b…8e95 | data: 0x000000000000000000…5d8a0000 |
| 0x089ab1…1f93e2 | 34 days agoTue, 14 Jul 2026 17:13:30 UTC | 0xd1be2e…e2d7 | [0] 0x000000000000…cd3d9c31 |
| 0x089ab1…1f93e2 | 34 days agoTue, 14 Jul 2026 17:13:30 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…b0cb8eac |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x9046dc…85951c | claimReward | 10,206,618 | 33 days agoWed, 15 Jul 2026 07:18:36 UTC | 0xa12a…8eac | IN | AIGuardianThrone | $0.000 ETH | 0.00000559 | |
| 0xebf8d9…3dbe95 | claimReward | 10,206,563 | 33 days agoWed, 15 Jul 2026 07:18:31 UTC | 0xa12a…8eac | IN | AIGuardianThrone | $0.000 ETH | 0.00000461 | |
| 0x48331a…413a85 | claimReward | 10,206,508 | 33 days agoWed, 15 Jul 2026 07:18:25 UTC | 0xa12a…8eac | IN | AIGuardianThrone | $0.000 ETH | 0.00000457 | |
| 0x5a5de2…79fdd2 | sendGuardian | 10,204,653 | 33 days agoWed, 15 Jul 2026 07:15:19 UTC | 0x76fe…17f7 | IN | AIGuardianThrone | $0.000 ETH | 0.00000548 | |
| 0x7e5d8e…2a8083 | sendGuardian | 10,204,366 | 33 days agoWed, 15 Jul 2026 07:14:50 UTC | 0xfed9…3e4c | IN | AIGuardianThrone | $0.000 ETH | 0.00000548 | |
| 0x3cdb57…e248fa | sendGuardian | 10,203,746 | 33 days agoWed, 15 Jul 2026 07:13:48 UTC | 0x76fe…17f7 | IN | AIGuardianThrone | $0.000 ETH | 0.00000552 | |
| 0xcc9094…f5bdee | sendGuardian | 10,203,417 | 33 days agoWed, 15 Jul 2026 07:13:14 UTC | 0xfed9…3e4c | IN | AIGuardianThrone | $0.000 ETH | 0.00000557 | |
| 0xe0bfbc…817b83 | sendGuardian | 10,203,358 | 33 days agoWed, 15 Jul 2026 07:13:09 UTC | 0x76fe…17f7 | IN | AIGuardianThrone | $0.000 ETH | 0.00000554 | |
| 0x41053c…b6d536 | sendGuardian | 10,202,842 | 33 days agoWed, 15 Jul 2026 07:12:18 UTC | 0xfed9…3e4c | IN | AIGuardianThrone | $0.000 ETH | 0.00000548 | |
| 0xabd07a…1681ca | sendGuardian | 10,202,047 | 33 days agoWed, 15 Jul 2026 07:10:58 UTC | 0x76fe…17f7 | IN | AIGuardianThrone | $0.000 ETH | 0.00000548 | |
| 0xe6714a…5a2c66 | sendGuardian | 10,201,969 | 34 days agoWed, 15 Jul 2026 07:10:50 UTC | 0xfed9…3e4c | IN | AIGuardianThrone | $0.000 ETH | 0.00000549 | |
| 0x17718d…483c85 | sendGuardian | 10,201,754 | 34 days agoWed, 15 Jul 2026 07:10:28 UTC | 0x76fe…17f7 | IN | AIGuardianThrone | $0.000 ETH | 0.00000999 | |
| 0x9d97c1…812fc2 | resetGuardian | 10,201,528 | 34 days agoWed, 15 Jul 2026 07:10:06 UTC | 0xa12a…8eac | IN | AIGuardianThrone | $0.000 ETH | 0.00000207 | |
| 0xd912f0…ce7e45 | setGuardianMultiplier | 9,714,602 | 34 days agoTue, 14 Jul 2026 17:37:07 UTC | 0xa12a…8eac | IN | AIGuardianThrone | $0.000 ETH | 0.00000152 | |
| 0x2fa144…cf6a66 | setGuardianStartingPrice | 9,714,420 | 34 days agoTue, 14 Jul 2026 17:36:48 UTC | 0xa12a…8eac | IN | AIGuardianThrone | $0.000 ETH | 0.00000154 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x41269d55…d266a2 | Transfer | 18,493,652 | 24 days agoFri, 24 Jul 2026 22:04:18 UTC | 0xcaf7…5d11 | IN | 0x78c8…4803 | $0.001 DIH | ||
| 0x9046dc20…85951c | Transfer | 10,206,618 | 33 days agoWed, 15 Jul 2026 07:18:36 UTC | 0x78c8…4803 | OUT | 0xfbc1…088a | $0.110.2 VIRTUAL | ||
| 0xebf8d989…3dbe95 | Transfer | 10,206,563 | 33 days agoWed, 15 Jul 2026 07:18:31 UTC | 0x78c8…4803 | OUT | 0xfed9…3e4c | $1.142.04 VIRTUAL | ||
| 0x48331a2d…413a85 | Transfer | 10,206,508 | 33 days agoWed, 15 Jul 2026 07:18:25 UTC | 0x78c8…4803 | OUT | 0x76fe…17f7 | $0.911.63 VIRTUAL | ||
| 0x5a5de23c…79fdd2 | Transfer | 10,204,653 | 33 days agoWed, 15 Jul 2026 07:15:19 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.020.042871 VIRTUAL | ||
| 0x5a5de23c…79fdd2 | Transfer | 10,204,653 | 33 days agoWed, 15 Jul 2026 07:15:19 UTC | 0x76fe…17f7 | IN | 0x78c8…4803 | $0.120.214358 VIRTUAL | ||
| 0x7e5d8ec9…2a8083 | Transfer | 10,204,366 | 33 days agoWed, 15 Jul 2026 07:14:50 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.020.038974 VIRTUAL | ||
| 0x7e5d8ec9…2a8083 | Transfer | 10,204,366 | 33 days agoWed, 15 Jul 2026 07:14:50 UTC | 0xfed9…3e4c | IN | 0x78c8…4803 | $0.110.194871 VIRTUAL | ||
| 0x3cdb57c8…e248fa | Transfer | 10,203,746 | 33 days agoWed, 15 Jul 2026 07:13:48 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.020.035431 VIRTUAL | ||
| 0x3cdb57c8…e248fa | Transfer | 10,203,746 | 33 days agoWed, 15 Jul 2026 07:13:48 UTC | 0x76fe…17f7 | IN | 0x78c8…4803 | $0.100.177156 VIRTUAL | ||
| 0xcc909450…f5bdee | Transfer | 10,203,417 | 33 days agoWed, 15 Jul 2026 07:13:14 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.020.032210 VIRTUAL | ||
| 0xcc909450…f5bdee | Transfer | 10,203,417 | 33 days agoWed, 15 Jul 2026 07:13:14 UTC | 0xfed9…3e4c | IN | 0x78c8…4803 | $0.090.161051 VIRTUAL | ||
| 0xe0bfbc5e…817b83 | Transfer | 10,203,358 | 33 days agoWed, 15 Jul 2026 07:13:09 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.020.029282 VIRTUAL | ||
| 0xe0bfbc5e…817b83 | Transfer | 10,203,358 | 33 days agoWed, 15 Jul 2026 07:13:09 UTC | 0x76fe…17f7 | IN | 0x78c8…4803 | $0.080.14641 VIRTUAL | ||
| 0x41053ccf…b6d536 | Transfer | 10,202,842 | 33 days agoWed, 15 Jul 2026 07:12:18 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.010.02662 VIRTUAL | ||
| 0x41053ccf…b6d536 | Transfer | 10,202,842 | 33 days agoWed, 15 Jul 2026 07:12:18 UTC | 0xfed9…3e4c | IN | 0x78c8…4803 | $0.070.1331 VIRTUAL | ||
| 0xabd07a32…1681ca | Transfer | 10,202,047 | 33 days agoWed, 15 Jul 2026 07:10:58 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.010.0242 VIRTUAL | ||
| 0xabd07a32…1681ca | Transfer | 10,202,047 | 33 days agoWed, 15 Jul 2026 07:10:58 UTC | 0x76fe…17f7 | IN | 0x78c8…4803 | $0.070.121 VIRTUAL | ||
| 0xe6714ac3…5a2c66 | Transfer | 10,201,969 | 34 days agoWed, 15 Jul 2026 07:10:50 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.010.022 VIRTUAL | ||
| 0xe6714ac3…5a2c66 | Transfer | 10,201,969 | 34 days agoWed, 15 Jul 2026 07:10:50 UTC | 0xfed9…3e4c | IN | 0x78c8…4803 | $0.060.11 VIRTUAL | ||
| 0x17718d9d…483c85 | Transfer | 10,201,754 | 34 days agoWed, 15 Jul 2026 07:10:28 UTC | 0x78c8…4803 | OUT | 0xa12a…8eac | $0.010.02 VIRTUAL | ||
| 0x17718d9d…483c85 | Transfer | 10,201,754 | 34 days agoWed, 15 Jul 2026 07:10:28 UTC | 0x76fe…17f7 | IN | 0x78c8…4803 | $0.060.1 VIRTUAL | ||
| 0x0ccbe760…e2533e | Transfer | 9,836,557 | 34 days agoTue, 14 Jul 2026 21:00:38 UTC | 0xa12a…8eac | IN | 0x78c8…4803 | $1.683 VIRTUAL |