Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 5 from a total of 5 transactions
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14774674 | 1405 days ago | 0.08 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
LooseKiddoClub
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-05-13
*/
/**
*Submitted for verification at Etherscan.io on 2022-02-09
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract ReentrancyGuard {
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
modifier nonReentrant() {
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
_status = _ENTERED;
_;
_status = _NOT_ENTERED;
}
}
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
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) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
function toHexString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0x00";
}
uint256 temp = value;
uint256 length = 0;
while (temp != 0) {
length++;
temp >>= 8;
}
return toHexString(value, length);
}
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _HEX_SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
interface IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
interface IERC165 {
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
abstract contract ERC165 is IERC165 {
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
interface IERC721 is IERC165 {
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);
function balanceOf(address owner) external view returns (uint256 balance);
function ownerOf(uint256 tokenId) external view returns (address owner);
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
function transferFrom(
address from,
address to,
uint256 tokenId
) external;
function approve(address to, uint256 tokenId) external;
function getApproved(uint256 tokenId) external view returns (address operator);
function setApprovalForAll(address operator, bool _approved) external;
function isApprovedForAll(address owner, address operator) external view returns (bool);
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
}
interface IERC721Enumerable is IERC721 {
function totalSupply() external view returns (uint256);
function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);
function tokenByIndex(uint256 index) external view returns (uint256);
}
interface IERC721Metadata is IERC721 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function tokenURI(uint256 tokenId) external view returns (string memory);
}
contract ERC721A is
Context,
ERC165,
IERC721,
IERC721Metadata,
IERC721Enumerable
{
using Address for address;
using Strings for uint256;
struct TokenOwnership {
address addr;
uint64 startTimestamp;
}
struct AddressData {
uint128 balance;
uint128 numberMinted;
}
uint256 private currentIndex = 1;
uint256 internal immutable collectionSize;
uint256 internal immutable maxBatchSize;
string private _name;
string private _symbol;
mapping(uint256 => TokenOwnership) private _ownerships;
mapping(address => AddressData) private _addressData;
mapping(uint256 => address) private _tokenApprovals;
mapping(address => mapping(address => bool)) private _operatorApprovals;
constructor(
string memory name_,
string memory symbol_,
uint256 maxBatchSize_,
uint256 collectionSize_
) {
require(
collectionSize_ > 0,
"ERC721A: collection must have a nonzero supply"
);
require(maxBatchSize_ > 0, "ERC721A: max batch size must be nonzero");
_name = name_;
_symbol = symbol_;
maxBatchSize = maxBatchSize_;
collectionSize = collectionSize_;
}
function totalSupply() public view override returns (uint256) {
return currentIndex-1;
}
function tokenByIndex(uint256 index) public view override returns (uint256) {
require(index < totalSupply(), "ERC721A: global index out of bounds");
return index;
}
function tokenOfOwnerByIndex(address owner, uint256 index)
public
view
override
returns (uint256)
{
require(index < balanceOf(owner), "ERC721A: owner index out of bounds");
uint256 numMintedSoFar = totalSupply();
uint256 tokenIdsIdx = 0;
address currOwnershipAddr = address(0);
for (uint256 i = 0; i < numMintedSoFar; i++) {
TokenOwnership memory ownership = _ownerships[i];
if (ownership.addr != address(0)) {
currOwnershipAddr = ownership.addr;
}
if (currOwnershipAddr == owner) {
if (tokenIdsIdx == index) {
return i;
}
tokenIdsIdx++;
}
}
revert("ERC721A: unable to get token of owner by index");
}
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(ERC165, IERC165)
returns (bool)
{
return
interfaceId == type(IERC721).interfaceId ||
interfaceId == type(IERC721Metadata).interfaceId ||
interfaceId == type(IERC721Enumerable).interfaceId ||
super.supportsInterface(interfaceId);
}
function balanceOf(address owner) public view override returns (uint256) {
require(owner != address(0), "ERC721A: balance query for the zero address");
return uint256(_addressData[owner].balance);
}
function _numberMinted(address owner) internal view returns (uint256) {
require(
owner != address(0),
"ERC721A: number minted query for the zero address"
);
return uint256(_addressData[owner].numberMinted);
}
function ownershipOf(uint256 tokenId)
internal
view
returns (TokenOwnership memory)
{
require(_exists(tokenId), "ERC721A: owner query for nonexistent token");
uint256 lowestTokenToCheck;
if (tokenId >= maxBatchSize) {
lowestTokenToCheck = tokenId - maxBatchSize + 1;
}
for (uint256 curr = tokenId; curr >= lowestTokenToCheck; curr--) {
TokenOwnership memory ownership = _ownerships[curr];
if (ownership.addr != address(0)) {
return ownership;
}
}
revert("ERC721A: unable to determine the owner of token");
}
function ownerOf(uint256 tokenId) public view override returns (address) {
return ownershipOf(tokenId).addr;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function tokenURI(uint256 tokenId)
public
view
virtual
override
returns (string memory)
{
require(
_exists(tokenId),
"ERC721Metadata: URI query for nonexistent token"
);
string memory baseURI = _baseURI();
return
bytes(baseURI).length > 0
? string(abi.encodePacked(baseURI, tokenId.toString(),_getUriExtension()))
: "";
}
function _baseURI() internal view virtual returns (string memory) {
return "";
}
function _getUriExtension() internal view virtual returns (string memory) {
return "";
}
function approve(address to, uint256 tokenId) public override {
address owner = ERC721A.ownerOf(tokenId);
require(to != owner, "ERC721A: approval to current owner");
require(
_msgSender() == owner || isApprovedForAll(owner, _msgSender()),
"ERC721A: approve caller is not owner nor approved for all"
);
_approve(to, tokenId, owner);
}
function getApproved(uint256 tokenId) public view override returns (address) {
require(_exists(tokenId), "ERC721A: approved query for nonexistent token");
return _tokenApprovals[tokenId];
}
function setApprovalForAll(address operator, bool approved) public override {
require(operator != _msgSender(), "ERC721A: approve to caller");
_operatorApprovals[_msgSender()][operator] = approved;
emit ApprovalForAll(_msgSender(), operator, approved);
}
function isApprovedForAll(address owner, address operator)
public
view
virtual
override
returns (bool)
{
return _operatorApprovals[owner][operator];
}
function transferFrom(
address from,
address to,
uint256 tokenId
) public override {
_transfer(from, to, tokenId);
}
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) public override {
safeTransferFrom(from, to, tokenId, "");
}
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes memory _data
) public override {
_transfer(from, to, tokenId);
require(
_checkOnERC721Received(from, to, tokenId, _data),
"ERC721A: transfer to non ERC721Receiver implementer"
);
}
function _exists(uint256 tokenId) internal view returns (bool) {
return tokenId < currentIndex;
}
function _safeMint(address to, uint256 quantity) internal {
_safeMint(to, quantity, "");
}
function _safeMint(
address to,
uint256 quantity,
bytes memory _data
) internal {
uint256 startTokenId = currentIndex;
require(to != address(0), "ERC721A: mint to the zero address");
require(!_exists(startTokenId), "ERC721A: token already minted");
require(quantity <= maxBatchSize, "ERC721A: quantity to mint too high");
_beforeTokenTransfers(address(0), to, startTokenId, quantity);
AddressData memory addressData = _addressData[to];
_addressData[to] = AddressData(
addressData.balance + uint128(quantity),
addressData.numberMinted + uint128(quantity)
);
_ownerships[startTokenId] = TokenOwnership(to, uint64(block.timestamp));
uint256 updatedIndex = startTokenId;
for (uint256 i = 0; i < quantity; i++) {
emit Transfer(address(0), to, updatedIndex);
require(
_checkOnERC721Received(address(0), to, updatedIndex, _data),
"ERC721A: transfer to non ERC721Receiver implementer"
);
updatedIndex++;
}
currentIndex = updatedIndex;
_afterTokenTransfers(address(0), to, startTokenId, quantity);
}
function _transfer(
address from,
address to,
uint256 tokenId
) private {
TokenOwnership memory prevOwnership = ownershipOf(tokenId);
bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr ||
getApproved(tokenId) == _msgSender() ||
isApprovedForAll(prevOwnership.addr, _msgSender()));
require(
isApprovedOrOwner,
"ERC721A: transfer caller is not owner nor approved"
);
require(
prevOwnership.addr == from,
"ERC721A: transfer from incorrect owner"
);
require(to != address(0), "ERC721A: transfer to the zero address");
_beforeTokenTransfers(from, to, tokenId, 1);
_approve(address(0), tokenId, prevOwnership.addr);
_addressData[from].balance -= 1;
_addressData[to].balance += 1;
_ownerships[tokenId] = TokenOwnership(to, uint64(block.timestamp));
uint256 nextTokenId = tokenId + 1;
if (_ownerships[nextTokenId].addr == address(0)) {
if (_exists(nextTokenId)) {
_ownerships[nextTokenId] = TokenOwnership(
prevOwnership.addr,
prevOwnership.startTimestamp
);
}
}
emit Transfer(from, to, tokenId);
_afterTokenTransfers(from, to, tokenId, 1);
}
function _approve(
address to,
uint256 tokenId,
address owner
) private {
_tokenApprovals[tokenId] = to;
emit Approval(owner, to, tokenId);
}
uint256 public nextOwnerToExplicitlySet = 0;
function _setOwnersExplicit(uint256 quantity) internal {
uint256 oldNextOwnerToSet = nextOwnerToExplicitlySet;
require(quantity > 0, "quantity must be nonzero");
uint256 endIndex = oldNextOwnerToSet + quantity - 1;
if (endIndex > collectionSize - 1) {
endIndex = collectionSize - 1;
}
require(_exists(endIndex), "not enough minted yet for this cleanup");
for (uint256 i = oldNextOwnerToSet; i <= endIndex; i++) {
if (_ownerships[i].addr == address(0)) {
TokenOwnership memory ownership = ownershipOf(i);
_ownerships[i] = TokenOwnership(
ownership.addr,
ownership.startTimestamp
);
}
}
nextOwnerToExplicitlySet = endIndex + 1;
}
function _checkOnERC721Received(
address from,
address to,
uint256 tokenId,
bytes memory _data
) private returns (bool) {
if (to.isContract()) {
try
IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)
returns (bytes4 retval) {
return retval == IERC721Receiver(to).onERC721Received.selector;
} catch (bytes memory reason) {
if (reason.length == 0) {
revert("ERC721A: transfer to non ERC721Receiver implementer");
} else {
assembly {
revert(add(32, reason), mload(reason))
}
}
}
} else {
return true;
}
}
function _beforeTokenTransfers(
address from,
address to,
uint256 startTokenId,
uint256 quantity
) internal virtual {}
function _afterTokenTransfers(
address from,
address to,
uint256 startTokenId,
uint256 quantity
) internal virtual {}
}
contract LooseKiddoClub is Ownable, ERC721A, ReentrancyGuard {
using Strings for uint256;
uint256 public MAX_PER_Transtion = 5; // maximam amount that user can mint per transaction
uint256 public MAX_PER_Address = 15; // maximam amount that user can mint
uint256 public PRICE = 0.08 ether; //0.08 during sale
uint256 private constant TotalCollectionSize_ = 5200; // total number of nfts
uint256 private constant MaxMintPerBatch_ = 5; //max mint per trx
bool public _revelNFT = false;
string private _baseTokenURI;
string private _uriBeforeRevel;
uint public status = 0; //0-sale pause 1-sale open
constructor() ERC721A("Loose Kiddo Club","Loose Kiddo Club", MaxMintPerBatch_, TotalCollectionSize_) {
_uriBeforeRevel = "https://gateway.pinata.cloud/ipfs/QmVfudibbfCwEuzN3ggwekznuvZUKuhSja1RY523kPociX/";
_baseTokenURI="https://gateway.pinata.cloud/ipfs/QmcbAjB7Nh6nQPVNmHCcjZ63TXJNcGtbu61wnrK7T79gGX/";
}
modifier callerIsUser() {
require(tx.origin == msg.sender, "The caller is another contract");
_;
}
function mint(uint256 quantity) external payable callerIsUser {
require(status == 1 , "Sale is not Active");
require(quantity > 0,"Mint Quantity should be more than 0");
require(totalSupply() + quantity <= collectionSize, "Reached max supply");
require(numberMinted(msg.sender) + quantity <= MAX_PER_Address , "Max can hold 15 NFTs" );
require(quantity <= MAX_PER_Transtion,"Max can mint 5 per transaction");
require(msg.value >= PRICE * quantity, "Not enough ETH in your wallet");
_safeMint(msg.sender, quantity);
}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
require(_exists(tokenId),"ERC721Metadata: URI query for nonexistent token");
if(_revelNFT){
string memory baseURI = _baseURI();
return
bytes(baseURI).length > 0
? string(abi.encodePacked(baseURI, tokenId.toString(),".json"))
: "";
} else{
return _uriBeforeRevel;
}
}
function setURIbeforeRevel(string memory URI) external onlyOwner {
_uriBeforeRevel = URI;
}
function setBaseURI(string memory baseURI) external onlyOwner {
_baseTokenURI = baseURI;
}
function _baseURI() internal view virtual override returns (string memory) {
return _baseTokenURI;
}
function numberMinted(address owner) public view returns (uint256) {
return _numberMinted(owner);
}
function getOwnershipData(uint256 tokenId)
external
view
returns (TokenOwnership memory)
{
return ownershipOf(tokenId);
}
function withdrawMoney() external onlyOwner nonReentrant {
(bool success, ) = msg.sender.call{value: address(this).balance}("");
require(success, "Transfer failed.");
}
function changeRevelStatus() external onlyOwner {
_revelNFT = !_revelNFT;
}
function changeMintPrice(uint256 _newPrice) external onlyOwner
{
PRICE = _newPrice;
}
function changeMAX_PER_Transtion(uint256 q) external onlyOwner
{
MAX_PER_Transtion = q;
}
function changeMAX_PER_Address(uint256 q) external onlyOwner
{
MAX_PER_Address = q;
}
function setStatus(uint256 s)external onlyOwner{
status = s;
}
function getStatus()public view returns(uint){
return status;
}
function giveaway(address a, uint q)public onlyOwner{
require(totalSupply() + q <= collectionSize, "Reached max supply");
require(q <= MAX_PER_Transtion, "Can't exceed more than 5");
require(numberMinted(a) + q <= MAX_PER_Address , "Max can hold 15 NFTs" );
_safeMint(a, q);
}
}
library Base64 {
bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
/// @notice Encodes some bytes to the base64 representation
function encode(bytes memory data) internal pure returns (string memory) {
uint256 len = data.length;
if (len == 0) return "";
// multiply by 4/3 rounded up
uint256 encodedLen = 4 * ((len + 2) / 3);
// Add some extra buffer at the end
bytes memory result = new bytes(encodedLen + 32);
bytes memory table = TABLE;
assembly {
let tablePtr := add(table, 1)
let resultPtr := add(result, 32)
for {
let i := 0
} lt(i, len) {
} {
i := add(i, 3)
let input := and(mload(add(data, i)), 0xffffff)
let out := mload(add(tablePtr, and(shr(18, input), 0x3F)))
out := shl(8, out)
out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF))
out := shl(8, out)
out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF))
out := shl(8, out)
out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF))
out := shl(224, out)
mstore(resultPtr, out)
resultPtr := add(resultPtr, 4)
}
switch mod(len, 3)
case 1 {
mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
}
case 2 {
mstore(sub(resultPtr, 1), shl(248, 0x3d))
}
mstore(result, encodedLen)
}
return string(result);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"MAX_PER_Address","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PER_Transtion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_revelNFT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"q","type":"uint256"}],"name":"changeMAX_PER_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"q","type":"uint256"}],"name":"changeMAX_PER_Transtion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"changeMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeRevelStatus","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":"uint256","name":"tokenId","type":"uint256"}],"name":"getOwnershipData","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"}],"internalType":"struct ERC721A.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"q","type":"uint256"}],"name":"giveaway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextOwnerToExplicitlySet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"_data","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":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"s","type":"uint256"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"URI","type":"string"}],"name":"setURIbeforeRevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawMoney","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c06040526001805560006008556005600a55600f600b5567011c37937e080000600c556000600d60006101000a81548160ff02191690831515021790555060006010553480156200005057600080fd5b506040518060400160405280601081526020017f4c6f6f7365204b6964646f20436c7562000000000000000000000000000000008152506040518060400160405280601081526020017f4c6f6f7365204b6964646f20436c7562000000000000000000000000000000008152506005611450620000e2620000d66200022660201b60201c565b6200022e60201b60201c565b6000811162000128576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200011f9062000412565b60405180910390fd5b600082116200016e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016590620003f0565b60405180910390fd5b836002908051906020019062000186929190620002f2565b5082600390805190602001906200019f929190620002f2565b508160a0818152505080608081815250505050505060016009819055506040518060800160405280605181526020016200560d60519139600f9080519060200190620001ed929190620002f2565b50604051806080016040528060518152602001620055bc60519139600e90805190602001906200021f929190620002f2565b5062000548565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620003009062000445565b90600052602060002090601f01602090048101928262000324576000855562000370565b82601f106200033f57805160ff191683800117855562000370565b8280016001018555821562000370579182015b828111156200036f57825182559160200191906001019062000352565b5b5090506200037f919062000383565b5090565b5b808211156200039e57600081600090555060010162000384565b5090565b6000620003b160278362000434565b9150620003be82620004aa565b604082019050919050565b6000620003d8602e8362000434565b9150620003e582620004f9565b604082019050919050565b600060208201905081810360008301526200040b81620003a2565b9050919050565b600060208201905081810360008301526200042d81620003c9565b9050919050565b600082825260208201905092915050565b600060028204905060018216806200045e57607f821691505b602082108114156200047557620004746200047b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f455243373231413a206d61782062617463682073697a65206d7573742062652060008201527f6e6f6e7a65726f00000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060008201527f6e6f6e7a65726f20737570706c79000000000000000000000000000000000000602082015250565b60805160a05161503962000583600039600081816127150152818161273e0152612ebd015260008181610b2901526116c601526150396000f3fe6080604052600436106102255760003560e01c806369ba1a7511610123578063ac446002116100ab578063d04950a11161006f578063d04950a1146107e2578063d7224ba01461080d578063dc33e68114610838578063e985e9c514610875578063f2fde38b146108b257610225565b8063ac44600214610725578063af7b26e91461073c578063b88d4fde14610765578063bd0a84391461078e578063c87b56dd146107a557610225565b80638da5cb5b116100f25780638da5cb5b1461064d5780639231ab2a1461067857806395d89b41146106b5578063a0712d68146106e0578063a22cb465146106fc57610225565b806369ba1a75146105a557806370a08231146105ce578063715018a61461060b5780638d859f3e1461062257610225565b80632f2ffc57116101b15780634f6ccce7116101755780634f6ccce7146104ae57806355f804b3146104eb5780635c37809d1461051457806362c6f7b91461053d5780636352211e1461056857610225565b80632f2ffc57146103c95780632f745c59146103f45780633fd173661461043157806342842e0e1461045a5780634e69d5601461048357610225565b8063081812fc116101f8578063081812fc146102e4578063095ea7b31461032157806318160ddd1461034a578063200d2ed21461037557806323b872dd146103a057610225565b80630199e3471461022a57806301ffc9a714610253578063050225ea1461029057806306fdde03146102b9575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190613786565b6108db565b005b34801561025f57600080fd5b5061027a600480360381019061027591906136e3565b610961565b6040516102879190613dfe565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b291906136a3565b610aab565b005b3480156102c557600080fd5b506102ce610c47565b6040516102db9190613e19565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190613786565b610cd9565b6040516103189190613d97565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906136a3565b610d5e565b005b34801561035657600080fd5b5061035f610e77565b60405161036c9190614236565b60405180910390f35b34801561038157600080fd5b5061038a610e8c565b6040516103979190614236565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c2919061358d565b610e92565b005b3480156103d557600080fd5b506103de610ea2565b6040516103eb9190614236565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906136a3565b610ea8565b6040516104289190614236565b60405180910390f35b34801561043d57600080fd5b5061045860048036038101906104539190613786565b6110a6565b005b34801561046657600080fd5b50610481600480360381019061047c919061358d565b61112c565b005b34801561048f57600080fd5b5061049861114c565b6040516104a59190614236565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613786565b611156565b6040516104e29190614236565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d919061373d565b6111a9565b005b34801561052057600080fd5b5061053b6004803603810190610536919061373d565b61123f565b005b34801561054957600080fd5b506105526112d5565b60405161055f9190613dfe565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190613786565b6112e8565b60405161059c9190613d97565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c79190613786565b6112fe565b005b3480156105da57600080fd5b506105f560048036038101906105f09190613520565b611384565b6040516106029190614236565b60405180910390f35b34801561061757600080fd5b5061062061146d565b005b34801561062e57600080fd5b506106376114f5565b6040516106449190614236565b60405180910390f35b34801561065957600080fd5b506106626114fb565b60405161066f9190613d97565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190613786565b611524565b6040516106ac919061421b565b60405180910390f35b3480156106c157600080fd5b506106ca61153c565b6040516106d79190613e19565b60405180910390f35b6106fa60048036038101906106f59190613786565b6115ce565b005b34801561070857600080fd5b50610723600480360381019061071e9190613663565b611833565b005b34801561073157600080fd5b5061073a6119b4565b005b34801561074857600080fd5b50610763600480360381019061075e9190613786565b611b35565b005b34801561077157600080fd5b5061078c600480360381019061078791906135e0565b611bbb565b005b34801561079a57600080fd5b506107a3611c17565b005b3480156107b157600080fd5b506107cc60048036038101906107c79190613786565b611cbf565b6040516107d99190613e19565b60405180910390f35b3480156107ee57600080fd5b506107f7611e0e565b6040516108049190614236565b60405180910390f35b34801561081957600080fd5b50610822611e14565b60405161082f9190614236565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a9190613520565b611e1a565b60405161086c9190614236565b60405180910390f35b34801561088157600080fd5b5061089c6004803603810190610897919061354d565b611e2c565b6040516108a99190613dfe565b60405180910390f35b3480156108be57600080fd5b506108d960048036038101906108d49190613520565b611ec0565b005b6108e3611fb8565b73ffffffffffffffffffffffffffffffffffffffff166109016114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e9061403b565b60405180910390fd5b80600b8190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a2c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a9457507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610aa45750610aa382611fc0565b5b9050919050565b610ab3611fb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad16114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e9061403b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081610b51610e77565b610b5b919061436c565b1115610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9390613efb565b60405180910390fd5b600a54811115610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890613e9b565b60405180910390fd5b600b5481610bee84611e1a565b610bf8919061436c565b1115610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090613fbb565b60405180910390fd5b610c43828261202a565b5050565b606060028054610c56906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c82906145c5565b8015610ccf5780601f10610ca457610100808354040283529160200191610ccf565b820191906000526020600020905b815481529060010190602001808311610cb257829003601f168201915b5050505050905090565b6000610ce482612048565b610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a906141db565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d69826112e8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd1906140bb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610df9611fb8565b73ffffffffffffffffffffffffffffffffffffffff161480610e285750610e2781610e22611fb8565b611e2c565b5b610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90613f9b565b60405180910390fd5b610e72838383612056565b505050565b600060018054610e879190614481565b905090565b60105481565b610e9d838383612108565b505050565b600b5481565b6000610eb383611384565b8210610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb90613e3b565b60405180910390fd5b6000610efe610e77565b905060008060005b83811015611064576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610ff857806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561105057868414156110415781955050505050506110a0565b838061104c90614628565b9450505b50808061105c90614628565b915050610f06565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110979061415b565b60405180910390fd5b92915050565b6110ae611fb8565b73ffffffffffffffffffffffffffffffffffffffff166110cc6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111199061403b565b60405180910390fd5b80600c8190555050565b61114783838360405180602001604052806000815250611bbb565b505050565b6000601054905090565b6000611160610e77565b82106111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890613edb565b60405180910390fd5b819050919050565b6111b1611fb8565b73ffffffffffffffffffffffffffffffffffffffff166111cf6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c9061403b565b60405180910390fd5b80600e908051906020019061123b9291906132fa565b5050565b611247611fb8565b73ffffffffffffffffffffffffffffffffffffffff166112656114fb565b73ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b29061403b565b60405180910390fd5b80600f90805190602001906112d19291906132fa565b5050565b600d60009054906101000a900460ff1681565b60006112f3826126c1565b600001519050919050565b611306611fb8565b73ffffffffffffffffffffffffffffffffffffffff166113246114fb565b73ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113719061403b565b60405180910390fd5b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90613fdb565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b611475611fb8565b73ffffffffffffffffffffffffffffffffffffffff166114936114fb565b73ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e09061403b565b60405180910390fd5b6114f360006128c4565b565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61152c613380565b611535826126c1565b9050919050565b60606003805461154b906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611577906145c5565b80156115c45780601f10611599576101008083540402835291602001916115c4565b820191906000526020600020905b8154815290600101906020018083116115a757829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390613f7b565b60405180910390fd5b600160105414611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890613f5b565b60405180910390fd5b600081116116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90613ebb565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000816116ee610e77565b6116f8919061436c565b1115611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090613efb565b60405180910390fd5b600b548161174633611e1a565b611750919061436c565b1115611791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178890613fbb565b60405180910390fd5b600a548111156117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd906141bb565b60405180910390fd5b80600c546117e491906143f3565b341015611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90613ffb565b60405180910390fd5b611830338261202a565b50565b61183b611fb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a09061407b565b60405180910390fd5b80600760006118b6611fb8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611963611fb8565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119a89190613dfe565b60405180910390a35050565b6119bc611fb8565b73ffffffffffffffffffffffffffffffffffffffff166119da6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a279061403b565b60405180910390fd5b60026009541415611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d9061417b565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051611aa490613d82565b60006040518083038185875af1925050503d8060008114611ae1576040519150601f19603f3d011682016040523d82523d6000602084013e611ae6565b606091505b5050905080611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906140db565b60405180910390fd5b506001600981905550565b611b3d611fb8565b73ffffffffffffffffffffffffffffffffffffffff16611b5b6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba89061403b565b60405180910390fd5b80600a8190555050565b611bc6848484612108565b611bd284848484612988565b611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c08906140fb565b60405180910390fd5b50505050565b611c1f611fb8565b73ffffffffffffffffffffffffffffffffffffffff16611c3d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a9061403b565b60405180910390fd5b600d60009054906101000a900460ff1615600d60006101000a81548160ff021916908315150217905550565b6060611cca82612048565b611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d009061405b565b60405180910390fd5b600d60009054906101000a900460ff1615611d7b576000611d28612b1f565b90506000815111611d485760405180602001604052806000815250611d73565b80611d5284612bb1565b604051602001611d63929190613d53565b6040516020818303038152906040525b915050611e09565b600f8054611d88906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611db4906145c5565b8015611e015780601f10611dd657610100808354040283529160200191611e01565b820191906000526020600020905b815481529060010190602001808311611de457829003601f168201915b505050505090505b919050565b600a5481565b60085481565b6000611e2582612d12565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ec8611fb8565b73ffffffffffffffffffffffffffffffffffffffff16611ee66114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f339061403b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613e5b565b60405180910390fd5b611fb5816128c4565b50565b600033905090565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612044828260405180602001604052806000815250612dfb565b5050565b600060015482109050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000612113826126c1565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1661213a611fb8565b73ffffffffffffffffffffffffffffffffffffffff161480612196575061215f611fb8565b73ffffffffffffffffffffffffffffffffffffffff1661217e84610cd9565b73ffffffffffffffffffffffffffffffffffffffff16145b806121b257506121b182600001516121ac611fb8565b611e2c565b5b9050806121f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121eb9061409b565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225d9061401b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd90613f1b565b60405180910390fd5b6122e385858560016132db565b6122f36000848460000151612056565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff16612361919061444d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166124059190614326565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600060018461250b919061436c565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126515761258181612048565b15612650576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126b986868660016132e1565b505050505050565b6126c9613380565b6126d282612048565b612711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270890613e7b565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000083106127755760017f0000000000000000000000000000000000000000000000000000000000000000846127689190614481565b612772919061436c565b90505b60008390505b818110612883576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461286f578093505050506128bf565b50808061287b9061459b565b91505061277b565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b69061419b565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006129a98473ffffffffffffffffffffffffffffffffffffffff166132e7565b15612b12578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026129d2611fb8565b8786866040518563ffffffff1660e01b81526004016129f49493929190613db2565b602060405180830381600087803b158015612a0e57600080fd5b505af1925050508015612a3f57506040513d601f19601f82011682018060405250810190612a3c9190613710565b60015b612ac2573d8060008114612a6f576040519150601f19603f3d011682016040523d82523d6000602084013e612a74565b606091505b50600081511415612aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab1906140fb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b17565b600190505b949350505050565b6060600e8054612b2e906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5a906145c5565b8015612ba75780601f10612b7c57610100808354040283529160200191612ba7565b820191906000526020600020905b815481529060010190602001808311612b8a57829003601f168201915b5050505050905090565b60606000821415612bf9576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612d0d565b600082905060005b60008214612c2b578080612c1490614628565b915050600a82612c2491906143c2565b9150612c01565b60008167ffffffffffffffff811115612c4757612c4661475e565b5b6040519080825280601f01601f191660200182016040528015612c795781602001600182028036833780820191505090505b5090505b60008514612d0657600182612c929190614481565b9150600a85612ca19190614671565b6030612cad919061436c565b60f81b818381518110612cc357612cc261472f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612cff91906143c2565b9450612c7d565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7a90613f3b565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e699061413b565b60405180910390fd5b612e7b81612048565b15612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29061411b565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000831115612f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f15906141fb565b60405180910390fd5b612f2b60008583866132db565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060405180604001604052808583600001516130289190614326565b6fffffffffffffffffffffffffffffffff16815260200185836020015161304f9190614326565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b858110156132be57818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461325e6000888488612988565b61329d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613294906140fb565b60405180910390fd5b81806132a890614628565b92505080806132b690614628565b9150506131ed565b50806001819055506132d360008785886132e1565b505050505050565b50505050565b50505050565b600080823b905060008111915050919050565b828054613306906145c5565b90600052602060002090601f016020900481019282613328576000855561336f565b82601f1061334157805160ff191683800117855561336f565b8280016001018555821561336f579182015b8281111561336e578251825591602001919060010190613353565b5b50905061337c91906133ba565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b808211156133d35760008160009055506001016133bb565b5090565b60006133ea6133e584614276565b614251565b90508281526020810184848401111561340657613405614792565b5b613411848285614559565b509392505050565b600061342c613427846142a7565b614251565b90508281526020810184848401111561344857613447614792565b5b613453848285614559565b509392505050565b60008135905061346a81614fa7565b92915050565b60008135905061347f81614fbe565b92915050565b60008135905061349481614fd5565b92915050565b6000815190506134a981614fd5565b92915050565b600082601f8301126134c4576134c361478d565b5b81356134d48482602086016133d7565b91505092915050565b600082601f8301126134f2576134f161478d565b5b8135613502848260208601613419565b91505092915050565b60008135905061351a81614fec565b92915050565b6000602082840312156135365761353561479c565b5b60006135448482850161345b565b91505092915050565b600080604083850312156135645761356361479c565b5b60006135728582860161345b565b92505060206135838582860161345b565b9150509250929050565b6000806000606084860312156135a6576135a561479c565b5b60006135b48682870161345b565b93505060206135c58682870161345b565b92505060406135d68682870161350b565b9150509250925092565b600080600080608085870312156135fa576135f961479c565b5b60006136088782880161345b565b94505060206136198782880161345b565b935050604061362a8782880161350b565b925050606085013567ffffffffffffffff81111561364b5761364a614797565b5b613657878288016134af565b91505092959194509250565b6000806040838503121561367a5761367961479c565b5b60006136888582860161345b565b925050602061369985828601613470565b9150509250929050565b600080604083850312156136ba576136b961479c565b5b60006136c88582860161345b565b92505060206136d98582860161350b565b9150509250929050565b6000602082840312156136f9576136f861479c565b5b600061370784828501613485565b91505092915050565b6000602082840312156137265761372561479c565b5b60006137348482850161349a565b91505092915050565b6000602082840312156137535761375261479c565b5b600082013567ffffffffffffffff81111561377157613770614797565b5b61377d848285016134dd565b91505092915050565b60006020828403121561379c5761379b61479c565b5b60006137aa8482850161350b565b91505092915050565b6137bc816144b5565b82525050565b6137cb816144b5565b82525050565b6137da816144c7565b82525050565b60006137eb826142d8565b6137f581856142ee565b9350613805818560208601614568565b61380e816147a1565b840191505092915050565b6000613824826142e3565b61382e818561430a565b935061383e818560208601614568565b613847816147a1565b840191505092915050565b600061385d826142e3565b613867818561431b565b9350613877818560208601614568565b80840191505092915050565b600061389060228361430a565b915061389b826147b2565b604082019050919050565b60006138b360268361430a565b91506138be82614801565b604082019050919050565b60006138d6602a8361430a565b91506138e182614850565b604082019050919050565b60006138f960188361430a565b91506139048261489f565b602082019050919050565b600061391c60238361430a565b9150613927826148c8565b604082019050919050565b600061393f60238361430a565b915061394a82614917565b604082019050919050565b600061396260128361430a565b915061396d82614966565b602082019050919050565b600061398560258361430a565b91506139908261498f565b604082019050919050565b60006139a860318361430a565b91506139b3826149de565b604082019050919050565b60006139cb60128361430a565b91506139d682614a2d565b602082019050919050565b60006139ee601e8361430a565b91506139f982614a56565b602082019050919050565b6000613a1160398361430a565b9150613a1c82614a7f565b604082019050919050565b6000613a3460148361430a565b9150613a3f82614ace565b602082019050919050565b6000613a57602b8361430a565b9150613a6282614af7565b604082019050919050565b6000613a7a601d8361430a565b9150613a8582614b46565b602082019050919050565b6000613a9d60268361430a565b9150613aa882614b6f565b604082019050919050565b6000613ac060058361431b565b9150613acb82614bbe565b600582019050919050565b6000613ae360208361430a565b9150613aee82614be7565b602082019050919050565b6000613b06602f8361430a565b9150613b1182614c10565b604082019050919050565b6000613b29601a8361430a565b9150613b3482614c5f565b602082019050919050565b6000613b4c60328361430a565b9150613b5782614c88565b604082019050919050565b6000613b6f60228361430a565b9150613b7a82614cd7565b604082019050919050565b6000613b926000836142ff565b9150613b9d82614d26565b600082019050919050565b6000613bb560108361430a565b9150613bc082614d29565b602082019050919050565b6000613bd860338361430a565b9150613be382614d52565b604082019050919050565b6000613bfb601d8361430a565b9150613c0682614da1565b602082019050919050565b6000613c1e60218361430a565b9150613c2982614dca565b604082019050919050565b6000613c41602e8361430a565b9150613c4c82614e19565b604082019050919050565b6000613c64601f8361430a565b9150613c6f82614e68565b602082019050919050565b6000613c87602f8361430a565b9150613c9282614e91565b604082019050919050565b6000613caa601e8361430a565b9150613cb582614ee0565b602082019050919050565b6000613ccd602d8361430a565b9150613cd882614f09565b604082019050919050565b6000613cf060228361430a565b9150613cfb82614f58565b604082019050919050565b604082016000820151613d1c60008501826137b3565b506020820151613d2f6020850182613d44565b50505050565b613d3e8161453b565b82525050565b613d4d81614545565b82525050565b6000613d5f8285613852565b9150613d6b8284613852565b9150613d7682613ab3565b91508190509392505050565b6000613d8d82613b85565b9150819050919050565b6000602082019050613dac60008301846137c2565b92915050565b6000608082019050613dc760008301876137c2565b613dd460208301866137c2565b613de16040830185613d35565b8181036060830152613df381846137e0565b905095945050505050565b6000602082019050613e1360008301846137d1565b92915050565b60006020820190508181036000830152613e338184613819565b905092915050565b60006020820190508181036000830152613e5481613883565b9050919050565b60006020820190508181036000830152613e74816138a6565b9050919050565b60006020820190508181036000830152613e94816138c9565b9050919050565b60006020820190508181036000830152613eb4816138ec565b9050919050565b60006020820190508181036000830152613ed48161390f565b9050919050565b60006020820190508181036000830152613ef481613932565b9050919050565b60006020820190508181036000830152613f1481613955565b9050919050565b60006020820190508181036000830152613f3481613978565b9050919050565b60006020820190508181036000830152613f548161399b565b9050919050565b60006020820190508181036000830152613f74816139be565b9050919050565b60006020820190508181036000830152613f94816139e1565b9050919050565b60006020820190508181036000830152613fb481613a04565b9050919050565b60006020820190508181036000830152613fd481613a27565b9050919050565b60006020820190508181036000830152613ff481613a4a565b9050919050565b6000602082019050818103600083015261401481613a6d565b9050919050565b6000602082019050818103600083015261403481613a90565b9050919050565b6000602082019050818103600083015261405481613ad6565b9050919050565b6000602082019050818103600083015261407481613af9565b9050919050565b6000602082019050818103600083015261409481613b1c565b9050919050565b600060208201905081810360008301526140b481613b3f565b9050919050565b600060208201905081810360008301526140d481613b62565b9050919050565b600060208201905081810360008301526140f481613ba8565b9050919050565b6000602082019050818103600083015261411481613bcb565b9050919050565b6000602082019050818103600083015261413481613bee565b9050919050565b6000602082019050818103600083015261415481613c11565b9050919050565b6000602082019050818103600083015261417481613c34565b9050919050565b6000602082019050818103600083015261419481613c57565b9050919050565b600060208201905081810360008301526141b481613c7a565b9050919050565b600060208201905081810360008301526141d481613c9d565b9050919050565b600060208201905081810360008301526141f481613cc0565b9050919050565b6000602082019050818103600083015261421481613ce3565b9050919050565b60006040820190506142306000830184613d06565b92915050565b600060208201905061424b6000830184613d35565b92915050565b600061425b61426c565b905061426782826145f7565b919050565b6000604051905090565b600067ffffffffffffffff8211156142915761429061475e565b5b61429a826147a1565b9050602081019050919050565b600067ffffffffffffffff8211156142c2576142c161475e565b5b6142cb826147a1565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614331826144ff565b915061433c836144ff565b9250826fffffffffffffffffffffffffffffffff03821115614361576143606146a2565b5b828201905092915050565b60006143778261453b565b91506143828361453b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143b7576143b66146a2565b5b828201905092915050565b60006143cd8261453b565b91506143d88361453b565b9250826143e8576143e76146d1565b5b828204905092915050565b60006143fe8261453b565b91506144098361453b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614442576144416146a2565b5b828202905092915050565b6000614458826144ff565b9150614463836144ff565b925082821015614476576144756146a2565b5b828203905092915050565b600061448c8261453b565b91506144978361453b565b9250828210156144aa576144a96146a2565b5b828203905092915050565b60006144c08261451b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561458657808201518184015260208101905061456b565b83811115614595576000848401525b50505050565b60006145a68261453b565b915060008214156145ba576145b96146a2565b5b600182039050919050565b600060028204905060018216806145dd57607f821691505b602082108114156145f1576145f0614700565b5b50919050565b614600826147a1565b810181811067ffffffffffffffff8211171561461f5761461e61475e565b5b80604052505050565b60006146338261453b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614666576146656146a2565b5b600182019050919050565b600061467c8261453b565b91506146878361453b565b925082614697576146966146d1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f43616e277420657863656564206d6f7265207468616e20350000000000000000600082015250565b7f4d696e74205175616e746974792073686f756c64206265206d6f72652074686160008201527f6e20300000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f52656163686564206d617820737570706c790000000000000000000000000000600082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f53616c65206973206e6f74204163746976650000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f4d61782063616e20686f6c64203135204e465473000000000000000000000000600082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f7567682045544820696e20796f75722077616c6c6574000000600082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f4d61782063616e206d696e74203520706572207472616e73616374696f6e0000600082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b614fb0816144b5565b8114614fbb57600080fd5b50565b614fc7816144c7565b8114614fd257600080fd5b50565b614fde816144d3565b8114614fe957600080fd5b50565b614ff58161453b565b811461500057600080fd5b5056fea26469706673582212208359194f2107bfe5f852c6ea0be1c41f2244ea1beee3c9085c065555100de4e064736f6c6343000807003368747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d6362416a42374e68366e5150564e6d4843636a5a363354584a4e63477462753631776e724b375437396747582f68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d5666756469626266437745757a4e33676777656b7a6e75765a554b7568536a613152593532336b506f6369582f
Deployed Bytecode
0x6080604052600436106102255760003560e01c806369ba1a7511610123578063ac446002116100ab578063d04950a11161006f578063d04950a1146107e2578063d7224ba01461080d578063dc33e68114610838578063e985e9c514610875578063f2fde38b146108b257610225565b8063ac44600214610725578063af7b26e91461073c578063b88d4fde14610765578063bd0a84391461078e578063c87b56dd146107a557610225565b80638da5cb5b116100f25780638da5cb5b1461064d5780639231ab2a1461067857806395d89b41146106b5578063a0712d68146106e0578063a22cb465146106fc57610225565b806369ba1a75146105a557806370a08231146105ce578063715018a61461060b5780638d859f3e1461062257610225565b80632f2ffc57116101b15780634f6ccce7116101755780634f6ccce7146104ae57806355f804b3146104eb5780635c37809d1461051457806362c6f7b91461053d5780636352211e1461056857610225565b80632f2ffc57146103c95780632f745c59146103f45780633fd173661461043157806342842e0e1461045a5780634e69d5601461048357610225565b8063081812fc116101f8578063081812fc146102e4578063095ea7b31461032157806318160ddd1461034a578063200d2ed21461037557806323b872dd146103a057610225565b80630199e3471461022a57806301ffc9a714610253578063050225ea1461029057806306fdde03146102b9575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190613786565b6108db565b005b34801561025f57600080fd5b5061027a600480360381019061027591906136e3565b610961565b6040516102879190613dfe565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b291906136a3565b610aab565b005b3480156102c557600080fd5b506102ce610c47565b6040516102db9190613e19565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190613786565b610cd9565b6040516103189190613d97565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906136a3565b610d5e565b005b34801561035657600080fd5b5061035f610e77565b60405161036c9190614236565b60405180910390f35b34801561038157600080fd5b5061038a610e8c565b6040516103979190614236565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c2919061358d565b610e92565b005b3480156103d557600080fd5b506103de610ea2565b6040516103eb9190614236565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906136a3565b610ea8565b6040516104289190614236565b60405180910390f35b34801561043d57600080fd5b5061045860048036038101906104539190613786565b6110a6565b005b34801561046657600080fd5b50610481600480360381019061047c919061358d565b61112c565b005b34801561048f57600080fd5b5061049861114c565b6040516104a59190614236565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613786565b611156565b6040516104e29190614236565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d919061373d565b6111a9565b005b34801561052057600080fd5b5061053b6004803603810190610536919061373d565b61123f565b005b34801561054957600080fd5b506105526112d5565b60405161055f9190613dfe565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190613786565b6112e8565b60405161059c9190613d97565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c79190613786565b6112fe565b005b3480156105da57600080fd5b506105f560048036038101906105f09190613520565b611384565b6040516106029190614236565b60405180910390f35b34801561061757600080fd5b5061062061146d565b005b34801561062e57600080fd5b506106376114f5565b6040516106449190614236565b60405180910390f35b34801561065957600080fd5b506106626114fb565b60405161066f9190613d97565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190613786565b611524565b6040516106ac919061421b565b60405180910390f35b3480156106c157600080fd5b506106ca61153c565b6040516106d79190613e19565b60405180910390f35b6106fa60048036038101906106f59190613786565b6115ce565b005b34801561070857600080fd5b50610723600480360381019061071e9190613663565b611833565b005b34801561073157600080fd5b5061073a6119b4565b005b34801561074857600080fd5b50610763600480360381019061075e9190613786565b611b35565b005b34801561077157600080fd5b5061078c600480360381019061078791906135e0565b611bbb565b005b34801561079a57600080fd5b506107a3611c17565b005b3480156107b157600080fd5b506107cc60048036038101906107c79190613786565b611cbf565b6040516107d99190613e19565b60405180910390f35b3480156107ee57600080fd5b506107f7611e0e565b6040516108049190614236565b60405180910390f35b34801561081957600080fd5b50610822611e14565b60405161082f9190614236565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a9190613520565b611e1a565b60405161086c9190614236565b60405180910390f35b34801561088157600080fd5b5061089c6004803603810190610897919061354d565b611e2c565b6040516108a99190613dfe565b60405180910390f35b3480156108be57600080fd5b506108d960048036038101906108d49190613520565b611ec0565b005b6108e3611fb8565b73ffffffffffffffffffffffffffffffffffffffff166109016114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e9061403b565b60405180910390fd5b80600b8190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a2c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a9457507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610aa45750610aa382611fc0565b5b9050919050565b610ab3611fb8565b73ffffffffffffffffffffffffffffffffffffffff16610ad16114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e9061403b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000145081610b51610e77565b610b5b919061436c565b1115610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9390613efb565b60405180910390fd5b600a54811115610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890613e9b565b60405180910390fd5b600b5481610bee84611e1a565b610bf8919061436c565b1115610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3090613fbb565b60405180910390fd5b610c43828261202a565b5050565b606060028054610c56906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c82906145c5565b8015610ccf5780601f10610ca457610100808354040283529160200191610ccf565b820191906000526020600020905b815481529060010190602001808311610cb257829003601f168201915b5050505050905090565b6000610ce482612048565b610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a906141db565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d69826112e8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd1906140bb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610df9611fb8565b73ffffffffffffffffffffffffffffffffffffffff161480610e285750610e2781610e22611fb8565b611e2c565b5b610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90613f9b565b60405180910390fd5b610e72838383612056565b505050565b600060018054610e879190614481565b905090565b60105481565b610e9d838383612108565b505050565b600b5481565b6000610eb383611384565b8210610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb90613e3b565b60405180910390fd5b6000610efe610e77565b905060008060005b83811015611064576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610ff857806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561105057868414156110415781955050505050506110a0565b838061104c90614628565b9450505b50808061105c90614628565b915050610f06565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110979061415b565b60405180910390fd5b92915050565b6110ae611fb8565b73ffffffffffffffffffffffffffffffffffffffff166110cc6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111199061403b565b60405180910390fd5b80600c8190555050565b61114783838360405180602001604052806000815250611bbb565b505050565b6000601054905090565b6000611160610e77565b82106111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890613edb565b60405180910390fd5b819050919050565b6111b1611fb8565b73ffffffffffffffffffffffffffffffffffffffff166111cf6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c9061403b565b60405180910390fd5b80600e908051906020019061123b9291906132fa565b5050565b611247611fb8565b73ffffffffffffffffffffffffffffffffffffffff166112656114fb565b73ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b29061403b565b60405180910390fd5b80600f90805190602001906112d19291906132fa565b5050565b600d60009054906101000a900460ff1681565b60006112f3826126c1565b600001519050919050565b611306611fb8565b73ffffffffffffffffffffffffffffffffffffffff166113246114fb565b73ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113719061403b565b60405180910390fd5b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90613fdb565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b611475611fb8565b73ffffffffffffffffffffffffffffffffffffffff166114936114fb565b73ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e09061403b565b60405180910390fd5b6114f360006128c4565b565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61152c613380565b611535826126c1565b9050919050565b60606003805461154b906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611577906145c5565b80156115c45780601f10611599576101008083540402835291602001916115c4565b820191906000526020600020905b8154815290600101906020018083116115a757829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390613f7b565b60405180910390fd5b600160105414611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890613f5b565b60405180910390fd5b600081116116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90613ebb565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000001450816116ee610e77565b6116f8919061436c565b1115611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090613efb565b60405180910390fd5b600b548161174633611e1a565b611750919061436c565b1115611791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178890613fbb565b60405180910390fd5b600a548111156117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd906141bb565b60405180910390fd5b80600c546117e491906143f3565b341015611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90613ffb565b60405180910390fd5b611830338261202a565b50565b61183b611fb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a09061407b565b60405180910390fd5b80600760006118b6611fb8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611963611fb8565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119a89190613dfe565b60405180910390a35050565b6119bc611fb8565b73ffffffffffffffffffffffffffffffffffffffff166119da6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a279061403b565b60405180910390fd5b60026009541415611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d9061417b565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051611aa490613d82565b60006040518083038185875af1925050503d8060008114611ae1576040519150601f19603f3d011682016040523d82523d6000602084013e611ae6565b606091505b5050905080611b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b21906140db565b60405180910390fd5b506001600981905550565b611b3d611fb8565b73ffffffffffffffffffffffffffffffffffffffff16611b5b6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba89061403b565b60405180910390fd5b80600a8190555050565b611bc6848484612108565b611bd284848484612988565b611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c08906140fb565b60405180910390fd5b50505050565b611c1f611fb8565b73ffffffffffffffffffffffffffffffffffffffff16611c3d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a9061403b565b60405180910390fd5b600d60009054906101000a900460ff1615600d60006101000a81548160ff021916908315150217905550565b6060611cca82612048565b611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d009061405b565b60405180910390fd5b600d60009054906101000a900460ff1615611d7b576000611d28612b1f565b90506000815111611d485760405180602001604052806000815250611d73565b80611d5284612bb1565b604051602001611d63929190613d53565b6040516020818303038152906040525b915050611e09565b600f8054611d88906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611db4906145c5565b8015611e015780601f10611dd657610100808354040283529160200191611e01565b820191906000526020600020905b815481529060010190602001808311611de457829003601f168201915b505050505090505b919050565b600a5481565b60085481565b6000611e2582612d12565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ec8611fb8565b73ffffffffffffffffffffffffffffffffffffffff16611ee66114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f339061403b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613e5b565b60405180910390fd5b611fb5816128c4565b50565b600033905090565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612044828260405180602001604052806000815250612dfb565b5050565b600060015482109050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000612113826126c1565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1661213a611fb8565b73ffffffffffffffffffffffffffffffffffffffff161480612196575061215f611fb8565b73ffffffffffffffffffffffffffffffffffffffff1661217e84610cd9565b73ffffffffffffffffffffffffffffffffffffffff16145b806121b257506121b182600001516121ac611fb8565b611e2c565b5b9050806121f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121eb9061409b565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225d9061401b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd90613f1b565b60405180910390fd5b6122e385858560016132db565b6122f36000848460000151612056565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff16612361919061444d565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166124059190614326565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600060018461250b919061436c565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126515761258181612048565b15612650576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46126b986868660016132e1565b505050505050565b6126c9613380565b6126d282612048565b612711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270890613e7b565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000583106127755760017f0000000000000000000000000000000000000000000000000000000000000005846127689190614481565b612772919061436c565b90505b60008390505b818110612883576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461286f578093505050506128bf565b50808061287b9061459b565b91505061277b565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b69061419b565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006129a98473ffffffffffffffffffffffffffffffffffffffff166132e7565b15612b12578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026129d2611fb8565b8786866040518563ffffffff1660e01b81526004016129f49493929190613db2565b602060405180830381600087803b158015612a0e57600080fd5b505af1925050508015612a3f57506040513d601f19601f82011682018060405250810190612a3c9190613710565b60015b612ac2573d8060008114612a6f576040519150601f19603f3d011682016040523d82523d6000602084013e612a74565b606091505b50600081511415612aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab1906140fb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b17565b600190505b949350505050565b6060600e8054612b2e906145c5565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5a906145c5565b8015612ba75780601f10612b7c57610100808354040283529160200191612ba7565b820191906000526020600020905b815481529060010190602001808311612b8a57829003601f168201915b5050505050905090565b60606000821415612bf9576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612d0d565b600082905060005b60008214612c2b578080612c1490614628565b915050600a82612c2491906143c2565b9150612c01565b60008167ffffffffffffffff811115612c4757612c4661475e565b5b6040519080825280601f01601f191660200182016040528015612c795781602001600182028036833780820191505090505b5090505b60008514612d0657600182612c929190614481565b9150600a85612ca19190614671565b6030612cad919061436c565b60f81b818381518110612cc357612cc261472f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612cff91906143c2565b9450612c7d565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7a90613f3b565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e699061413b565b60405180910390fd5b612e7b81612048565b15612ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb29061411b565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000005831115612f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f15906141fb565b60405180910390fd5b612f2b60008583866132db565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060405180604001604052808583600001516130289190614326565b6fffffffffffffffffffffffffffffffff16815260200185836020015161304f9190614326565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b858110156132be57818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461325e6000888488612988565b61329d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613294906140fb565b60405180910390fd5b81806132a890614628565b92505080806132b690614628565b9150506131ed565b50806001819055506132d360008785886132e1565b505050505050565b50505050565b50505050565b600080823b905060008111915050919050565b828054613306906145c5565b90600052602060002090601f016020900481019282613328576000855561336f565b82601f1061334157805160ff191683800117855561336f565b8280016001018555821561336f579182015b8281111561336e578251825591602001919060010190613353565b5b50905061337c91906133ba565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b808211156133d35760008160009055506001016133bb565b5090565b60006133ea6133e584614276565b614251565b90508281526020810184848401111561340657613405614792565b5b613411848285614559565b509392505050565b600061342c613427846142a7565b614251565b90508281526020810184848401111561344857613447614792565b5b613453848285614559565b509392505050565b60008135905061346a81614fa7565b92915050565b60008135905061347f81614fbe565b92915050565b60008135905061349481614fd5565b92915050565b6000815190506134a981614fd5565b92915050565b600082601f8301126134c4576134c361478d565b5b81356134d48482602086016133d7565b91505092915050565b600082601f8301126134f2576134f161478d565b5b8135613502848260208601613419565b91505092915050565b60008135905061351a81614fec565b92915050565b6000602082840312156135365761353561479c565b5b60006135448482850161345b565b91505092915050565b600080604083850312156135645761356361479c565b5b60006135728582860161345b565b92505060206135838582860161345b565b9150509250929050565b6000806000606084860312156135a6576135a561479c565b5b60006135b48682870161345b565b93505060206135c58682870161345b565b92505060406135d68682870161350b565b9150509250925092565b600080600080608085870312156135fa576135f961479c565b5b60006136088782880161345b565b94505060206136198782880161345b565b935050604061362a8782880161350b565b925050606085013567ffffffffffffffff81111561364b5761364a614797565b5b613657878288016134af565b91505092959194509250565b6000806040838503121561367a5761367961479c565b5b60006136888582860161345b565b925050602061369985828601613470565b9150509250929050565b600080604083850312156136ba576136b961479c565b5b60006136c88582860161345b565b92505060206136d98582860161350b565b9150509250929050565b6000602082840312156136f9576136f861479c565b5b600061370784828501613485565b91505092915050565b6000602082840312156137265761372561479c565b5b60006137348482850161349a565b91505092915050565b6000602082840312156137535761375261479c565b5b600082013567ffffffffffffffff81111561377157613770614797565b5b61377d848285016134dd565b91505092915050565b60006020828403121561379c5761379b61479c565b5b60006137aa8482850161350b565b91505092915050565b6137bc816144b5565b82525050565b6137cb816144b5565b82525050565b6137da816144c7565b82525050565b60006137eb826142d8565b6137f581856142ee565b9350613805818560208601614568565b61380e816147a1565b840191505092915050565b6000613824826142e3565b61382e818561430a565b935061383e818560208601614568565b613847816147a1565b840191505092915050565b600061385d826142e3565b613867818561431b565b9350613877818560208601614568565b80840191505092915050565b600061389060228361430a565b915061389b826147b2565b604082019050919050565b60006138b360268361430a565b91506138be82614801565b604082019050919050565b60006138d6602a8361430a565b91506138e182614850565b604082019050919050565b60006138f960188361430a565b91506139048261489f565b602082019050919050565b600061391c60238361430a565b9150613927826148c8565b604082019050919050565b600061393f60238361430a565b915061394a82614917565b604082019050919050565b600061396260128361430a565b915061396d82614966565b602082019050919050565b600061398560258361430a565b91506139908261498f565b604082019050919050565b60006139a860318361430a565b91506139b3826149de565b604082019050919050565b60006139cb60128361430a565b91506139d682614a2d565b602082019050919050565b60006139ee601e8361430a565b91506139f982614a56565b602082019050919050565b6000613a1160398361430a565b9150613a1c82614a7f565b604082019050919050565b6000613a3460148361430a565b9150613a3f82614ace565b602082019050919050565b6000613a57602b8361430a565b9150613a6282614af7565b604082019050919050565b6000613a7a601d8361430a565b9150613a8582614b46565b602082019050919050565b6000613a9d60268361430a565b9150613aa882614b6f565b604082019050919050565b6000613ac060058361431b565b9150613acb82614bbe565b600582019050919050565b6000613ae360208361430a565b9150613aee82614be7565b602082019050919050565b6000613b06602f8361430a565b9150613b1182614c10565b604082019050919050565b6000613b29601a8361430a565b9150613b3482614c5f565b602082019050919050565b6000613b4c60328361430a565b9150613b5782614c88565b604082019050919050565b6000613b6f60228361430a565b9150613b7a82614cd7565b604082019050919050565b6000613b926000836142ff565b9150613b9d82614d26565b600082019050919050565b6000613bb560108361430a565b9150613bc082614d29565b602082019050919050565b6000613bd860338361430a565b9150613be382614d52565b604082019050919050565b6000613bfb601d8361430a565b9150613c0682614da1565b602082019050919050565b6000613c1e60218361430a565b9150613c2982614dca565b604082019050919050565b6000613c41602e8361430a565b9150613c4c82614e19565b604082019050919050565b6000613c64601f8361430a565b9150613c6f82614e68565b602082019050919050565b6000613c87602f8361430a565b9150613c9282614e91565b604082019050919050565b6000613caa601e8361430a565b9150613cb582614ee0565b602082019050919050565b6000613ccd602d8361430a565b9150613cd882614f09565b604082019050919050565b6000613cf060228361430a565b9150613cfb82614f58565b604082019050919050565b604082016000820151613d1c60008501826137b3565b506020820151613d2f6020850182613d44565b50505050565b613d3e8161453b565b82525050565b613d4d81614545565b82525050565b6000613d5f8285613852565b9150613d6b8284613852565b9150613d7682613ab3565b91508190509392505050565b6000613d8d82613b85565b9150819050919050565b6000602082019050613dac60008301846137c2565b92915050565b6000608082019050613dc760008301876137c2565b613dd460208301866137c2565b613de16040830185613d35565b8181036060830152613df381846137e0565b905095945050505050565b6000602082019050613e1360008301846137d1565b92915050565b60006020820190508181036000830152613e338184613819565b905092915050565b60006020820190508181036000830152613e5481613883565b9050919050565b60006020820190508181036000830152613e74816138a6565b9050919050565b60006020820190508181036000830152613e94816138c9565b9050919050565b60006020820190508181036000830152613eb4816138ec565b9050919050565b60006020820190508181036000830152613ed48161390f565b9050919050565b60006020820190508181036000830152613ef481613932565b9050919050565b60006020820190508181036000830152613f1481613955565b9050919050565b60006020820190508181036000830152613f3481613978565b9050919050565b60006020820190508181036000830152613f548161399b565b9050919050565b60006020820190508181036000830152613f74816139be565b9050919050565b60006020820190508181036000830152613f94816139e1565b9050919050565b60006020820190508181036000830152613fb481613a04565b9050919050565b60006020820190508181036000830152613fd481613a27565b9050919050565b60006020820190508181036000830152613ff481613a4a565b9050919050565b6000602082019050818103600083015261401481613a6d565b9050919050565b6000602082019050818103600083015261403481613a90565b9050919050565b6000602082019050818103600083015261405481613ad6565b9050919050565b6000602082019050818103600083015261407481613af9565b9050919050565b6000602082019050818103600083015261409481613b1c565b9050919050565b600060208201905081810360008301526140b481613b3f565b9050919050565b600060208201905081810360008301526140d481613b62565b9050919050565b600060208201905081810360008301526140f481613ba8565b9050919050565b6000602082019050818103600083015261411481613bcb565b9050919050565b6000602082019050818103600083015261413481613bee565b9050919050565b6000602082019050818103600083015261415481613c11565b9050919050565b6000602082019050818103600083015261417481613c34565b9050919050565b6000602082019050818103600083015261419481613c57565b9050919050565b600060208201905081810360008301526141b481613c7a565b9050919050565b600060208201905081810360008301526141d481613c9d565b9050919050565b600060208201905081810360008301526141f481613cc0565b9050919050565b6000602082019050818103600083015261421481613ce3565b9050919050565b60006040820190506142306000830184613d06565b92915050565b600060208201905061424b6000830184613d35565b92915050565b600061425b61426c565b905061426782826145f7565b919050565b6000604051905090565b600067ffffffffffffffff8211156142915761429061475e565b5b61429a826147a1565b9050602081019050919050565b600067ffffffffffffffff8211156142c2576142c161475e565b5b6142cb826147a1565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614331826144ff565b915061433c836144ff565b9250826fffffffffffffffffffffffffffffffff03821115614361576143606146a2565b5b828201905092915050565b60006143778261453b565b91506143828361453b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143b7576143b66146a2565b5b828201905092915050565b60006143cd8261453b565b91506143d88361453b565b9250826143e8576143e76146d1565b5b828204905092915050565b60006143fe8261453b565b91506144098361453b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614442576144416146a2565b5b828202905092915050565b6000614458826144ff565b9150614463836144ff565b925082821015614476576144756146a2565b5b828203905092915050565b600061448c8261453b565b91506144978361453b565b9250828210156144aa576144a96146a2565b5b828203905092915050565b60006144c08261451b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561458657808201518184015260208101905061456b565b83811115614595576000848401525b50505050565b60006145a68261453b565b915060008214156145ba576145b96146a2565b5b600182039050919050565b600060028204905060018216806145dd57607f821691505b602082108114156145f1576145f0614700565b5b50919050565b614600826147a1565b810181811067ffffffffffffffff8211171561461f5761461e61475e565b5b80604052505050565b60006146338261453b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614666576146656146a2565b5b600182019050919050565b600061467c8261453b565b91506146878361453b565b925082614697576146966146d1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f43616e277420657863656564206d6f7265207468616e20350000000000000000600082015250565b7f4d696e74205175616e746974792073686f756c64206265206d6f72652074686160008201527f6e20300000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f52656163686564206d617820737570706c790000000000000000000000000000600082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f53616c65206973206e6f74204163746976650000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f4d61782063616e20686f6c64203135204e465473000000000000000000000000600082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f7567682045544820696e20796f75722077616c6c6574000000600082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f4d61782063616e206d696e74203520706572207472616e73616374696f6e0000600082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b614fb0816144b5565b8114614fbb57600080fd5b50565b614fc7816144c7565b8114614fd257600080fd5b50565b614fde816144d3565b8114614fe957600080fd5b50565b614ff58161453b565b811461500057600080fd5b5056fea26469706673582212208359194f2107bfe5f852c6ea0be1c41f2244ea1beee3c9085c065555100de4e064736f6c63430008070033
Deployed Bytecode Sourcemap
19923:3738:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23093:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11240:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23354:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12812:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14013:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13629:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10208:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20519:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14696:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20119:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10491:744;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22881:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14843:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23275:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10309:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22123:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22018:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20413:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12689:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23197:72;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11615:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2697:103;;;;;;;;;;;;;:::i;:::-;;20198:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2474:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22454:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12911:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21023:559;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14222:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22605:181;;;;;;;;;;;;;:::i;:::-;;22985:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15005:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22792:83;;;;;;;;;;;;;:::i;:::-;;21589:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20025:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18135:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22341:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14503:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2809:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23093:98;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23184:1:::1;23166:15;:19;;;;23093:98:::0;:::o;11240:370::-;11367:4;11412:25;11397:40;;;:11;:40;;;;:99;;;;11463:33;11448:48;;;:11;:48;;;;11397:99;:160;;;;11522:35;11507:50;;;:11;:50;;;;11397:160;:207;;;;11568:36;11592:11;11568:23;:36::i;:::-;11397:207;11383:221;;11240:370;;;:::o;23354:300::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23442:14:::1;23437:1;23421:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:35;;23413:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23499:17;;23494:1;:22;;23486:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;23583:15;;23578:1;23560:15;23573:1;23560:12;:15::i;:::-;:19;;;;:::i;:::-;:38;;23552:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;23633:15;23643:1;23646;23633:9;:15::i;:::-;23354:300:::0;;:::o;12812:94::-;12866:13;12895:5;12888:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12812:94;:::o;14013:204::-;14081:7;14105:16;14113:7;14105;:16::i;:::-;14097:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14187:15;:24;14203:7;14187:24;;;;;;;;;;;;;;;;;;;;;14180:31;;14013:204;;;:::o;13629:379::-;13698:13;13714:24;13730:7;13714:15;:24::i;:::-;13698:40;;13759:5;13753:11;;:2;:11;;;;13745:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13844:5;13828:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;13853:37;13870:5;13877:12;:10;:12::i;:::-;13853:16;:37::i;:::-;13828:62;13812:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;13974:28;13983:2;13987:7;13996:5;13974:8;:28::i;:::-;13691:317;13629:379;;:::o;10208:96::-;10261:7;10297:1;10284:12;;:14;;;;:::i;:::-;10277:21;;10208:96;:::o;20519:22::-;;;;:::o;14696:142::-;14804:28;14814:4;14820:2;14824:7;14804:9;:28::i;:::-;14696:142;;;:::o;20119:35::-;;;;:::o;10491:744::-;10600:7;10635:16;10645:5;10635:9;:16::i;:::-;10627:5;:24;10619:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10697:22;10722:13;:11;:13::i;:::-;10697:38;;10742:19;10772:25;10822:9;10817:350;10841:14;10837:1;:18;10817:350;;;10871:31;10905:11;:14;10917:1;10905:14;;;;;;;;;;;10871:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10958:1;10932:28;;:9;:14;;;:28;;;10928:89;;10993:9;:14;;;10973:34;;10928:89;11050:5;11029:26;;:17;:26;;;11025:135;;;11087:5;11072:11;:20;11068:59;;;11114:1;11107:8;;;;;;;;;11068:59;11137:13;;;;;:::i;:::-;;;;11025:135;10862:305;10857:3;;;;;:::i;:::-;;;;10817:350;;;;11173:56;;;;;;;;;;:::i;:::-;;;;;;;;10491:744;;;;;:::o;22881:98::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22964:9:::1;22956:5;:17;;;;22881:98:::0;:::o;14843:157::-;14955:39;14972:4;14978:2;14982:7;14955:39;;;;;;;;;;;;:16;:39::i;:::-;14843:157;;;:::o;23275:73::-;23315:4;23336:6;;23329:13;;23275:73;:::o;10309:177::-;10376:7;10408:13;:11;:13::i;:::-;10400:5;:21;10392:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10475:5;10468:12;;10309:177;;;:::o;22123:98::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22208:7:::1;22192:13;:23;;;;;;;;;;;;:::i;:::-;;22123:98:::0;:::o;22018:99::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22108:3:::1;22090:15;:21;;;;;;;;;;;;:::i;:::-;;22018:99:::0;:::o;20413:29::-;;;;;;;;;;;;;:::o;12689:118::-;12753:7;12776:20;12788:7;12776:11;:20::i;:::-;:25;;;12769:32;;12689:118;;;:::o;23197:72::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23262:1:::1;23253:6;:10;;;;23197:72:::0;:::o;11615:211::-;11679:7;11720:1;11703:19;;:5;:19;;;;11695:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11792:12;:19;11805:5;11792:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;11784:36;;11777:43;;11615:211;;;:::o;2697:103::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2762:30:::1;2789:1;2762:18;:30::i;:::-;2697:103::o:0;20198:34::-;;;;:::o;2474:87::-;2520:7;2547:6;;;;;;;;;;;2540:13;;2474:87;:::o;22454:147::-;22535:21;;:::i;:::-;22575:20;22587:7;22575:11;:20::i;:::-;22568:27;;22454:147;;;:::o;12911:98::-;12967:13;12996:7;12989:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12911:98;:::o;21023:559::-;20956:10;20943:23;;:9;:23;;;20935:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;21110:1:::1;21100:6;;:11;21092:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;21161:1;21150:8;:12;21142:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21244:14;21232:8;21216:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:42;;21208:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21335:15;;21323:8;21296:24;21309:10;21296:12;:24::i;:::-;:35;;;;:::i;:::-;:54;;21288:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;21405:17;;21393:8;:29;;21385:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21492:8;21484:5;;:16;;;;:::i;:::-;21471:9;:29;;21463:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21541:31;21551:10;21563:8;21541:9;:31::i;:::-;21023:559:::0;:::o;14222:274::-;14325:12;:10;:12::i;:::-;14313:24;;:8;:24;;;;14305:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14422:8;14377:18;:32;14396:12;:10;:12::i;:::-;14377:32;;;;;;;;;;;;;;;:42;14410:8;14377:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;14471:8;14442:48;;14457:12;:10;:12::i;:::-;14442:48;;;14481:8;14442:48;;;;;;:::i;:::-;;;;;;;;14222:274;;:::o;22605:181::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;256:1:::1;402:7;;:19;;394:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;256:1;463:7;:18;;;;22670:12:::2;22688:10;:15;;22711:21;22688:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22669:68;;;22752:7;22744:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;22662:124;212:1:::1;506:7;:22;;;;22605:181::o:0;22985:102::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23080:1:::1;23060:17;:21;;;;22985:102:::0;:::o;15005:311::-;15142:28;15152:4;15158:2;15162:7;15142:9;:28::i;:::-;15193:48;15216:4;15222:2;15226:7;15235:5;15193:22;:48::i;:::-;15177:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15005:311;;;;:::o;22792:83::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22860:9:::1;;;;;;;;;;;22859:10;22847:9;;:22;;;;;;;;;;;;;;;;;;22792:83::o:0;21589:421::-;21662:13;21692:16;21700:7;21692;:16::i;:::-;21684:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21769:9;;;;;;;;;;;21766:239;;;21786:21;21810:10;:8;:10::i;:::-;21786:34;;21865:1;21847:7;21841:21;:25;:112;;;;;;;;;;;;;;;;;21902:7;21911:18;:7;:16;:18::i;:::-;21885:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21841:112;21827:126;;;;;21766:239;21982:15;21975:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21589:421;;;;:::o;20025:36::-;;;;:::o;18135:43::-;;;;:::o;22341:107::-;22399:7;22422:20;22436:5;22422:13;:20::i;:::-;22415:27;;22341:107;;;:::o;14503:186::-;14625:4;14648:18;:25;14667:5;14648:25;;;;;;;;;;;;;;;:35;14674:8;14648:35;;;;;;;;;;;;;;;;;;;;;;;;;14641:42;;14503:186;;;;:::o;2809:201::-;2619:12;:10;:12::i;:::-;2608:23;;:7;:5;:7::i;:::-;:23;;;2600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2918:1:::1;2898:22;;:8;:22;;;;2890:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2974:28;2993:8;2974:18;:28::i;:::-;2809:201:::0;:::o;2017:98::-;2070:7;2097:10;2090:17;;2017:98;:::o;7127:157::-;7212:4;7251:25;7236:40;;;:11;:40;;;;7229:47;;7127:157;;;:::o;15432:98::-;15497:27;15507:2;15511:8;15497:27;;;;;;;;;;;;:9;:27::i;:::-;15432:98;;:::o;15321:105::-;15378:4;15408:12;;15398:7;:22;15391:29;;15321:105;;;:::o;17957:172::-;18081:2;18054:15;:24;18070:7;18054:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18115:7;18111:2;18095:28;;18104:5;18095:28;;;;;;;;;;;;17957:172;;;:::o;16692:1260::-;16789:35;16827:20;16839:7;16827:11;:20::i;:::-;16789:58;;16856:22;16898:13;:18;;;16882:34;;:12;:10;:12::i;:::-;:34;;;:81;;;;16951:12;:10;:12::i;:::-;16927:36;;:20;16939:7;16927:11;:20::i;:::-;:36;;;16882:81;:142;;;;16974:50;16991:13;:18;;;17011:12;:10;:12::i;:::-;16974:16;:50::i;:::-;16882:142;16856:169;;17050:17;17034:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17182:4;17160:26;;:13;:18;;;:26;;;17144:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;17271:1;17257:16;;:2;:16;;;;17249:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;17324:43;17346:4;17352:2;17356:7;17365:1;17324:21;:43::i;:::-;17375:49;17392:1;17396:7;17405:13;:18;;;17375:8;:49::i;:::-;17463:1;17433:12;:18;17446:4;17433:18;;;;;;;;;;;;;;;:26;;;:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17499:1;17471:12;:16;17484:2;17471:16;;;;;;;;;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17530:43;;;;;;;;17545:2;17530:43;;;;;;17556:15;17530:43;;;;;17507:11;:20;17519:7;17507:20;;;;;;;;;;;:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17581:19;17613:1;17603:7;:11;;;;:::i;:::-;17581:33;;17666:1;17625:43;;:11;:24;17637:11;17625:24;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;17621:236;;;17683:20;17691:11;17683:7;:20::i;:::-;17679:171;;;17743:97;;;;;;;;17770:13;:18;;;17743:97;;;;;;17801:13;:28;;;17743:97;;;;;17716:11;:24;17728:11;17716:24;;;;;;;;;;;:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17679:171;17621:236;17889:7;17885:2;17870:27;;17879:4;17870:27;;;;;;;;;;;;17904:42;17925:4;17931:2;17935:7;17944:1;17904:20;:42::i;:::-;16782:1170;;;16692:1260;;;:::o;12078:606::-;12154:21;;:::i;:::-;12195:16;12203:7;12195;:16::i;:::-;12187:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12267:26;12315:12;12304:7;:23;12300:93;;12384:1;12369:12;12359:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;12338:47;;12300:93;12406:12;12421:7;12406:22;;12401:212;12438:18;12430:4;:26;12401:212;;12475:31;12509:11;:17;12521:4;12509:17;;;;;;;;;;;12475:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12565:1;12539:28;;:9;:14;;;:28;;;12535:71;;12587:9;12580:16;;;;;;;12535:71;12466:147;12458:6;;;;;:::i;:::-;;;;12401:212;;;;12621:57;;;;;;;;;;:::i;:::-;;;;;;;;12078:606;;;;:::o;3019:191::-;3093:16;3112:6;;;;;;;;;;;3093:25;;3138:8;3129:6;;:17;;;;;;;;;;;;;;;;;;3193:8;3162:40;;3183:8;3162:40;;;;;;;;;;;;3082:128;3019:191;:::o;18935:690::-;19072:4;19089:15;:2;:13;;;:15::i;:::-;19085:535;;;19144:2;19128:36;;;19165:12;:10;:12::i;:::-;19179:4;19185:7;19194:5;19128:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;19115:464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19376:1;19359:6;:13;:18;19355:215;;;19392:61;;;;;;;;;;:::i;:::-;;;;;;;;19355:215;19538:6;19532:13;19523:6;19519:2;19515:15;19508:38;19115:464;19260:45;;;19250:55;;;:6;:55;;;;19243:62;;;;;19085:535;19608:4;19601:11;;18935:690;;;;;;;:::o;22227:108::-;22287:13;22316;22309:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22227:108;:::o;634:533::-;690:13;730:1;721:5;:10;717:53;;;748:10;;;;;;;;;;;;;;;;;;;;;717:53;780:12;795:5;780:20;;811:14;836:78;851:1;843:4;:9;836:78;;869:8;;;;;:::i;:::-;;;;900:2;892:10;;;;;:::i;:::-;;;836:78;;;924:19;956:6;946:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:39;;974:154;990:1;981:5;:10;974:154;;1018:1;1008:11;;;;;:::i;:::-;;;1085:2;1077:5;:10;;;;:::i;:::-;1064:2;:24;;;;:::i;:::-;1051:39;;1034:6;1041;1034:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1114:2;1105:11;;;;;:::i;:::-;;;974:154;;;1152:6;1138:21;;;;;634:533;;;;:::o;11832:240::-;11893:7;11942:1;11925:19;;:5;:19;;;;11909:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12033:12;:19;12046:5;12033:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;12025:41;;12018:48;;11832:240;;;:::o;15535:1152::-;15640:20;15663:12;;15640:35;;15704:1;15690:16;;:2;:16;;;;15682:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15761:21;15769:12;15761:7;:21::i;:::-;15760:22;15752:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15843:12;15831:8;:24;;15823:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15903:61;15933:1;15937:2;15941:12;15955:8;15903:21;:61::i;:::-;15973:30;16006:12;:16;16019:2;16006:16;;;;;;;;;;;;;;;15973:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16048:119;;;;;;;;16098:8;16068:11;:19;;;:39;;;;:::i;:::-;16048:119;;;;;;16151:8;16116:11;:24;;;:44;;;;:::i;:::-;16048:119;;;;;16029:12;:16;16042:2;16029:16;;;;;;;;;;;;;;;:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16202:43;;;;;;;;16217:2;16202:43;;;;;;16228:15;16202:43;;;;;16174:11;:25;16186:12;16174:25;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16254:20;16277:12;16254:35;;16303:9;16298:281;16322:8;16318:1;:12;16298:281;;;16376:12;16372:2;16351:38;;16368:1;16351:38;;;;;;;;;;;;16416:59;16447:1;16451:2;16455:12;16469:5;16416:22;:59::i;:::-;16398:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;16557:14;;;;;:::i;:::-;;;;16332:3;;;;;:::i;:::-;;;;16298:281;;;;16602:12;16587;:27;;;;16621:60;16650:1;16654:2;16658:12;16672:8;16621:20;:60::i;:::-;15633:1054;;;15535:1152;;;:::o;19630:141::-;;;;;:::o;19776:140::-;;;;;:::o;3242:197::-;3302:4;3320:12;3387:7;3375:20;3367:28;;3430:1;3423:4;:8;3416:15;;;3242:197;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:139::-;887:5;925:6;912:20;903:29;;941:33;968:5;941:33;:::i;:::-;841:139;;;;:::o;986:133::-;1029:5;1067:6;1054:20;1045:29;;1083:30;1107:5;1083:30;:::i;:::-;986:133;;;;:::o;1125:137::-;1170:5;1208:6;1195:20;1186:29;;1224:32;1250:5;1224:32;:::i;:::-;1125:137;;;;:::o;1268:141::-;1324:5;1355:6;1349:13;1340:22;;1371:32;1397:5;1371:32;:::i;:::-;1268:141;;;;:::o;1428:338::-;1483:5;1532:3;1525:4;1517:6;1513:17;1509:27;1499:122;;1540:79;;:::i;:::-;1499:122;1657:6;1644:20;1682:78;1756:3;1748:6;1741:4;1733:6;1729:17;1682:78;:::i;:::-;1673:87;;1489:277;1428:338;;;;:::o;1786:340::-;1842:5;1891:3;1884:4;1876:6;1872:17;1868:27;1858:122;;1899:79;;:::i;:::-;1858:122;2016:6;2003:20;2041:79;2116:3;2108:6;2101:4;2093:6;2089:17;2041:79;:::i;:::-;2032:88;;1848:278;1786:340;;;;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:329::-;2336:6;2385:2;2373:9;2364:7;2360:23;2356:32;2353:119;;;2391:79;;:::i;:::-;2353:119;2511:1;2536:53;2581:7;2572:6;2561:9;2557:22;2536:53;:::i;:::-;2526:63;;2482:117;2277:329;;;;:::o;2612:474::-;2680:6;2688;2737:2;2725:9;2716:7;2712:23;2708:32;2705:119;;;2743:79;;:::i;:::-;2705:119;2863:1;2888:53;2933:7;2924:6;2913:9;2909:22;2888:53;:::i;:::-;2878:63;;2834:117;2990:2;3016:53;3061:7;3052:6;3041:9;3037:22;3016:53;:::i;:::-;3006:63;;2961:118;2612:474;;;;;:::o;3092:619::-;3169:6;3177;3185;3234:2;3222:9;3213:7;3209:23;3205:32;3202:119;;;3240:79;;:::i;:::-;3202:119;3360:1;3385:53;3430:7;3421:6;3410:9;3406:22;3385:53;:::i;:::-;3375:63;;3331:117;3487:2;3513:53;3558:7;3549:6;3538:9;3534:22;3513:53;:::i;:::-;3503:63;;3458:118;3615:2;3641:53;3686:7;3677:6;3666:9;3662:22;3641:53;:::i;:::-;3631:63;;3586:118;3092:619;;;;;:::o;3717:943::-;3812:6;3820;3828;3836;3885:3;3873:9;3864:7;3860:23;3856:33;3853:120;;;3892:79;;:::i;:::-;3853:120;4012:1;4037:53;4082:7;4073:6;4062:9;4058:22;4037:53;:::i;:::-;4027:63;;3983:117;4139:2;4165:53;4210:7;4201:6;4190:9;4186:22;4165:53;:::i;:::-;4155:63;;4110:118;4267:2;4293:53;4338:7;4329:6;4318:9;4314:22;4293:53;:::i;:::-;4283:63;;4238:118;4423:2;4412:9;4408:18;4395:32;4454:18;4446:6;4443:30;4440:117;;;4476:79;;:::i;:::-;4440:117;4581:62;4635:7;4626:6;4615:9;4611:22;4581:62;:::i;:::-;4571:72;;4366:287;3717:943;;;;;;;:::o;4666:468::-;4731:6;4739;4788:2;4776:9;4767:7;4763:23;4759:32;4756:119;;;4794:79;;:::i;:::-;4756:119;4914:1;4939:53;4984:7;4975:6;4964:9;4960:22;4939:53;:::i;:::-;4929:63;;4885:117;5041:2;5067:50;5109:7;5100:6;5089:9;5085:22;5067:50;:::i;:::-;5057:60;;5012:115;4666:468;;;;;:::o;5140:474::-;5208:6;5216;5265:2;5253:9;5244:7;5240:23;5236:32;5233:119;;;5271:79;;:::i;:::-;5233:119;5391:1;5416:53;5461:7;5452:6;5441:9;5437:22;5416:53;:::i;:::-;5406:63;;5362:117;5518:2;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5489:118;5140:474;;;;;:::o;5620:327::-;5678:6;5727:2;5715:9;5706:7;5702:23;5698:32;5695:119;;;5733:79;;:::i;:::-;5695:119;5853:1;5878:52;5922:7;5913:6;5902:9;5898:22;5878:52;:::i;:::-;5868:62;;5824:116;5620:327;;;;:::o;5953:349::-;6022:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:119;;;6077:79;;:::i;:::-;6039:119;6197:1;6222:63;6277:7;6268:6;6257:9;6253:22;6222:63;:::i;:::-;6212:73;;6168:127;5953:349;;;;:::o;6308:509::-;6377:6;6426:2;6414:9;6405:7;6401:23;6397:32;6394:119;;;6432:79;;:::i;:::-;6394:119;6580:1;6569:9;6565:17;6552:31;6610:18;6602:6;6599:30;6596:117;;;6632:79;;:::i;:::-;6596:117;6737:63;6792:7;6783:6;6772:9;6768:22;6737:63;:::i;:::-;6727:73;;6523:287;6308:509;;;;:::o;6823:329::-;6882:6;6931:2;6919:9;6910:7;6906:23;6902:32;6899:119;;;6937:79;;:::i;:::-;6899:119;7057:1;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7028:117;6823:329;;;;:::o;7158:108::-;7235:24;7253:5;7235:24;:::i;:::-;7230:3;7223:37;7158:108;;:::o;7272:118::-;7359:24;7377:5;7359:24;:::i;:::-;7354:3;7347:37;7272:118;;:::o;7396:109::-;7477:21;7492:5;7477:21;:::i;:::-;7472:3;7465:34;7396:109;;:::o;7511:360::-;7597:3;7625:38;7657:5;7625:38;:::i;:::-;7679:70;7742:6;7737:3;7679:70;:::i;:::-;7672:77;;7758:52;7803:6;7798:3;7791:4;7784:5;7780:16;7758:52;:::i;:::-;7835:29;7857:6;7835:29;:::i;:::-;7830:3;7826:39;7819:46;;7601:270;7511:360;;;;:::o;7877:364::-;7965:3;7993:39;8026:5;7993:39;:::i;:::-;8048:71;8112:6;8107:3;8048:71;:::i;:::-;8041:78;;8128:52;8173:6;8168:3;8161:4;8154:5;8150:16;8128:52;:::i;:::-;8205:29;8227:6;8205:29;:::i;:::-;8200:3;8196:39;8189:46;;7969:272;7877:364;;;;:::o;8247:377::-;8353:3;8381:39;8414:5;8381:39;:::i;:::-;8436:89;8518:6;8513:3;8436:89;:::i;:::-;8429:96;;8534:52;8579:6;8574:3;8567:4;8560:5;8556:16;8534:52;:::i;:::-;8611:6;8606:3;8602:16;8595:23;;8357:267;8247:377;;;;:::o;8630:366::-;8772:3;8793:67;8857:2;8852:3;8793:67;:::i;:::-;8786:74;;8869:93;8958:3;8869:93;:::i;:::-;8987:2;8982:3;8978:12;8971:19;;8630:366;;;:::o;9002:::-;9144:3;9165:67;9229:2;9224:3;9165:67;:::i;:::-;9158:74;;9241:93;9330:3;9241:93;:::i;:::-;9359:2;9354:3;9350:12;9343:19;;9002:366;;;:::o;9374:::-;9516:3;9537:67;9601:2;9596:3;9537:67;:::i;:::-;9530:74;;9613:93;9702:3;9613:93;:::i;:::-;9731:2;9726:3;9722:12;9715:19;;9374:366;;;:::o;9746:::-;9888:3;9909:67;9973:2;9968:3;9909:67;:::i;:::-;9902:74;;9985:93;10074:3;9985:93;:::i;:::-;10103:2;10098:3;10094:12;10087:19;;9746:366;;;:::o;10118:::-;10260:3;10281:67;10345:2;10340:3;10281:67;:::i;:::-;10274:74;;10357:93;10446:3;10357:93;:::i;:::-;10475:2;10470:3;10466:12;10459:19;;10118:366;;;:::o;10490:::-;10632:3;10653:67;10717:2;10712:3;10653:67;:::i;:::-;10646:74;;10729:93;10818:3;10729:93;:::i;:::-;10847:2;10842:3;10838:12;10831:19;;10490:366;;;:::o;10862:::-;11004:3;11025:67;11089:2;11084:3;11025:67;:::i;:::-;11018:74;;11101:93;11190:3;11101:93;:::i;:::-;11219:2;11214:3;11210:12;11203:19;;10862:366;;;:::o;11234:::-;11376:3;11397:67;11461:2;11456:3;11397:67;:::i;:::-;11390:74;;11473:93;11562:3;11473:93;:::i;:::-;11591:2;11586:3;11582:12;11575:19;;11234:366;;;:::o;11606:::-;11748:3;11769:67;11833:2;11828:3;11769:67;:::i;:::-;11762:74;;11845:93;11934:3;11845:93;:::i;:::-;11963:2;11958:3;11954:12;11947:19;;11606:366;;;:::o;11978:::-;12120:3;12141:67;12205:2;12200:3;12141:67;:::i;:::-;12134:74;;12217:93;12306:3;12217:93;:::i;:::-;12335:2;12330:3;12326:12;12319:19;;11978:366;;;:::o;12350:::-;12492:3;12513:67;12577:2;12572:3;12513:67;:::i;:::-;12506:74;;12589:93;12678:3;12589:93;:::i;:::-;12707:2;12702:3;12698:12;12691:19;;12350:366;;;:::o;12722:::-;12864:3;12885:67;12949:2;12944:3;12885:67;:::i;:::-;12878:74;;12961:93;13050:3;12961:93;:::i;:::-;13079:2;13074:3;13070:12;13063:19;;12722:366;;;:::o;13094:::-;13236:3;13257:67;13321:2;13316:3;13257:67;:::i;:::-;13250:74;;13333:93;13422:3;13333:93;:::i;:::-;13451:2;13446:3;13442:12;13435:19;;13094:366;;;:::o;13466:::-;13608:3;13629:67;13693:2;13688:3;13629:67;:::i;:::-;13622:74;;13705:93;13794:3;13705:93;:::i;:::-;13823:2;13818:3;13814:12;13807:19;;13466:366;;;:::o;13838:::-;13980:3;14001:67;14065:2;14060:3;14001:67;:::i;:::-;13994:74;;14077:93;14166:3;14077:93;:::i;:::-;14195:2;14190:3;14186:12;14179:19;;13838:366;;;:::o;14210:::-;14352:3;14373:67;14437:2;14432:3;14373:67;:::i;:::-;14366:74;;14449:93;14538:3;14449:93;:::i;:::-;14567:2;14562:3;14558:12;14551:19;;14210:366;;;:::o;14582:400::-;14742:3;14763:84;14845:1;14840:3;14763:84;:::i;:::-;14756:91;;14856:93;14945:3;14856:93;:::i;:::-;14974:1;14969:3;14965:11;14958:18;;14582:400;;;:::o;14988:366::-;15130:3;15151:67;15215:2;15210:3;15151:67;:::i;:::-;15144:74;;15227:93;15316:3;15227:93;:::i;:::-;15345:2;15340:3;15336:12;15329:19;;14988:366;;;:::o;15360:::-;15502:3;15523:67;15587:2;15582:3;15523:67;:::i;:::-;15516:74;;15599:93;15688:3;15599:93;:::i;:::-;15717:2;15712:3;15708:12;15701:19;;15360:366;;;:::o;15732:::-;15874:3;15895:67;15959:2;15954:3;15895:67;:::i;:::-;15888:74;;15971:93;16060:3;15971:93;:::i;:::-;16089:2;16084:3;16080:12;16073:19;;15732:366;;;:::o;16104:::-;16246:3;16267:67;16331:2;16326:3;16267:67;:::i;:::-;16260:74;;16343:93;16432:3;16343:93;:::i;:::-;16461:2;16456:3;16452:12;16445:19;;16104:366;;;:::o;16476:::-;16618:3;16639:67;16703:2;16698:3;16639:67;:::i;:::-;16632:74;;16715:93;16804:3;16715:93;:::i;:::-;16833:2;16828:3;16824:12;16817:19;;16476:366;;;:::o;16848:398::-;17007:3;17028:83;17109:1;17104:3;17028:83;:::i;:::-;17021:90;;17120:93;17209:3;17120:93;:::i;:::-;17238:1;17233:3;17229:11;17222:18;;16848:398;;;:::o;17252:366::-;17394:3;17415:67;17479:2;17474:3;17415:67;:::i;:::-;17408:74;;17491:93;17580:3;17491:93;:::i;:::-;17609:2;17604:3;17600:12;17593:19;;17252:366;;;:::o;17624:::-;17766:3;17787:67;17851:2;17846:3;17787:67;:::i;:::-;17780:74;;17863:93;17952:3;17863:93;:::i;:::-;17981:2;17976:3;17972:12;17965:19;;17624:366;;;:::o;17996:::-;18138:3;18159:67;18223:2;18218:3;18159:67;:::i;:::-;18152:74;;18235:93;18324:3;18235:93;:::i;:::-;18353:2;18348:3;18344:12;18337:19;;17996:366;;;:::o;18368:::-;18510:3;18531:67;18595:2;18590:3;18531:67;:::i;:::-;18524:74;;18607:93;18696:3;18607:93;:::i;:::-;18725:2;18720:3;18716:12;18709:19;;18368:366;;;:::o;18740:::-;18882:3;18903:67;18967:2;18962:3;18903:67;:::i;:::-;18896:74;;18979:93;19068:3;18979:93;:::i;:::-;19097:2;19092:3;19088:12;19081:19;;18740:366;;;:::o;19112:::-;19254:3;19275:67;19339:2;19334:3;19275:67;:::i;:::-;19268:74;;19351:93;19440:3;19351:93;:::i;:::-;19469:2;19464:3;19460:12;19453:19;;19112:366;;;:::o;19484:::-;19626:3;19647:67;19711:2;19706:3;19647:67;:::i;:::-;19640:74;;19723:93;19812:3;19723:93;:::i;:::-;19841:2;19836:3;19832:12;19825:19;;19484:366;;;:::o;19856:::-;19998:3;20019:67;20083:2;20078:3;20019:67;:::i;:::-;20012:74;;20095:93;20184:3;20095:93;:::i;:::-;20213:2;20208:3;20204:12;20197:19;;19856:366;;;:::o;20228:::-;20370:3;20391:67;20455:2;20450:3;20391:67;:::i;:::-;20384:74;;20467:93;20556:3;20467:93;:::i;:::-;20585:2;20580:3;20576:12;20569:19;;20228:366;;;:::o;20600:::-;20742:3;20763:67;20827:2;20822:3;20763:67;:::i;:::-;20756:74;;20839:93;20928:3;20839:93;:::i;:::-;20957:2;20952:3;20948:12;20941:19;;20600:366;;;:::o;21042:527::-;21201:4;21196:3;21192:14;21288:4;21281:5;21277:16;21271:23;21307:63;21364:4;21359:3;21355:14;21341:12;21307:63;:::i;:::-;21216:164;21472:4;21465:5;21461:16;21455:23;21491:61;21546:4;21541:3;21537:14;21523:12;21491:61;:::i;:::-;21390:172;21170:399;21042:527;;:::o;21575:118::-;21662:24;21680:5;21662:24;:::i;:::-;21657:3;21650:37;21575:118;;:::o;21699:105::-;21774:23;21791:5;21774:23;:::i;:::-;21769:3;21762:36;21699:105;;:::o;21810:701::-;22091:3;22113:95;22204:3;22195:6;22113:95;:::i;:::-;22106:102;;22225:95;22316:3;22307:6;22225:95;:::i;:::-;22218:102;;22337:148;22481:3;22337:148;:::i;:::-;22330:155;;22502:3;22495:10;;21810:701;;;;;:::o;22517:379::-;22701:3;22723:147;22866:3;22723:147;:::i;:::-;22716:154;;22887:3;22880:10;;22517:379;;;:::o;22902:222::-;22995:4;23033:2;23022:9;23018:18;23010:26;;23046:71;23114:1;23103:9;23099:17;23090:6;23046:71;:::i;:::-;22902:222;;;;:::o;23130:640::-;23325:4;23363:3;23352:9;23348:19;23340:27;;23377:71;23445:1;23434:9;23430:17;23421:6;23377:71;:::i;:::-;23458:72;23526:2;23515:9;23511:18;23502:6;23458:72;:::i;:::-;23540;23608:2;23597:9;23593:18;23584:6;23540:72;:::i;:::-;23659:9;23653:4;23649:20;23644:2;23633:9;23629:18;23622:48;23687:76;23758:4;23749:6;23687:76;:::i;:::-;23679:84;;23130:640;;;;;;;:::o;23776:210::-;23863:4;23901:2;23890:9;23886:18;23878:26;;23914:65;23976:1;23965:9;23961:17;23952:6;23914:65;:::i;:::-;23776:210;;;;:::o;23992:313::-;24105:4;24143:2;24132:9;24128:18;24120:26;;24192:9;24186:4;24182:20;24178:1;24167:9;24163:17;24156:47;24220:78;24293:4;24284:6;24220:78;:::i;:::-;24212:86;;23992:313;;;;:::o;24311:419::-;24477:4;24515:2;24504:9;24500:18;24492:26;;24564:9;24558:4;24554:20;24550:1;24539:9;24535:17;24528:47;24592:131;24718:4;24592:131;:::i;:::-;24584:139;;24311:419;;;:::o;24736:::-;24902:4;24940:2;24929:9;24925:18;24917:26;;24989:9;24983:4;24979:20;24975:1;24964:9;24960:17;24953:47;25017:131;25143:4;25017:131;:::i;:::-;25009:139;;24736:419;;;:::o;25161:::-;25327:4;25365:2;25354:9;25350:18;25342:26;;25414:9;25408:4;25404:20;25400:1;25389:9;25385:17;25378:47;25442:131;25568:4;25442:131;:::i;:::-;25434:139;;25161:419;;;:::o;25586:::-;25752:4;25790:2;25779:9;25775:18;25767:26;;25839:9;25833:4;25829:20;25825:1;25814:9;25810:17;25803:47;25867:131;25993:4;25867:131;:::i;:::-;25859:139;;25586:419;;;:::o;26011:::-;26177:4;26215:2;26204:9;26200:18;26192:26;;26264:9;26258:4;26254:20;26250:1;26239:9;26235:17;26228:47;26292:131;26418:4;26292:131;:::i;:::-;26284:139;;26011:419;;;:::o;26436:::-;26602:4;26640:2;26629:9;26625:18;26617:26;;26689:9;26683:4;26679:20;26675:1;26664:9;26660:17;26653:47;26717:131;26843:4;26717:131;:::i;:::-;26709:139;;26436:419;;;:::o;26861:::-;27027:4;27065:2;27054:9;27050:18;27042:26;;27114:9;27108:4;27104:20;27100:1;27089:9;27085:17;27078:47;27142:131;27268:4;27142:131;:::i;:::-;27134:139;;26861:419;;;:::o;27286:::-;27452:4;27490:2;27479:9;27475:18;27467:26;;27539:9;27533:4;27529:20;27525:1;27514:9;27510:17;27503:47;27567:131;27693:4;27567:131;:::i;:::-;27559:139;;27286:419;;;:::o;27711:::-;27877:4;27915:2;27904:9;27900:18;27892:26;;27964:9;27958:4;27954:20;27950:1;27939:9;27935:17;27928:47;27992:131;28118:4;27992:131;:::i;:::-;27984:139;;27711:419;;;:::o;28136:::-;28302:4;28340:2;28329:9;28325:18;28317:26;;28389:9;28383:4;28379:20;28375:1;28364:9;28360:17;28353:47;28417:131;28543:4;28417:131;:::i;:::-;28409:139;;28136:419;;;:::o;28561:::-;28727:4;28765:2;28754:9;28750:18;28742:26;;28814:9;28808:4;28804:20;28800:1;28789:9;28785:17;28778:47;28842:131;28968:4;28842:131;:::i;:::-;28834:139;;28561:419;;;:::o;28986:::-;29152:4;29190:2;29179:9;29175:18;29167:26;;29239:9;29233:4;29229:20;29225:1;29214:9;29210:17;29203:47;29267:131;29393:4;29267:131;:::i;:::-;29259:139;;28986:419;;;:::o;29411:::-;29577:4;29615:2;29604:9;29600:18;29592:26;;29664:9;29658:4;29654:20;29650:1;29639:9;29635:17;29628:47;29692:131;29818:4;29692:131;:::i;:::-;29684:139;;29411:419;;;:::o;29836:::-;30002:4;30040:2;30029:9;30025:18;30017:26;;30089:9;30083:4;30079:20;30075:1;30064:9;30060:17;30053:47;30117:131;30243:4;30117:131;:::i;:::-;30109:139;;29836:419;;;:::o;30261:::-;30427:4;30465:2;30454:9;30450:18;30442:26;;30514:9;30508:4;30504:20;30500:1;30489:9;30485:17;30478:47;30542:131;30668:4;30542:131;:::i;:::-;30534:139;;30261:419;;;:::o;30686:::-;30852:4;30890:2;30879:9;30875:18;30867:26;;30939:9;30933:4;30929:20;30925:1;30914:9;30910:17;30903:47;30967:131;31093:4;30967:131;:::i;:::-;30959:139;;30686:419;;;:::o;31111:::-;31277:4;31315:2;31304:9;31300:18;31292:26;;31364:9;31358:4;31354:20;31350:1;31339:9;31335:17;31328:47;31392:131;31518:4;31392:131;:::i;:::-;31384:139;;31111:419;;;:::o;31536:::-;31702:4;31740:2;31729:9;31725:18;31717:26;;31789:9;31783:4;31779:20;31775:1;31764:9;31760:17;31753:47;31817:131;31943:4;31817:131;:::i;:::-;31809:139;;31536:419;;;:::o;31961:::-;32127:4;32165:2;32154:9;32150:18;32142:26;;32214:9;32208:4;32204:20;32200:1;32189:9;32185:17;32178:47;32242:131;32368:4;32242:131;:::i;:::-;32234:139;;31961:419;;;:::o;32386:::-;32552:4;32590:2;32579:9;32575:18;32567:26;;32639:9;32633:4;32629:20;32625:1;32614:9;32610:17;32603:47;32667:131;32793:4;32667:131;:::i;:::-;32659:139;;32386:419;;;:::o;32811:::-;32977:4;33015:2;33004:9;33000:18;32992:26;;33064:9;33058:4;33054:20;33050:1;33039:9;33035:17;33028:47;33092:131;33218:4;33092:131;:::i;:::-;33084:139;;32811:419;;;:::o;33236:::-;33402:4;33440:2;33429:9;33425:18;33417:26;;33489:9;33483:4;33479:20;33475:1;33464:9;33460:17;33453:47;33517:131;33643:4;33517:131;:::i;:::-;33509:139;;33236:419;;;:::o;33661:::-;33827:4;33865:2;33854:9;33850:18;33842:26;;33914:9;33908:4;33904:20;33900:1;33889:9;33885:17;33878:47;33942:131;34068:4;33942:131;:::i;:::-;33934:139;;33661:419;;;:::o;34086:::-;34252:4;34290:2;34279:9;34275:18;34267:26;;34339:9;34333:4;34329:20;34325:1;34314:9;34310:17;34303:47;34367:131;34493:4;34367:131;:::i;:::-;34359:139;;34086:419;;;:::o;34511:::-;34677:4;34715:2;34704:9;34700:18;34692:26;;34764:9;34758:4;34754:20;34750:1;34739:9;34735:17;34728:47;34792:131;34918:4;34792:131;:::i;:::-;34784:139;;34511:419;;;:::o;34936:::-;35102:4;35140:2;35129:9;35125:18;35117:26;;35189:9;35183:4;35179:20;35175:1;35164:9;35160:17;35153:47;35217:131;35343:4;35217:131;:::i;:::-;35209:139;;34936:419;;;:::o;35361:::-;35527:4;35565:2;35554:9;35550:18;35542:26;;35614:9;35608:4;35604:20;35600:1;35589:9;35585:17;35578:47;35642:131;35768:4;35642:131;:::i;:::-;35634:139;;35361:419;;;:::o;35786:::-;35952:4;35990:2;35979:9;35975:18;35967:26;;36039:9;36033:4;36029:20;36025:1;36014:9;36010:17;36003:47;36067:131;36193:4;36067:131;:::i;:::-;36059:139;;35786:419;;;:::o;36211:::-;36377:4;36415:2;36404:9;36400:18;36392:26;;36464:9;36458:4;36454:20;36450:1;36439:9;36435:17;36428:47;36492:131;36618:4;36492:131;:::i;:::-;36484:139;;36211:419;;;:::o;36636:::-;36802:4;36840:2;36829:9;36825:18;36817:26;;36889:9;36883:4;36879:20;36875:1;36864:9;36860:17;36853:47;36917:131;37043:4;36917:131;:::i;:::-;36909:139;;36636:419;;;:::o;37061:::-;37227:4;37265:2;37254:9;37250:18;37242:26;;37314:9;37308:4;37304:20;37300:1;37289:9;37285:17;37278:47;37342:131;37468:4;37342:131;:::i;:::-;37334:139;;37061:419;;;:::o;37486:346::-;37641:4;37679:2;37668:9;37664:18;37656:26;;37692:133;37822:1;37811:9;37807:17;37798:6;37692:133;:::i;:::-;37486:346;;;;:::o;37838:222::-;37931:4;37969:2;37958:9;37954:18;37946:26;;37982:71;38050:1;38039:9;38035:17;38026:6;37982:71;:::i;:::-;37838:222;;;;:::o;38066:129::-;38100:6;38127:20;;:::i;:::-;38117:30;;38156:33;38184:4;38176:6;38156:33;:::i;:::-;38066:129;;;:::o;38201:75::-;38234:6;38267:2;38261:9;38251:19;;38201:75;:::o;38282:307::-;38343:4;38433:18;38425:6;38422:30;38419:56;;;38455:18;;:::i;:::-;38419:56;38493:29;38515:6;38493:29;:::i;:::-;38485:37;;38577:4;38571;38567:15;38559:23;;38282:307;;;:::o;38595:308::-;38657:4;38747:18;38739:6;38736:30;38733:56;;;38769:18;;:::i;:::-;38733:56;38807:29;38829:6;38807:29;:::i;:::-;38799:37;;38891:4;38885;38881:15;38873:23;;38595:308;;;:::o;38909:98::-;38960:6;38994:5;38988:12;38978:22;;38909:98;;;:::o;39013:99::-;39065:6;39099:5;39093:12;39083:22;;39013:99;;;:::o;39118:168::-;39201:11;39235:6;39230:3;39223:19;39275:4;39270:3;39266:14;39251:29;;39118:168;;;;:::o;39292:147::-;39393:11;39430:3;39415:18;;39292:147;;;;:::o;39445:169::-;39529:11;39563:6;39558:3;39551:19;39603:4;39598:3;39594:14;39579:29;;39445:169;;;;:::o;39620:148::-;39722:11;39759:3;39744:18;;39620:148;;;;:::o;39774:273::-;39814:3;39833:20;39851:1;39833:20;:::i;:::-;39828:25;;39867:20;39885:1;39867:20;:::i;:::-;39862:25;;39989:1;39953:34;39949:42;39946:1;39943:49;39940:75;;;39995:18;;:::i;:::-;39940:75;40039:1;40036;40032:9;40025:16;;39774:273;;;;:::o;40053:305::-;40093:3;40112:20;40130:1;40112:20;:::i;:::-;40107:25;;40146:20;40164:1;40146:20;:::i;:::-;40141:25;;40300:1;40232:66;40228:74;40225:1;40222:81;40219:107;;;40306:18;;:::i;:::-;40219:107;40350:1;40347;40343:9;40336:16;;40053:305;;;;:::o;40364:185::-;40404:1;40421:20;40439:1;40421:20;:::i;:::-;40416:25;;40455:20;40473:1;40455:20;:::i;:::-;40450:25;;40494:1;40484:35;;40499:18;;:::i;:::-;40484:35;40541:1;40538;40534:9;40529:14;;40364:185;;;;:::o;40555:348::-;40595:7;40618:20;40636:1;40618:20;:::i;:::-;40613:25;;40652:20;40670:1;40652:20;:::i;:::-;40647:25;;40840:1;40772:66;40768:74;40765:1;40762:81;40757:1;40750:9;40743:17;40739:105;40736:131;;;40847:18;;:::i;:::-;40736:131;40895:1;40892;40888:9;40877:20;;40555:348;;;;:::o;40909:191::-;40949:4;40969:20;40987:1;40969:20;:::i;:::-;40964:25;;41003:20;41021:1;41003:20;:::i;:::-;40998:25;;41042:1;41039;41036:8;41033:34;;;41047:18;;:::i;:::-;41033:34;41092:1;41089;41085:9;41077:17;;40909:191;;;;:::o;41106:::-;41146:4;41166:20;41184:1;41166:20;:::i;:::-;41161:25;;41200:20;41218:1;41200:20;:::i;:::-;41195:25;;41239:1;41236;41233:8;41230:34;;;41244:18;;:::i;:::-;41230:34;41289:1;41286;41282:9;41274:17;;41106:191;;;;:::o;41303:96::-;41340:7;41369:24;41387:5;41369:24;:::i;:::-;41358:35;;41303:96;;;:::o;41405:90::-;41439:7;41482:5;41475:13;41468:21;41457:32;;41405:90;;;:::o;41501:149::-;41537:7;41577:66;41570:5;41566:78;41555:89;;41501:149;;;:::o;41656:118::-;41693:7;41733:34;41726:5;41722:46;41711:57;;41656:118;;;:::o;41780:126::-;41817:7;41857:42;41850:5;41846:54;41835:65;;41780:126;;;:::o;41912:77::-;41949:7;41978:5;41967:16;;41912:77;;;:::o;41995:101::-;42031:7;42071:18;42064:5;42060:30;42049:41;;41995:101;;;:::o;42102:154::-;42186:6;42181:3;42176;42163:30;42248:1;42239:6;42234:3;42230:16;42223:27;42102:154;;;:::o;42262:307::-;42330:1;42340:113;42354:6;42351:1;42348:13;42340:113;;;42439:1;42434:3;42430:11;42424:18;42420:1;42415:3;42411:11;42404:39;42376:2;42373:1;42369:10;42364:15;;42340:113;;;42471:6;42468:1;42465:13;42462:101;;;42551:1;42542:6;42537:3;42533:16;42526:27;42462:101;42311:258;42262:307;;;:::o;42575:171::-;42614:3;42637:24;42655:5;42637:24;:::i;:::-;42628:33;;42683:4;42676:5;42673:15;42670:41;;;42691:18;;:::i;:::-;42670:41;42738:1;42731:5;42727:13;42720:20;;42575:171;;;:::o;42752:320::-;42796:6;42833:1;42827:4;42823:12;42813:22;;42880:1;42874:4;42870:12;42901:18;42891:81;;42957:4;42949:6;42945:17;42935:27;;42891:81;43019:2;43011:6;43008:14;42988:18;42985:38;42982:84;;;43038:18;;:::i;:::-;42982:84;42803:269;42752:320;;;:::o;43078:281::-;43161:27;43183:4;43161:27;:::i;:::-;43153:6;43149:40;43291:6;43279:10;43276:22;43255:18;43243:10;43240:34;43237:62;43234:88;;;43302:18;;:::i;:::-;43234:88;43342:10;43338:2;43331:22;43121:238;43078:281;;:::o;43365:233::-;43404:3;43427:24;43445:5;43427:24;:::i;:::-;43418:33;;43473:66;43466:5;43463:77;43460:103;;;43543:18;;:::i;:::-;43460:103;43590:1;43583:5;43579:13;43572:20;;43365:233;;;:::o;43604:176::-;43636:1;43653:20;43671:1;43653:20;:::i;:::-;43648:25;;43687:20;43705:1;43687:20;:::i;:::-;43682:25;;43726:1;43716:35;;43731:18;;:::i;:::-;43716:35;43772:1;43769;43765:9;43760:14;;43604:176;;;;:::o;43786:180::-;43834:77;43831:1;43824:88;43931:4;43928:1;43921:15;43955:4;43952:1;43945:15;43972:180;44020:77;44017:1;44010:88;44117:4;44114:1;44107:15;44141:4;44138:1;44131:15;44158:180;44206:77;44203:1;44196:88;44303:4;44300:1;44293:15;44327:4;44324:1;44317:15;44344:180;44392:77;44389:1;44382:88;44489:4;44486:1;44479:15;44513:4;44510:1;44503:15;44530:180;44578:77;44575:1;44568:88;44675:4;44672:1;44665:15;44699:4;44696:1;44689:15;44716:117;44825:1;44822;44815:12;44839:117;44948:1;44945;44938:12;44962:117;45071:1;45068;45061:12;45085:117;45194:1;45191;45184:12;45208:102;45249:6;45300:2;45296:7;45291:2;45284:5;45280:14;45276:28;45266:38;;45208:102;;;:::o;45316:221::-;45456:34;45452:1;45444:6;45440:14;45433:58;45525:4;45520:2;45512:6;45508:15;45501:29;45316:221;:::o;45543:225::-;45683:34;45679:1;45671:6;45667:14;45660:58;45752:8;45747:2;45739:6;45735:15;45728:33;45543:225;:::o;45774:229::-;45914:34;45910:1;45902:6;45898:14;45891:58;45983:12;45978:2;45970:6;45966:15;45959:37;45774:229;:::o;46009:174::-;46149:26;46145:1;46137:6;46133:14;46126:50;46009:174;:::o;46189:222::-;46329:34;46325:1;46317:6;46313:14;46306:58;46398:5;46393:2;46385:6;46381:15;46374:30;46189:222;:::o;46417:::-;46557:34;46553:1;46545:6;46541:14;46534:58;46626:5;46621:2;46613:6;46609:15;46602:30;46417:222;:::o;46645:168::-;46785:20;46781:1;46773:6;46769:14;46762:44;46645:168;:::o;46819:224::-;46959:34;46955:1;46947:6;46943:14;46936:58;47028:7;47023:2;47015:6;47011:15;47004:32;46819:224;:::o;47049:236::-;47189:34;47185:1;47177:6;47173:14;47166:58;47258:19;47253:2;47245:6;47241:15;47234:44;47049:236;:::o;47291:168::-;47431:20;47427:1;47419:6;47415:14;47408:44;47291:168;:::o;47465:180::-;47605:32;47601:1;47593:6;47589:14;47582:56;47465:180;:::o;47651:244::-;47791:34;47787:1;47779:6;47775:14;47768:58;47860:27;47855:2;47847:6;47843:15;47836:52;47651:244;:::o;47901:170::-;48041:22;48037:1;48029:6;48025:14;48018:46;47901:170;:::o;48077:230::-;48217:34;48213:1;48205:6;48201:14;48194:58;48286:13;48281:2;48273:6;48269:15;48262:38;48077:230;:::o;48313:179::-;48453:31;48449:1;48441:6;48437:14;48430:55;48313:179;:::o;48498:225::-;48638:34;48634:1;48626:6;48622:14;48615:58;48707:8;48702:2;48694:6;48690:15;48683:33;48498:225;:::o;48729:155::-;48869:7;48865:1;48857:6;48853:14;48846:31;48729:155;:::o;48890:182::-;49030:34;49026:1;49018:6;49014:14;49007:58;48890:182;:::o;49078:234::-;49218:34;49214:1;49206:6;49202:14;49195:58;49287:17;49282:2;49274:6;49270:15;49263:42;49078:234;:::o;49318:176::-;49458:28;49454:1;49446:6;49442:14;49435:52;49318:176;:::o;49500:237::-;49640:34;49636:1;49628:6;49624:14;49617:58;49709:20;49704:2;49696:6;49692:15;49685:45;49500:237;:::o;49743:221::-;49883:34;49879:1;49871:6;49867:14;49860:58;49952:4;49947:2;49939:6;49935:15;49928:29;49743:221;:::o;49970:114::-;;:::o;50090:166::-;50230:18;50226:1;50218:6;50214:14;50207:42;50090:166;:::o;50262:238::-;50402:34;50398:1;50390:6;50386:14;50379:58;50471:21;50466:2;50458:6;50454:15;50447:46;50262:238;:::o;50506:179::-;50646:31;50642:1;50634:6;50630:14;50623:55;50506:179;:::o;50691:220::-;50831:34;50827:1;50819:6;50815:14;50808:58;50900:3;50895:2;50887:6;50883:15;50876:28;50691:220;:::o;50917:233::-;51057:34;51053:1;51045:6;51041:14;51034:58;51126:16;51121:2;51113:6;51109:15;51102:41;50917:233;:::o;51156:181::-;51296:33;51292:1;51284:6;51280:14;51273:57;51156:181;:::o;51343:234::-;51483:34;51479:1;51471:6;51467:14;51460:58;51552:17;51547:2;51539:6;51535:15;51528:42;51343:234;:::o;51583:180::-;51723:32;51719:1;51711:6;51707:14;51700:56;51583:180;:::o;51769:232::-;51909:34;51905:1;51897:6;51893:14;51886:58;51978:15;51973:2;51965:6;51961:15;51954:40;51769:232;:::o;52007:221::-;52147:34;52143:1;52135:6;52131:14;52124:58;52216:4;52211:2;52203:6;52199:15;52192:29;52007:221;:::o;52234:122::-;52307:24;52325:5;52307:24;:::i;:::-;52300:5;52297:35;52287:63;;52346:1;52343;52336:12;52287:63;52234:122;:::o;52362:116::-;52432:21;52447:5;52432:21;:::i;:::-;52425:5;52422:32;52412:60;;52468:1;52465;52458:12;52412:60;52362:116;:::o;52484:120::-;52556:23;52573:5;52556:23;:::i;:::-;52549:5;52546:34;52536:62;;52594:1;52591;52584:12;52536:62;52484:120;:::o;52610:122::-;52683:24;52701:5;52683:24;:::i;:::-;52676:5;52673:35;52663:63;;52722:1;52719;52712:12;52663:63;52610:122;:::o
Swarm Source
ipfs://8359194f2107bfe5f852c6ea0be1c41f2244ea1beee3c9085c065555100de4e0
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.