Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0.26565 ETH
Eth Value
$601.39 (@ $2,263.83/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| 0x448e50d920be26241bf2fe9620a990177b0d2cfe23be52cd4d3cca7b3d648d06 | Freemint | (pending) | 12 hrs ago | IN | 0 ETH | (Pending) | |||
| Set Approval For... | 24669426 | 28 mins ago | IN | 0 ETH | 0.0000503 | ||||
| Set Approval For... | 24669128 | 1 hr ago | IN | 0 ETH | 0.00000902 | ||||
| Set Approval For... | 24669072 | 1 hr ago | IN | 0 ETH | 0.00000951 | ||||
| Freemint | 24668993 | 1 hr ago | IN | 0 ETH | 0.00000234 | ||||
| Freemint | 24668986 | 1 hr ago | IN | 0 ETH | 0.00000234 | ||||
| Freemint | 24668981 | 1 hr ago | IN | 0 ETH | 0.00000229 | ||||
| Freemint | 24668975 | 1 hr ago | IN | 0 ETH | 0.00000263 | ||||
| Set Approval For... | 24668971 | 1 hr ago | IN | 0 ETH | 0.00000647 | ||||
| Set Approval For... | 24668513 | 3 hrs ago | IN | 0 ETH | 0.00000234 | ||||
| Freemint | 24668467 | 3 hrs ago | IN | 0 ETH | 0.00000126 | ||||
| Freemint | 24668465 | 3 hrs ago | IN | 0 ETH | 0.00000131 | ||||
| Set Approval For... | 24668150 | 4 hrs ago | IN | 0 ETH | 0.00000927 | ||||
| Set Approval For... | 24668150 | 4 hrs ago | IN | 0 ETH | 0.00000927 | ||||
| Set Approval For... | 24668073 | 5 hrs ago | IN | 0 ETH | 0.00000307 | ||||
| Set Approval For... | 24668008 | 5 hrs ago | IN | 0 ETH | 0.0000542 | ||||
| Set Approval For... | 24668008 | 5 hrs ago | IN | 0 ETH | 0.00000166 | ||||
| Freemint | 24667772 | 6 hrs ago | IN | 0 ETH | 0.00000429 | ||||
| Freemint | 24667771 | 6 hrs ago | IN | 0 ETH | 0.00000394 | ||||
| Freemint | 24667765 | 6 hrs ago | IN | 0 ETH | 0.00000531 | ||||
| Freemint | 24667763 | 6 hrs ago | IN | 0 ETH | 0.00000563 | ||||
| Freemint | 24667760 | 6 hrs ago | IN | 0 ETH | 0.00000604 | ||||
| Freemint | 24667757 | 6 hrs ago | IN | 0 ETH | 0.00000622 | ||||
| Set Approval For... | 24667689 | 6 hrs ago | IN | 0 ETH | 0.00000929 | ||||
| Mint | 24667201 | 7 hrs ago | IN | 0.0002 ETH | 0.00000586 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Bkdugis
Compiler Version
v0.8.33+commit.64118f21
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.33;
/*
Hahahahahaaa
*/
contract Bkdugis {
// Errors
error NotOwner();
error NoScripts();
error SoldOut();
error FreeMintSoldOut();
error AlreadyFreeMinted();
error InsufficientPayment();
error ZeroQuantity();
error NonexistentToken();
error NotApproved();
error InvalidTransfer();
error BurnedToken();
// Events
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
event FreeMintResult(address indexed minter, uint256 indexed tokenId, bool survived);
// Constants
uint256 public constant MAX_SUPPLY = 10000;
uint256 public constant COST = 0.00015 ether;
string public constant NAME = "Bkdugis";
string public constant SYMBOL = "Bkdugis";
address public constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
uint256 public constant BURN_NUMERATOR = 9;
uint256 public constant BURN_DENOMINATOR = 10;
// State
address private _owner;
uint96 private _currentIndex;
string private _baseURI = "bafybeifhckmb4tb5yvxmwwg5ivbl2g2nyjimjlpt7x6kxlptq2uj4bluba";
uint128 public MAX_FREE = 9213;
uint128 public MAX_FREE_PER_WALLET = 1;
uint256 private _randomNonce;
mapping(uint256 => address) private _owners;
mapping(address => uint256) private _balances;
mapping(uint256 => address) private _tokenApprovals;
mapping(address => mapping(address => bool)) private _operatorApprovals;
mapping(address => uint256) public minted;
mapping(uint256 => bool) private _burned;
uint256 public totalBurned;
uint256 public totalSurvived;
modifier onlyOwner() {
if (msg.sender != _owner) revert NotOwner();
_;
}
modifier noContracts() {
if (tx.origin != msg.sender) revert NoScripts();
_;
}
constructor() {
_owner = msg.sender;
}
// ============ MINT FUNCTIONS ============
/// @notice Free mint with 9/10 chance of being burned
function freemint() external noContracts {
uint256 amount = MAX_FREE_PER_WALLET;
uint256 current = _currentIndex;
if (current + amount > MAX_FREE) revert FreeMintSoldOut();
if (current + amount > MAX_SUPPLY) revert SoldOut();
if (minted[msg.sender] != 0) revert AlreadyFreeMinted();
minted[msg.sender] = amount;
_mintWithBurnChance(msg.sender, amount);
}
/// @notice Paid mint — always safe, no burn
function mint(uint256 amount) external payable {
if (_currentIndex + amount > MAX_SUPPLY) revert SoldOut();
if (msg.value < amount * COST) revert InsufficientPayment();
_mint(msg.sender, amount);
}
/// @notice Team mint — always safe, no burn
function teamMint(uint256 amount) external onlyOwner {
if (_currentIndex + amount > MAX_SUPPLY) revert SoldOut();
_mint(msg.sender, amount);
}
/// @dev Mint with 9/10 random burn chance per token (used only by freemint)
function _mintWithBurnChance(address to, uint256 quantity) internal {
if (quantity == 0) revert ZeroQuantity();
for (uint256 i; i < quantity;) {
uint256 tokenId = _currentIndex;
// Mint the token to the user first
_owners[tokenId] = to;
_currentIndex = uint96(tokenId + 1);
emit Transfer(address(0), to, tokenId);
// Roll the dice
bool shouldBurn = _rollForBurn(to, tokenId);
if (shouldBurn) {
// Burned: send to dead address
_owners[tokenId] = DEAD_ADDRESS;
_balances[DEAD_ADDRESS] += 1;
_burned[tokenId] = true;
unchecked { ++totalBurned; }
emit Transfer(to, DEAD_ADDRESS, tokenId);
emit FreeMintResult(to, tokenId, false);
} else {
// Survived!
_balances[to] += 1;
unchecked { ++totalSurvived; }
emit FreeMintResult(to, tokenId, true);
}
unchecked { ++i; }
}
}
/// @dev Standard mint without burn (used by paid mint and team mint)
function _mint(address to, uint256 quantity) internal {
if (quantity == 0) revert ZeroQuantity();
uint256 startId = _currentIndex;
// ERC721A optimization: single SSTORE for batch
_owners[startId] = to;
_balances[to] += quantity;
for (uint256 i; i < quantity;) {
emit Transfer(address(0), to, startId + i);
unchecked { ++i; }
}
_currentIndex = uint96(startId + quantity);
}
/// @dev Pseudo-random burn determination (90% burn chance)
function _rollForBurn(address minter, uint256 tokenId) internal returns (bool) {
unchecked { ++_randomNonce; }
uint256 randomValue = uint256(
keccak256(
abi.encodePacked(
block.timestamp,
block.prevrandao,
block.number,
minter,
tokenId,
_randomNonce,
blockhash(block.number - 1),
gasleft()
)
)
);
// randomValue % 10 < 9 → burn (90% chance)
return (randomValue % BURN_DENOMINATOR) < BURN_NUMERATOR;
}
// ============ VIEW FUNCTIONS ============
/// @notice Circulating supply (minted minus burned)
function totalSupply() public view returns (uint256) {
return _currentIndex - totalBurned;
}
/// @notice Total tokens ever minted (including burned)
function totalMinted() public view returns (uint256) {
return _currentIndex;
}
/// @notice Check if a specific token was burned
function isBurned(uint256 tokenId) public view returns (bool) {
return _burned[tokenId];
}
/// @notice Get burn statistics
function burnStats() public view returns (
uint256 minted_,
uint256 burned_,
uint256 survived_,
uint256 circulating_
) {
return (_currentIndex, totalBurned, totalSurvived, totalSupply());
}
function balanceOf(address account) public view returns (uint256) {
return _balances[account];
}
/// @dev ownerOf that reverts for burned tokens
function ownerOf(uint256 tokenId) public view returns (address) {
if (tokenId >= _currentIndex) revert NonexistentToken();
if (_burned[tokenId]) revert BurnedToken();
for (uint256 i = tokenId; ; ) {
address tokenOwner = _owners[i];
if (tokenOwner != address(0)) {
if (tokenOwner == DEAD_ADDRESS) revert BurnedToken();
return tokenOwner;
}
unchecked { --i; }
}
}
function owner() public view returns (address) {
return _owner;
}
function name() public pure returns (string memory) {
return NAME;
}
function symbol() public pure returns (string memory) {
return SYMBOL;
}
function tokenURI(uint256 tokenId) public view returns (string memory) {
if (tokenId >= _currentIndex) revert NonexistentToken();
if (_burned[tokenId]) revert BurnedToken();
return string(abi.encodePacked("ipfs://", _baseURI, "/", _toString(tokenId), ".json"));
}
// ============ APPROVALS ============
function approve(address to, uint256 tokenId) public {
address tokenOwner = ownerOf(tokenId);
if (msg.sender != tokenOwner && !_operatorApprovals[tokenOwner][msg.sender])
revert NotApproved();
_tokenApprovals[tokenId] = to;
emit Approval(tokenOwner, to, tokenId);
}
function setApprovalForAll(address operator, bool approved) public {
_operatorApprovals[msg.sender][operator] = approved;
emit ApprovalForAll(msg.sender, operator, approved);
}
function getApproved(uint256 tokenId) public view returns (address) {
if (tokenId >= _currentIndex) revert NonexistentToken();
if (_burned[tokenId]) revert BurnedToken();
return _tokenApprovals[tokenId];
}
function isApprovedForAll(address account, address operator) public view returns (bool) {
return _operatorApprovals[account][operator];
}
// ============ TRANSFERS ============
function transferFrom(address from, address to, uint256 tokenId) public {
_transfer(from, to, tokenId);
}
function safeTransferFrom(address from, address to, uint256 tokenId) public {
_transfer(from, to, tokenId);
}
function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata) public {
_transfer(from, to, tokenId);
}
function _transfer(address from, address to, uint256 tokenId) internal {
if (_burned[tokenId]) revert BurnedToken();
if (ownerOf(tokenId) != from) revert InvalidTransfer();
if (msg.sender != from && !_operatorApprovals[from][msg.sender] && _tokenApprovals[tokenId] != msg.sender)
revert NotApproved();
delete _tokenApprovals[tokenId];
unchecked {
--_balances[from];
++_balances[to];
}
_owners[tokenId] = to;
// Initialize next slot if needed (ERC721A pattern)
uint256 nextId = tokenId + 1;
if (nextId < _currentIndex && _owners[nextId] == address(0) && !_burned[nextId]) {
_owners[nextId] = from;
}
emit Transfer(from, to, tokenId);
}
// ============ ERC165 & ERC2981 ============
function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
return interfaceId == 0x01ffc9a7 || // ERC165
interfaceId == 0x80ac58cd || // ERC721
interfaceId == 0x5b5e139f || // ERC721Metadata
interfaceId == 0x2a55205a; // ERC2981
}
function royaltyInfo(uint256, uint256 salePrice) external view returns (address, uint256) {
return (_owner, (salePrice * 500) / 10000);
}
// ============ ADMIN ============
function setData(string calldata base, uint128 maxFree, uint128 maxFreePerWallet) external onlyOwner {
_baseURI = base;
MAX_FREE = maxFree;
MAX_FREE_PER_WALLET = maxFreePerWallet;
}
function withdraw() external onlyOwner {
(bool success, ) = msg.sender.call{value: address(this).balance}("");
require(success);
}
// ============ UTILS ============
function _toString(uint256 value) internal pure returns (string memory) {
if (value == 0) return "0";
uint256 temp = value;
uint256 digits;
while (temp != 0) { digits++; temp /= 10; }
bytes memory buffer = new bytes(digits);
while (value != 0) {
buffer[--digits] = bytes1(uint8(48 + value % 10));
value /= 10;
}
return string(buffer);
}
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyFreeMinted","type":"error"},{"inputs":[],"name":"BurnedToken","type":"error"},{"inputs":[],"name":"FreeMintSoldOut","type":"error"},{"inputs":[],"name":"InsufficientPayment","type":"error"},{"inputs":[],"name":"InvalidTransfer","type":"error"},{"inputs":[],"name":"NoScripts","type":"error"},{"inputs":[],"name":"NonexistentToken","type":"error"},{"inputs":[],"name":"NotApproved","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SoldOut","type":"error"},{"inputs":[],"name":"ZeroQuantity","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"survived","type":"bool"}],"name":"FreeMintResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BURN_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BURN_NUMERATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEAD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FREE","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FREE_PER_WALLET","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnStats","outputs":[{"internalType":"uint256","name":"minted_","type":"uint256"},{"internalType":"uint256","name":"burned_","type":"uint256"},{"internalType":"uint256","name":"survived_","type":"uint256"},{"internalType":"uint256","name":"circulating_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freemint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isBurned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"uint128","name":"maxFree","type":"uint128"},{"internalType":"uint128","name":"maxFreePerWallet","type":"uint128"}],"name":"setData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teamMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSurvived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040526040518060600160405280603b815260200161381a603b91396001908161002b919061033e565b506123fd60025f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600260106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055503480156100ab575f5ffd5b50335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061040d565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061016b57607f821691505b60208210810361017e5761017d610127565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826101a5565b6101ea86836101a5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61022e61022961022484610202565b61020b565b610202565b9050919050565b5f819050919050565b61024783610214565b61025b61025382610235565b8484546101b1565b825550505050565b5f5f905090565b610272610263565b61027d81848461023e565b505050565b5f5b828110156102a3576102985f82840161026a565b600181019050610284565b505050565b601f8211156102f657828211156102f5576102c281610184565b6102cb83610196565b6102d485610196565b60208610156102e1575f90505b8083016102f082840382610282565b505050505b5b505050565b5f82821c905092915050565b5f6103165f19846008026102fb565b1980831691505092915050565b5f61032e8383610307565b9150826002028217905092915050565b610347826100f0565b67ffffffffffffffff8111156103605761035f6100fa565b5b61036a8254610154565b6103758282856102a8565b5f60209050601f8311600181146103a6575f8415610394578287015190505b61039e8582610323565b865550610405565b601f1984166103b486610184565b5f5b828110156103db578489015182556001820191506020850194506020810190506103b6565b868310156103f857848901516103f4601f891682610307565b8355505b6001600288020188555050505b505050505050565b6134008061041a5f395ff3fe60806040526004361061020e575f3560e01c806398710d1e11610117578063bf8fbbd21161009f578063e4474d161161006e578063e4474d161461078c578063e985e9c5146107b6578063ed6661c2146107f2578063f76f8d781461081c578063f9cb63ac146108465761020e565b8063bf8fbbd2146106c0578063c87b56dd146106ea578063d89135cd14610726578063db44fe07146107505761020e565b8063a2309ff8116100e6578063a2309ff8146105f2578063a3f4df7e1461061c578063aaa5be5614610646578063abd0a55214610670578063b88d4fde146106985761020e565b806398710d1e1461055a578063987ec45814610584578063a0712d68146105ae578063a22cb465146105ca5761020e565b806332cb6b0c1161019a5780634e6fd6c4116101695780634e6fd6c4146104645780636352211e1461048e57806370a08231146104ca5780638da5cb5b1461050657806395d89b41146105305761020e565b806332cb6b0c146103cf57806338e36b3e146103f95780633ccfd60b1461042657806342842e0e1461043c5761020e565b806318160ddd116101e157806318160ddd146102dc5780631e7269c51461030657806323b872dd146103425780632a55205a1461036a5780632fbba115146103a75761020e565b806301ffc9a71461021257806306fdde031461024e578063081812fc14610278578063095ea7b3146102b4575b5f5ffd5b34801561021d575f5ffd5b506102386004803603810190610233919061256b565b61085c565b60405161024591906125b0565b60405180910390f35b348015610259575f5ffd5b5061026261091d565b60405161026f9190612639565b60405180910390f35b348015610283575f5ffd5b5061029e6004803603810190610299919061268c565b61095a565b6040516102ab91906126f6565b60405180910390f35b3480156102bf575f5ffd5b506102da60048036038101906102d59190612739565b610a48565b005b3480156102e7575f5ffd5b506102f0610bf8565b6040516102fd9190612786565b60405180910390f35b348015610311575f5ffd5b5061032c6004803603810190610327919061279f565b610c33565b6040516103399190612786565b60405180910390f35b34801561034d575f5ffd5b50610368600480360381019061036391906127ca565b610c48565b005b348015610375575f5ffd5b50610390600480360381019061038b919061281a565b610c58565b60405161039e929190612858565b60405180910390f35b3480156103b2575f5ffd5b506103cd60048036038101906103c8919061268c565b610ca1565b005b3480156103da575f5ffd5b506103e3610da1565b6040516103f09190612786565b60405180910390f35b348015610404575f5ffd5b5061040d610da7565b60405161041d949392919061287f565b60405180910390f35b348015610431575f5ffd5b5061043a610df2565b005b348015610447575f5ffd5b50610462600480360381019061045d91906127ca565b610eeb565b005b34801561046f575f5ffd5b50610478610efb565b60405161048591906126f6565b60405180910390f35b348015610499575f5ffd5b506104b460048036038101906104af919061268c565b610f01565b6040516104c191906126f6565b60405180910390f35b3480156104d5575f5ffd5b506104f060048036038101906104eb919061279f565b6110a6565b6040516104fd9190612786565b60405180910390f35b348015610511575f5ffd5b5061051a6110ec565b60405161052791906126f6565b60405180910390f35b34801561053b575f5ffd5b50610544611113565b6040516105519190612639565b60405180910390f35b348015610565575f5ffd5b5061056e611150565b60405161057b91906128ec565b60405180910390f35b34801561058f575f5ffd5b50610598611172565b6040516105a59190612786565b60405180910390f35b6105c860048036038101906105c3919061268c565b611177565b005b3480156105d5575f5ffd5b506105f060048036038101906105eb919061292f565b61123d565b005b3480156105fd575f5ffd5b50610606611335565b6040516106139190612786565b60405180910390f35b348015610627575f5ffd5b50610630611363565b60405161063d9190612639565b60405180910390f35b348015610651575f5ffd5b5061065a61139c565b6040516106679190612786565b60405180910390f35b34801561067b575f5ffd5b50610696600480360381019061069191906129f8565b6113a2565b005b3480156106a3575f5ffd5b506106be60048036038101906106b99190612abe565b6114b0565b005b3480156106cb575f5ffd5b506106d46114c2565b6040516106e19190612786565b60405180910390f35b3480156106f5575f5ffd5b50610710600480360381019061070b919061268c565b6114cc565b60405161071d9190612639565b60405180910390f35b348015610731575f5ffd5b5061073a6115b5565b6040516107479190612786565b60405180910390f35b34801561075b575f5ffd5b506107766004803603810190610771919061268c565b6115bb565b60405161078391906125b0565b60405180910390f35b348015610797575f5ffd5b506107a06115e1565b6040516107ad9190612786565b60405180910390f35b3480156107c1575f5ffd5b506107dc60048036038101906107d79190612b42565b6115e6565b6040516107e991906125b0565b60405180910390f35b3480156107fd575f5ffd5b50610806611674565b60405161081391906128ec565b60405180910390f35b348015610827575f5ffd5b50610830611695565b60405161083d9190612639565b60405180910390f35b348015610851575f5ffd5b5061085a6116ce565b005b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108b657506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108e65750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109165750632a55205a60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606040518060400160405280600781526020017f426b647567697300000000000000000000000000000000000000000000000000815250905090565b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1682106109bb576040517fb1d04f0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8381526020019081526020015f205f9054906101000a900460ff1615610a10576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610a5282610f01565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b12575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610b49576040517fc19f17a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260065f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f600a545f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16610c2e9190612bad565b905090565b6008602052805f5260405f205f915090505481565b610c53838383611913565b505050565b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127106101f485610c8c9190612be0565b610c969190612c4e565b915091509250929050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d26576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710815f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16610d5c9190612c7e565b1115610d94576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9e3382611dc7565b50565b61271081565b5f5f5f5f5f60149054906101000a90046bffffffffffffffffffffffff16600a54600b54610dd3610bf8565b836bffffffffffffffffffffffff169350935093509350935090919293565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610e9c90612cde565b5f6040518083038185875af1925050503d805f8114610ed6576040519150601f19603f3d011682016040523d82523d5f602084013e610edb565b606091505b5050905080610ee8575f5ffd5b50565b610ef6838383611913565b505050565b61dead81565b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168210610f62576040517fb1d04f0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8381526020019081526020015f205f9054906101000a900460ff1615610fb7576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8290505b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110945761dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361108a576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050506110a1565b8160019003915050610fbc565b919050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f426b647567697300000000000000000000000000000000000000000000000000815250905090565b600260109054906101000a90046fffffffffffffffffffffffffffffffff1681565b600a81565b612710815f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166111ad9190612c7e565b11156111e5576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b65886c98b76000816111f79190612be0565b341015611230576040517fcd1c886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61123a3382611dc7565b50565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161132991906125b0565b60405180910390a35050565b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905090565b6040518060400160405280600781526020017f426b64756769730000000000000000000000000000000000000000000000000081525081565b600b5481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611427576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360019182611438929190612f37565b508160025f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555080600260106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b6114bb858585611913565b5050505050565b65886c98b7600081565b60605f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16821061152e576040517fb1d04f0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8381526020019081526020015f205f9054906101000a900460ff1615611583576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600161158e83611f89565b60405160200161159f92919061319c565b6040516020818303038152906040529050919050565b600a5481565b5f60095f8381526020019081526020015f205f9054906101000a900460ff169050919050565b600981565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60025f9054906101000a90046fffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f426b64756769730000000000000000000000000000000000000000000000000081525081565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611733576040517f6ee803b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600260109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690505f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905060025f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1682826117ce9190612c7e565b1115611806576040517f3f984f8600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61271082826118159190612c7e565b111561184d576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146118c3576040517f98bdb27b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061190f33836120df565b5050565b60095f8281526020019081526020015f205f9054906101000a900460ff1615611968576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1661198882610f01565b73ffffffffffffffffffffffffffffffffffffffff16146119d5576040517f2f35253100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611a93575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611afb57503373ffffffffffffffffffffffffffffffffffffffff1660065f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611b32576040517fc19f17a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600190039190508190555060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600101919050819055508160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600182611c579190612c7e565b90505f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1681108015611cea57505f73ffffffffffffffffffffffffffffffffffffffff1660045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611d11575060095f8281526020019081526020015f205f9054906101000a900460ff16155b15611d66578360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8103611e00576040517ff4f5b73300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1690508260045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ec69190612c7e565b925050819055505f5b82811015611f48578082611ee39190612c7e565b8473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4806001019050611ecf565b508181611f559190612c7e565b5f60146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505050565b60605f8203611fcf576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120da565b5f8290505f5b5f8214611ffe578080611fe7906131e0565b915050600a82611ff79190612c4e565b9150611fd5565b5f8167ffffffffffffffff81111561201957612018612cfc565b5b6040519080825280601f01601f19166020018201604052801561204b5781602001600182028036833780820191505090505b5090505b5f85146120d357600a856120639190613227565b603061206f9190612c7e565b60f81b818361207d90613257565b935083815181106120915761209061327e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856120cc9190612c4e565b945061204f565b8093505050505b919050565b5f8103612118576040517ff4f5b73300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b81811015612497575f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1690508360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001816121a99190612c7e565b5f60146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550808473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45f61223e858361249c565b905080156123d65761dead60045f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122e69190612c7e565b92505081905550600160095f8481526020019081526020015f205f6101000a81548160ff021916908315150217905550600a5f8154600101919050819055508161dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818573ffffffffffffffffffffffffffffffffffffffff167fbaf1b6801ee10ce024554753820d6109e8f2f52760728a0d5b432d9fd68dcb2d5f6040516123c991906125b0565b60405180910390a361248a565b600160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124239190612c7e565b92505081905550600b5f815460010191905081905550818573ffffffffffffffffffffffffffffffffffffffff167fbaf1b6801ee10ce024554753820d6109e8f2f52760728a0d5b432d9fd68dcb2d600160405161248191906125b0565b60405180910390a35b826001019250505061211a565b505050565b5f60035f8154600101919050819055505f42444386866003546001436124c29190612bad565b405a6040516020016124db989796959493929190613339565b604051602081830303815290604052805190602001205f1c90506009600a826125049190613227565b1091505092915050565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61254a81612516565b8114612554575f5ffd5b50565b5f8135905061256581612541565b92915050565b5f602082840312156125805761257f61250e565b5b5f61258d84828501612557565b91505092915050565b5f8115159050919050565b6125aa81612596565b82525050565b5f6020820190506125c35f8301846125a1565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61260b826125c9565b61261581856125d3565b93506126258185602086016125e3565b61262e816125f1565b840191505092915050565b5f6020820190508181035f8301526126518184612601565b905092915050565b5f819050919050565b61266b81612659565b8114612675575f5ffd5b50565b5f8135905061268681612662565b92915050565b5f602082840312156126a1576126a061250e565b5b5f6126ae84828501612678565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126e0826126b7565b9050919050565b6126f0816126d6565b82525050565b5f6020820190506127095f8301846126e7565b92915050565b612718816126d6565b8114612722575f5ffd5b50565b5f813590506127338161270f565b92915050565b5f5f6040838503121561274f5761274e61250e565b5b5f61275c85828601612725565b925050602061276d85828601612678565b9150509250929050565b61278081612659565b82525050565b5f6020820190506127995f830184612777565b92915050565b5f602082840312156127b4576127b361250e565b5b5f6127c184828501612725565b91505092915050565b5f5f5f606084860312156127e1576127e061250e565b5b5f6127ee86828701612725565b93505060206127ff86828701612725565b925050604061281086828701612678565b9150509250925092565b5f5f604083850312156128305761282f61250e565b5b5f61283d85828601612678565b925050602061284e85828601612678565b9150509250929050565b5f60408201905061286b5f8301856126e7565b6128786020830184612777565b9392505050565b5f6080820190506128925f830187612777565b61289f6020830186612777565b6128ac6040830185612777565b6128b96060830184612777565b95945050505050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6128e6816128c2565b82525050565b5f6020820190506128ff5f8301846128dd565b92915050565b61290e81612596565b8114612918575f5ffd5b50565b5f8135905061292981612905565b92915050565b5f5f604083850312156129455761294461250e565b5b5f61295285828601612725565b92505060206129638582860161291b565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261298e5761298d61296d565b5b8235905067ffffffffffffffff8111156129ab576129aa612971565b5b6020830191508360018202830111156129c7576129c6612975565b5b9250929050565b6129d7816128c2565b81146129e1575f5ffd5b50565b5f813590506129f2816129ce565b92915050565b5f5f5f5f60608587031215612a1057612a0f61250e565b5b5f85013567ffffffffffffffff811115612a2d57612a2c612512565b5b612a3987828801612979565b94509450506020612a4c878288016129e4565b9250506040612a5d878288016129e4565b91505092959194509250565b5f5f83601f840112612a7e57612a7d61296d565b5b8235905067ffffffffffffffff811115612a9b57612a9a612971565b5b602083019150836001820283011115612ab757612ab6612975565b5b9250929050565b5f5f5f5f5f60808688031215612ad757612ad661250e565b5b5f612ae488828901612725565b9550506020612af588828901612725565b9450506040612b0688828901612678565b935050606086013567ffffffffffffffff811115612b2757612b26612512565b5b612b3388828901612a69565b92509250509295509295909350565b5f5f60408385031215612b5857612b5761250e565b5b5f612b6585828601612725565b9250506020612b7685828601612725565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bb782612659565b9150612bc283612659565b9250828203905081811115612bda57612bd9612b80565b5b92915050565b5f612bea82612659565b9150612bf583612659565b9250828202612c0381612659565b91508282048414831517612c1a57612c19612b80565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c5882612659565b9150612c6383612659565b925082612c7357612c72612c21565b5b828204905092915050565b5f612c8882612659565b9150612c9383612659565b9250828201905080821115612cab57612caa612b80565b5b92915050565b5f81905092915050565b50565b5f612cc95f83612cb1565b9150612cd482612cbb565b5f82019050919050565b5f612ce882612cbe565b9150819050919050565b5f82905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d6d57607f821691505b602082108103612d8057612d7f612d29565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612de27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612da7565b612dec8683612da7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612e27612e22612e1d84612659565b612e04565b612659565b9050919050565b5f819050919050565b612e4083612e0d565b612e54612e4c82612e2e565b848454612db3565b825550505050565b5f5f905090565b612e6b612e5c565b612e76818484612e37565b505050565b5f5b82811015612e9c57612e915f828401612e63565b600181019050612e7d565b505050565b601f821115612eef5782821115612eee57612ebb81612d86565b612ec483612d98565b612ecd85612d98565b6020861015612eda575f90505b808301612ee982840382612e7b565b505050505b5b505050565b5f82821c905092915050565b5f612f0f5f1984600802612ef4565b1980831691505092915050565b5f612f278383612f00565b9150826002028217905092915050565b612f418383612cf2565b67ffffffffffffffff811115612f5a57612f59612cfc565b5b612f648254612d56565b612f6f828285612ea1565b5f601f831160018114612f9c575f8415612f8a578287013590505b612f948582612f1c565b865550612ffb565b601f198416612faa86612d86565b5f5b82811015612fd157848901358255600182019150602085019450602081019050612fac565b86831015612fee5784890135612fea601f891682612f00565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b7f697066733a2f2f000000000000000000000000000000000000000000000000005f82015250565b5f613042600783613004565b915061304d8261300e565b600782019050919050565b5f815461306481612d56565b61306e8186613004565b9450600182165f8114613088576001811461309d576130cf565b60ff19831686528115158202860193506130cf565b6130a685612d86565b5f5b838110156130c7578154818901526001820191506020810190506130a8565b838801955050505b50505092915050565b7f2f000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61310c600183613004565b9150613117826130d8565b600182019050919050565b5f61312c826125c9565b6131368185613004565b93506131468185602086016125e3565b80840191505092915050565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000005f82015250565b5f613186600583613004565b915061319182613152565b600582019050919050565b5f6131a682613036565b91506131b28285613058565b91506131bd82613100565b91506131c98284613122565b91506131d48261317a565b91508190509392505050565b5f6131ea82612659565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361321c5761321b612b80565b5b600182019050919050565b5f61323182612659565b915061323c83612659565b92508261324c5761324b612c21565b5b828206905092915050565b5f61326182612659565b91505f820361327357613272612b80565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b6132c56132c082612659565b6132ab565b82525050565b5f8160601b9050919050565b5f6132e1826132cb565b9050919050565b5f6132f2826132d7565b9050919050565b61330a613305826126d6565b6132e8565b82525050565b5f819050919050565b5f819050919050565b61333361332e82613310565b613319565b82525050565b5f613344828b6132b4565b602082019150613354828a6132b4565b60208201915061336482896132b4565b60208201915061337482886132f9565b60148201915061338482876132b4565b60208201915061339482866132b4565b6020820191506133a48285613322565b6020820191506133b482846132b4565b602082019150819050999850505050505050505056fea26469706673582212209ee187cce0b254275f06f2672d139547dc8c8c401a999526ec9c94e8ebb5561664736f6c63430008210033626166796265696668636b6d62347462357976786d777767356976626c3267326e796a696d6a6c70743778366b786c70747132756a34626c756261
Deployed Bytecode
0x60806040526004361061020e575f3560e01c806398710d1e11610117578063bf8fbbd21161009f578063e4474d161161006e578063e4474d161461078c578063e985e9c5146107b6578063ed6661c2146107f2578063f76f8d781461081c578063f9cb63ac146108465761020e565b8063bf8fbbd2146106c0578063c87b56dd146106ea578063d89135cd14610726578063db44fe07146107505761020e565b8063a2309ff8116100e6578063a2309ff8146105f2578063a3f4df7e1461061c578063aaa5be5614610646578063abd0a55214610670578063b88d4fde146106985761020e565b806398710d1e1461055a578063987ec45814610584578063a0712d68146105ae578063a22cb465146105ca5761020e565b806332cb6b0c1161019a5780634e6fd6c4116101695780634e6fd6c4146104645780636352211e1461048e57806370a08231146104ca5780638da5cb5b1461050657806395d89b41146105305761020e565b806332cb6b0c146103cf57806338e36b3e146103f95780633ccfd60b1461042657806342842e0e1461043c5761020e565b806318160ddd116101e157806318160ddd146102dc5780631e7269c51461030657806323b872dd146103425780632a55205a1461036a5780632fbba115146103a75761020e565b806301ffc9a71461021257806306fdde031461024e578063081812fc14610278578063095ea7b3146102b4575b5f5ffd5b34801561021d575f5ffd5b506102386004803603810190610233919061256b565b61085c565b60405161024591906125b0565b60405180910390f35b348015610259575f5ffd5b5061026261091d565b60405161026f9190612639565b60405180910390f35b348015610283575f5ffd5b5061029e6004803603810190610299919061268c565b61095a565b6040516102ab91906126f6565b60405180910390f35b3480156102bf575f5ffd5b506102da60048036038101906102d59190612739565b610a48565b005b3480156102e7575f5ffd5b506102f0610bf8565b6040516102fd9190612786565b60405180910390f35b348015610311575f5ffd5b5061032c6004803603810190610327919061279f565b610c33565b6040516103399190612786565b60405180910390f35b34801561034d575f5ffd5b50610368600480360381019061036391906127ca565b610c48565b005b348015610375575f5ffd5b50610390600480360381019061038b919061281a565b610c58565b60405161039e929190612858565b60405180910390f35b3480156103b2575f5ffd5b506103cd60048036038101906103c8919061268c565b610ca1565b005b3480156103da575f5ffd5b506103e3610da1565b6040516103f09190612786565b60405180910390f35b348015610404575f5ffd5b5061040d610da7565b60405161041d949392919061287f565b60405180910390f35b348015610431575f5ffd5b5061043a610df2565b005b348015610447575f5ffd5b50610462600480360381019061045d91906127ca565b610eeb565b005b34801561046f575f5ffd5b50610478610efb565b60405161048591906126f6565b60405180910390f35b348015610499575f5ffd5b506104b460048036038101906104af919061268c565b610f01565b6040516104c191906126f6565b60405180910390f35b3480156104d5575f5ffd5b506104f060048036038101906104eb919061279f565b6110a6565b6040516104fd9190612786565b60405180910390f35b348015610511575f5ffd5b5061051a6110ec565b60405161052791906126f6565b60405180910390f35b34801561053b575f5ffd5b50610544611113565b6040516105519190612639565b60405180910390f35b348015610565575f5ffd5b5061056e611150565b60405161057b91906128ec565b60405180910390f35b34801561058f575f5ffd5b50610598611172565b6040516105a59190612786565b60405180910390f35b6105c860048036038101906105c3919061268c565b611177565b005b3480156105d5575f5ffd5b506105f060048036038101906105eb919061292f565b61123d565b005b3480156105fd575f5ffd5b50610606611335565b6040516106139190612786565b60405180910390f35b348015610627575f5ffd5b50610630611363565b60405161063d9190612639565b60405180910390f35b348015610651575f5ffd5b5061065a61139c565b6040516106679190612786565b60405180910390f35b34801561067b575f5ffd5b50610696600480360381019061069191906129f8565b6113a2565b005b3480156106a3575f5ffd5b506106be60048036038101906106b99190612abe565b6114b0565b005b3480156106cb575f5ffd5b506106d46114c2565b6040516106e19190612786565b60405180910390f35b3480156106f5575f5ffd5b50610710600480360381019061070b919061268c565b6114cc565b60405161071d9190612639565b60405180910390f35b348015610731575f5ffd5b5061073a6115b5565b6040516107479190612786565b60405180910390f35b34801561075b575f5ffd5b506107766004803603810190610771919061268c565b6115bb565b60405161078391906125b0565b60405180910390f35b348015610797575f5ffd5b506107a06115e1565b6040516107ad9190612786565b60405180910390f35b3480156107c1575f5ffd5b506107dc60048036038101906107d79190612b42565b6115e6565b6040516107e991906125b0565b60405180910390f35b3480156107fd575f5ffd5b50610806611674565b60405161081391906128ec565b60405180910390f35b348015610827575f5ffd5b50610830611695565b60405161083d9190612639565b60405180910390f35b348015610851575f5ffd5b5061085a6116ce565b005b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108b657506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108e65750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109165750632a55205a60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606040518060400160405280600781526020017f426b647567697300000000000000000000000000000000000000000000000000815250905090565b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1682106109bb576040517fb1d04f0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8381526020019081526020015f205f9054906101000a900460ff1615610a10576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f610a5282610f01565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b12575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610b49576040517fc19f17a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260065f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f600a545f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16610c2e9190612bad565b905090565b6008602052805f5260405f205f915090505481565b610c53838383611913565b505050565b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127106101f485610c8c9190612be0565b610c969190612c4e565b915091509250929050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d26576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710815f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16610d5c9190612c7e565b1115610d94576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9e3382611dc7565b50565b61271081565b5f5f5f5f5f60149054906101000a90046bffffffffffffffffffffffff16600a54600b54610dd3610bf8565b836bffffffffffffffffffffffff169350935093509350935090919293565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e77576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610e9c90612cde565b5f6040518083038185875af1925050503d805f8114610ed6576040519150601f19603f3d011682016040523d82523d5f602084013e610edb565b606091505b5050905080610ee8575f5ffd5b50565b610ef6838383611913565b505050565b61dead81565b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168210610f62576040517fb1d04f0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8381526020019081526020015f205f9054906101000a900460ff1615610fb7576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8290505b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110945761dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361108a576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050506110a1565b8160019003915050610fbc565b919050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f426b647567697300000000000000000000000000000000000000000000000000815250905090565b600260109054906101000a90046fffffffffffffffffffffffffffffffff1681565b600a81565b612710815f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166111ad9190612c7e565b11156111e5576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b65886c98b76000816111f79190612be0565b341015611230576040517fcd1c886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61123a3382611dc7565b50565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161132991906125b0565b60405180910390a35050565b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905090565b6040518060400160405280600781526020017f426b64756769730000000000000000000000000000000000000000000000000081525081565b600b5481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611427576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360019182611438929190612f37565b508160025f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555080600260106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b6114bb858585611913565b5050505050565b65886c98b7600081565b60605f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16821061152e576040517fb1d04f0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095f8381526020019081526020015f205f9054906101000a900460ff1615611583576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600161158e83611f89565b60405160200161159f92919061319c565b6040516020818303038152906040529050919050565b600a5481565b5f60095f8381526020019081526020015f205f9054906101000a900460ff169050919050565b600981565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60025f9054906101000a90046fffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f426b64756769730000000000000000000000000000000000000000000000000081525081565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611733576040517f6ee803b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600260109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690505f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905060025f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1682826117ce9190612c7e565b1115611806576040517f3f984f8600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61271082826118159190612c7e565b111561184d576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146118c3576040517f98bdb27b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061190f33836120df565b5050565b60095f8281526020019081526020015f205f9054906101000a900460ff1615611968576040517ff3a229bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1661198882610f01565b73ffffffffffffffffffffffffffffffffffffffff16146119d5576040517f2f35253100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611a93575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611afb57503373ffffffffffffffffffffffffffffffffffffffff1660065f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611b32576040517fc19f17a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600190039190508190555060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600101919050819055508160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600182611c579190612c7e565b90505f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1681108015611cea57505f73ffffffffffffffffffffffffffffffffffffffff1660045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611d11575060095f8281526020019081526020015f205f9054906101000a900460ff16155b15611d66578360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8103611e00576040517ff4f5b73300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1690508260045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ec69190612c7e565b925050819055505f5b82811015611f48578082611ee39190612c7e565b8473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4806001019050611ecf565b508181611f559190612c7e565b5f60146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505050565b60605f8203611fcf576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120da565b5f8290505f5b5f8214611ffe578080611fe7906131e0565b915050600a82611ff79190612c4e565b9150611fd5565b5f8167ffffffffffffffff81111561201957612018612cfc565b5b6040519080825280601f01601f19166020018201604052801561204b5781602001600182028036833780820191505090505b5090505b5f85146120d357600a856120639190613227565b603061206f9190612c7e565b60f81b818361207d90613257565b935083815181106120915761209061327e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856120cc9190612c4e565b945061204f565b8093505050505b919050565b5f8103612118576040517ff4f5b73300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b81811015612497575f5f60149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1690508360045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001816121a99190612c7e565b5f60146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550808473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45f61223e858361249c565b905080156123d65761dead60045f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122e69190612c7e565b92505081905550600160095f8481526020019081526020015f205f6101000a81548160ff021916908315150217905550600a5f8154600101919050819055508161dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4818573ffffffffffffffffffffffffffffffffffffffff167fbaf1b6801ee10ce024554753820d6109e8f2f52760728a0d5b432d9fd68dcb2d5f6040516123c991906125b0565b60405180910390a361248a565b600160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124239190612c7e565b92505081905550600b5f815460010191905081905550818573ffffffffffffffffffffffffffffffffffffffff167fbaf1b6801ee10ce024554753820d6109e8f2f52760728a0d5b432d9fd68dcb2d600160405161248191906125b0565b60405180910390a35b826001019250505061211a565b505050565b5f60035f8154600101919050819055505f42444386866003546001436124c29190612bad565b405a6040516020016124db989796959493929190613339565b604051602081830303815290604052805190602001205f1c90506009600a826125049190613227565b1091505092915050565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61254a81612516565b8114612554575f5ffd5b50565b5f8135905061256581612541565b92915050565b5f602082840312156125805761257f61250e565b5b5f61258d84828501612557565b91505092915050565b5f8115159050919050565b6125aa81612596565b82525050565b5f6020820190506125c35f8301846125a1565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61260b826125c9565b61261581856125d3565b93506126258185602086016125e3565b61262e816125f1565b840191505092915050565b5f6020820190508181035f8301526126518184612601565b905092915050565b5f819050919050565b61266b81612659565b8114612675575f5ffd5b50565b5f8135905061268681612662565b92915050565b5f602082840312156126a1576126a061250e565b5b5f6126ae84828501612678565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126e0826126b7565b9050919050565b6126f0816126d6565b82525050565b5f6020820190506127095f8301846126e7565b92915050565b612718816126d6565b8114612722575f5ffd5b50565b5f813590506127338161270f565b92915050565b5f5f6040838503121561274f5761274e61250e565b5b5f61275c85828601612725565b925050602061276d85828601612678565b9150509250929050565b61278081612659565b82525050565b5f6020820190506127995f830184612777565b92915050565b5f602082840312156127b4576127b361250e565b5b5f6127c184828501612725565b91505092915050565b5f5f5f606084860312156127e1576127e061250e565b5b5f6127ee86828701612725565b93505060206127ff86828701612725565b925050604061281086828701612678565b9150509250925092565b5f5f604083850312156128305761282f61250e565b5b5f61283d85828601612678565b925050602061284e85828601612678565b9150509250929050565b5f60408201905061286b5f8301856126e7565b6128786020830184612777565b9392505050565b5f6080820190506128925f830187612777565b61289f6020830186612777565b6128ac6040830185612777565b6128b96060830184612777565b95945050505050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6128e6816128c2565b82525050565b5f6020820190506128ff5f8301846128dd565b92915050565b61290e81612596565b8114612918575f5ffd5b50565b5f8135905061292981612905565b92915050565b5f5f604083850312156129455761294461250e565b5b5f61295285828601612725565b92505060206129638582860161291b565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261298e5761298d61296d565b5b8235905067ffffffffffffffff8111156129ab576129aa612971565b5b6020830191508360018202830111156129c7576129c6612975565b5b9250929050565b6129d7816128c2565b81146129e1575f5ffd5b50565b5f813590506129f2816129ce565b92915050565b5f5f5f5f60608587031215612a1057612a0f61250e565b5b5f85013567ffffffffffffffff811115612a2d57612a2c612512565b5b612a3987828801612979565b94509450506020612a4c878288016129e4565b9250506040612a5d878288016129e4565b91505092959194509250565b5f5f83601f840112612a7e57612a7d61296d565b5b8235905067ffffffffffffffff811115612a9b57612a9a612971565b5b602083019150836001820283011115612ab757612ab6612975565b5b9250929050565b5f5f5f5f5f60808688031215612ad757612ad661250e565b5b5f612ae488828901612725565b9550506020612af588828901612725565b9450506040612b0688828901612678565b935050606086013567ffffffffffffffff811115612b2757612b26612512565b5b612b3388828901612a69565b92509250509295509295909350565b5f5f60408385031215612b5857612b5761250e565b5b5f612b6585828601612725565b9250506020612b7685828601612725565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bb782612659565b9150612bc283612659565b9250828203905081811115612bda57612bd9612b80565b5b92915050565b5f612bea82612659565b9150612bf583612659565b9250828202612c0381612659565b91508282048414831517612c1a57612c19612b80565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c5882612659565b9150612c6383612659565b925082612c7357612c72612c21565b5b828204905092915050565b5f612c8882612659565b9150612c9383612659565b9250828201905080821115612cab57612caa612b80565b5b92915050565b5f81905092915050565b50565b5f612cc95f83612cb1565b9150612cd482612cbb565b5f82019050919050565b5f612ce882612cbe565b9150819050919050565b5f82905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d6d57607f821691505b602082108103612d8057612d7f612d29565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612de27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612da7565b612dec8683612da7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612e27612e22612e1d84612659565b612e04565b612659565b9050919050565b5f819050919050565b612e4083612e0d565b612e54612e4c82612e2e565b848454612db3565b825550505050565b5f5f905090565b612e6b612e5c565b612e76818484612e37565b505050565b5f5b82811015612e9c57612e915f828401612e63565b600181019050612e7d565b505050565b601f821115612eef5782821115612eee57612ebb81612d86565b612ec483612d98565b612ecd85612d98565b6020861015612eda575f90505b808301612ee982840382612e7b565b505050505b5b505050565b5f82821c905092915050565b5f612f0f5f1984600802612ef4565b1980831691505092915050565b5f612f278383612f00565b9150826002028217905092915050565b612f418383612cf2565b67ffffffffffffffff811115612f5a57612f59612cfc565b5b612f648254612d56565b612f6f828285612ea1565b5f601f831160018114612f9c575f8415612f8a578287013590505b612f948582612f1c565b865550612ffb565b601f198416612faa86612d86565b5f5b82811015612fd157848901358255600182019150602085019450602081019050612fac565b86831015612fee5784890135612fea601f891682612f00565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b7f697066733a2f2f000000000000000000000000000000000000000000000000005f82015250565b5f613042600783613004565b915061304d8261300e565b600782019050919050565b5f815461306481612d56565b61306e8186613004565b9450600182165f8114613088576001811461309d576130cf565b60ff19831686528115158202860193506130cf565b6130a685612d86565b5f5b838110156130c7578154818901526001820191506020810190506130a8565b838801955050505b50505092915050565b7f2f000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61310c600183613004565b9150613117826130d8565b600182019050919050565b5f61312c826125c9565b6131368185613004565b93506131468185602086016125e3565b80840191505092915050565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000005f82015250565b5f613186600583613004565b915061319182613152565b600582019050919050565b5f6131a682613036565b91506131b28285613058565b91506131bd82613100565b91506131c98284613122565b91506131d48261317a565b91508190509392505050565b5f6131ea82612659565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361321c5761321b612b80565b5b600182019050919050565b5f61323182612659565b915061323c83612659565b92508261324c5761324b612c21565b5b828206905092915050565b5f61326182612659565b91505f820361327357613272612b80565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b6132c56132c082612659565b6132ab565b82525050565b5f8160601b9050919050565b5f6132e1826132cb565b9050919050565b5f6132f2826132d7565b9050919050565b61330a613305826126d6565b6132e8565b82525050565b5f819050919050565b5f819050919050565b61333361332e82613310565b613319565b82525050565b5f613344828b6132b4565b602082019150613354828a6132b4565b60208201915061336482896132b4565b60208201915061337482886132f9565b60148201915061338482876132b4565b60208201915061339482866132b4565b6020820191506133a48285613322565b6020820191506133b482846132b4565b602082019150819050999850505050505050505056fea26469706673582212209ee187cce0b254275f06f2672d139547dc8c8c401a999526ec9c94e8ebb5561664736f6c63430008210033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$601.39
Net Worth in ETH
0.26565
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,263.83 | 0.2657 | $601.39 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.