ETH Price: $3,201.20 (+5.00%)

DigiDaigaku Dragon Eggs (DIDDE)
 

Overview

TokenID

4176

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

DigiDaigaku Dragon Eggs is a collection of 10,000 digital collectables developed by Limit Break, a company founded by world famous game designers Gabriel Leydon and Halbert Nakagawa.

# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x5F146202...5b7B81598
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
HyperMintERC721A_2_2_0

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license
File 1 of 23 : HyperMintERC721A_2_2_0.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
import '@openzeppelin/contracts/interfaces/IERC2981.sol';
import '@openzeppelin/contracts/interfaces/IERC20.sol';
import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
import '@openzeppelin/contracts/utils/cryptography/ECDSA.sol';
import './Ownable_1_0_0.sol';
import './Interfaces/IHyperMintERC721A_2_2_0.sol';
import 'erc721a/contracts/extensions/ERC721ABurnable.sol';
import './opensea-operator-filter/OperatorFilterer.sol';
contract HyperMintERC721A_2_2_0 is
IHyperMintERC721A_2_2_0,
ERC721ABurnable,
Ownable,
OperatorFilterer
{
using SafeERC20 for IERC20;
/* ================= STATE VARIABLES ================= */
// ========= Immutable Storage =========
uint256 internal constant BASIS_POINTS = 10000;
// ========== Mutable Storage ==========
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 23 : IERC2981.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)
pragma solidity ^0.8.0;
import "../utils/introspection/IERC165.sol";
/**
* @dev Interface for the NFT Royalty Standard.
*
* A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal
* support for royalty payments across all NFT marketplaces and ecosystem participants.
*
* _Available since v4.5._
*/
interface IERC2981 is IERC165 {
/**
* @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of
* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.
*/
function royaltyInfo(uint256 tokenId, uint256 salePrice)
external
view
returns (address receiver, uint256 royaltyAmount);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 23 : IERC20.sol
1
2
3
4
5
6
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)
pragma solidity ^0.8.0;
import "../token/ERC20/IERC20.sol";
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 23 : SafeERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
import "../../../utils/Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 23 : ECDSA.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/ECDSA.sol)
pragma solidity ^0.8.0;
import "../Strings.sol";
/**
* @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
*
* These functions can be used to verify that a message was signed by the holder
* of the private keys of a given address.
*/
library ECDSA {
enum RecoverError {
NoError,
InvalidSignature,
InvalidSignatureLength,
InvalidSignatureS,
InvalidSignatureV
}
function _throwError(RecoverError error) private pure {
if (error == RecoverError.NoError) {
return; // no error: do nothing
} else if (error == RecoverError.InvalidSignature) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 23 : Ownable_1_0_0.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
pragma solidity ^0.8.4;
import '@openzeppelin/contracts/utils/Context.sol';
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
address private _contractManager;
event ContractManagerTransferred(
address indexed previousContractManager,
address indexed newContractManager
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 23 : IERC165.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 23 : IERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 23 : Address.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 23 : Context.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 23 : ERC165.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Implementation of the {IERC165} interface.
*
* Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
* for the additional interface id that will be supported. For example:
*
* ```solidity
* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
* }
* ```
*
* Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
*/
abstract contract ERC165 is IERC165 {
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 23 : Strings.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)
pragma solidity ^0.8.0;
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
// Inspired by OraclizeAPI's implementation - MIT licence
// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 23 : IHyperMintERC721A_2_2_0.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
import 'erc721a/contracts/interfaces/IERC721A.sol';
import './IERC4906.sol';
// ============== Structs ==============
struct GeneralConfig {
string name;
string symbol;
string contractMetadataUrl;
string tokenMetadataUrl;
bool allowBuy;
bool allowPublicTransfer;
bool enableOpenSeaOperatorFilterRegistry;
uint256 publicSaleDate;
uint256 saleCloseDate;
uint256 primaryRoyaltyFee;
uint256 secondaryRoyaltyFee;
}
struct TokenConfig {
uint256 price;
uint256 maxSupply;
uint256 maxPerTransaction;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 23 : ERC721ABurnable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721ABurnable.sol';
import '../ERC721A.sol';
/**
* @title ERC721ABurnable.
*
* @dev ERC721A token that can be irreversibly burned (destroyed).
*/
abstract contract ERC721ABurnable is ERC721A, IERC721ABurnable {
/**
* @dev Burns `tokenId`. See {ERC721A-_burn}.
*
* Requirements:
*
* - The caller must own `tokenId` or be an approved operator.
*/
function burn(uint256 tokenId) public virtual override {
_burn(tokenId, true);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 23 : OperatorFilterer.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import {IOperatorFilterRegistry} from './IOperatorFilterRegistry.sol';
abstract contract OperatorFilterer {
error OperatorNotAllowed(address operator);
IOperatorFilterRegistry constant operatorFilterRegistry =
IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);
constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
// If an inheriting token contract is deployed to a network without the registry deployed, the modifier
// will not revert, but the contract will need to be registered with the registry once it is deployed in
// order for the modifier to filter addresses.
if (address(operatorFilterRegistry).code.length > 0) {
if (subscribe) {
operatorFilterRegistry.registerAndSubscribe(
address(this),
subscriptionOrRegistrantToCopy
);
} else {
if (subscriptionOrRegistrantToCopy != address(0)) {
operatorFilterRegistry.registerAndCopyEntries(
address(this),
subscriptionOrRegistrantToCopy
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 23 : IERC721A.sol
1
2
3
4
5
6
7
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import '../IERC721A.sol';
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 23 : IERC4906.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
import '@openzeppelin/contracts/interfaces/IERC165.sol';
import 'erc721a/contracts/interfaces/IERC721A.sol';
interface IERC4906 is IERC165, IERC721A {
/// @dev This event emits when the metadata of a token is changed.
/// So that the third-party platforms such as NFT market could
/// timely update the images and related attributes of the NFT.
event MetadataUpdate(uint256 _tokenId);
/// @dev This event emits when the metadata of a range of tokens is changed.
/// So that the third-party platforms such as NFT market could
/// timely update the images and related attributes of the NFTs.
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);
/// @dev See {IERC165-supportsInterface}.
function supportsInterface(
bytes4 interfaceId
) external view override(IERC165, IERC721A) returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 18 of 23 : IERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
/**
* @dev Interface of ERC721A.
*/
interface IERC721A {
/**
* The caller must own the token or be an approved operator.
*/
error ApprovalCallerNotOwnerNorApproved();
/**
* The token does not exist.
*/
error ApprovalQueryForNonexistentToken();
/**
* The caller cannot approve to their own address.
*/
error ApproveToCaller();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 19 of 23 : IERC165.sol
1
2
3
4
5
6
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol)
pragma solidity ^0.8.0;
import "../utils/introspection/IERC165.sol";
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 20 of 23 : IERC721ABurnable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import '../IERC721A.sol';
/**
* @dev Interface of ERC721ABurnable.
*/
interface IERC721ABurnable is IERC721A {
/**
* @dev Burns `tokenId`. See {ERC721A-_burn}.
*
* Requirements:
*
* - The caller must own `tokenId` or be an approved operator.
*/
function burn(uint256 tokenId) external;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 21 of 23 : ERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721A.sol';
/**
* @dev Interface of ERC721 token receiver.
*/
interface ERC721A__IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
/**
* @title ERC721A
*
* @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)
* Non-Fungible Token Standard, including the Metadata extension.
* Optimized for lower gas during batch mints.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 22 of 23 : IOperatorFilterRegistry.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
interface IOperatorFilterRegistry {
function isOperatorAllowed(address registrant, address operator)
external
view
returns (bool);
function register(address registrant) external;
function registerAndSubscribe(address registrant, address subscription)
external;
function registerAndCopyEntries(
address registrant,
address registrantToCopy
) external;
function updateOperator(
address registrant,
address operator,
bool filtered
) external;
function updateOperators(
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 23 of 23 : Ownable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"optimizer": {
"enabled": true,
"runs": 1000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"contractMetadataUrl","type":"string"},{"internalType":"string","name":"tokenMetadataUrl","type":"string"},{"internalType":"bool","name":"allowBuy","type":"bool"},{"internalType":"bool","name":"allowPublicTransfer","type":"bool"},{"internalType":"bool","name":"enableOpenSeaOperatorFilterRegistry","type":"bool"},{"internalType":"uint256","name":"publicSaleDate","type":"uint256"},{"internalType":"uint256","name":"saleCloseDate","type":"uint256"},{"internalType":"uint256","name":"primaryRoyaltyFee","type":"uint256"},{"internalType":"uint256","name":"secondaryRoyaltyFee","type":"uint256"}],"internalType":"struct GeneralConfig","name":"_generalConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"maxPerTransaction","type":"uint256"}],"internalType":"struct TokenConfig","name":"_tokenConfig","type":"tuple"},{"components":[{"internalType":"address","name":"recoveryAddress","type":"address"},{"internalType":"address","name":"collectionOwnerAddress","type":"address"},{"internalType":"address","name":"authorisationAddress","type":"address"},{"internalType":"address","name":"purchaseTokenAddress","type":"address"},{"internalType":"address","name":"managerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"customerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"secondaryRoyaltyAddress","type":"address"}],"internalType":"struct Addresses","name":"_addresses","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"BuyDisabled","type":"error"},{"inputs":[],"name":"ContractCallBlocked","type":"error"},{"inputs":[],"name":"ImmutableRecoveryAddress","type":"error"},{"inputs":[],"name":"InsufficientPaymentValue","type":"error"},{"inputs":[],"name":"MaxPerAddressExceeded","type":"error"},{"inputs":[],"name":"MaxPerTransactionExceeded","type":"error"},{"inputs":[],"name":"MaxSupplyExceeded","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NewSupplyTooLow","type":"error"},{"inputs":[],"name":"NonExistentToken","type":"error"},{"inputs":[],"name":"NotAuthorised","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"PublicSaleClosed","type":"error"},{"inputs":[],"name":"SaleClosed","type":"error"},{"inputs":[],"name":"SignatureExpired","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"TransfersDisabled","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousContractManager","type":"address"},{"indexed":true,"internalType":"address","name":"newContractManager","type":"address"}],"name":"ContractManagerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","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":"addresses","outputs":[{"internalType":"address","name":"recoveryAddress","type":"address"},{"internalType":"address","name":"collectionOwnerAddress","type":"address"},{"internalType":"address","name":"authorisationAddress","type":"address"},{"internalType":"address","name":"purchaseTokenAddress","type":"address"},{"internalType":"address","name":"managerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"customerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"secondaryRoyaltyAddress","type":"address"}],"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":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_totalPrice","type":"uint256"},{"internalType":"uint256","name":"_maxPerAddress","type":"uint256"},{"internalType":"uint256","name":"_expires","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"buyAuthorised","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"contractManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"uri","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"generalConfig","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"contractMetadataUrl","type":"string"},{"internalType":"string","name":"tokenMetadataUrl","type":"string"},{"internalType":"bool","name":"allowBuy","type":"bool"},{"internalType":"bool","name":"allowPublicTransfer","type":"bool"},{"internalType":"bool","name":"enableOpenSeaOperatorFilterRegistry","type":"bool"},{"internalType":"uint256","name":"publicSaleDate","type":"uint256"},{"internalType":"uint256","name":"saleCloseDate","type":"uint256"},{"internalType":"uint256","name":"primaryRoyaltyFee","type":"uint256"},{"internalType":"uint256","name":"secondaryRoyaltyFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"collectionName","type":"string"}],"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":"recoverContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"royaltyAddress","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"recoveryAddress","type":"address"},{"internalType":"address","name":"collectionOwnerAddress","type":"address"},{"internalType":"address","name":"authorisationAddress","type":"address"},{"internalType":"address","name":"purchaseTokenAddress","type":"address"},{"internalType":"address","name":"managerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"customerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"secondaryRoyaltyAddress","type":"address"}],"internalType":"struct Addresses","name":"_addresses","type":"tuple"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowBuy","type":"bool"}],"name":"setAllowBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowPublicTransfer","type":"bool"}],"name":"setAllowPublicTransfer","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":"uint256","name":"_publicSale","type":"uint256"},{"internalType":"uint256","name":"_saleClosed","type":"uint256"}],"name":"setDates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"setEnableOpenSeaOperatorFilterRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_contractURI","type":"string"},{"internalType":"string","name":"_tokenURI","type":"string"}],"name":"setMetadataURIs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newName","type":"string"},{"internalType":"string","name":"_newSymbol","type":"string"}],"name":"setNameAndSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_primaryFee","type":"uint256"},{"internalType":"uint256","name":"_secondaryFee","type":"uint256"}],"name":"setRoyalty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"},{"internalType":"uint256","name":"_maxPerTransaction","type":"uint256"}],"name":"setTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"collectionSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenConfig","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"maxPerTransaction","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"uri","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"numMinted","type":"uint256"}],"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"},{"internalType":"uint256","name":"_expires","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"transferAuthorised","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newContractManager","type":"address"}],"name":"transferContractManager","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":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620043cc380380620043cc833981016040819052620000349162000740565b604080516020808201808452600080845284519283019094529281528151733cc6cdda760b79bafa08df41ecfa224f810dceb69360019392916200007b916002916200043f565b508051620000919060039060208401906200043f565b5050600160005550620000a4336200039b565b6daaeb6d7670e522a718067333cd4e3b15620001e95780156200013757604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200011857600080fd5b505af11580156200012d573d6000803e3d6000fd5b50505050620001e9565b6001600160a01b03821615620001885760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000fd565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001cf57600080fd5b505af1158015620001e4573d6000803e3d6000fd5b505050505b50506020810151620001fb90620003ed565b825180518491600a91620002179183916020909101906200043f565b5060208281015180516200023292600185019201906200043f565b5060408201518051620002509160028401916020909101906200043f565b50606082015180516200026e9160038401916020909101906200043f565b5060808281015160048301805460a08087015160c08089015161ffff1990941695151561ff0019169590951761010091151582021762ff0000191662010000931515939093029290921790925560e08601516005860155850151600685015561012085015160078501556101409094015160089093019290925584516013556020808601516014556040958601516015558451601680546001600160a01b03199081166001600160a01b03938416179091559186015160178054841691831691909117905595850151601880548316918816919091179055606085015160198054831691881691909117905590840151601a8054831691871691909117905591830151601b805484169186169190911790559190910151601c8054909216921691909117905550620008f4565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fb4f5c581870540f90f9705018e944972197c5be2aa889f6bb847b6cd2236e190600090a35050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200044d90620008b7565b90600052602060002090601f016020900481019282620004715760008555620004bc565b82601f106200048c57805160ff1916838001178555620004bc565b82800160010185558215620004bc579182015b82811115620004bc5782518255916020019190600101906200049f565b50620004ca929150620004ce565b5090565b5b80821115620004ca5760008155600101620004cf565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715620005215762000521620004e5565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620005525762000552620004e5565b604052919050565b600082601f8301126200056c57600080fd5b81516001600160401b03811115620005885762000588620004e5565b60206200059e601f8301601f1916820162000527565b8281528582848701011115620005b357600080fd5b60005b83811015620005d3578581018301518282018401528201620005b6565b83811115620005e55760008385840101525b5095945050505050565b805180151581146200060057600080fd5b919050565b6000606082840312156200061857600080fd5b604051606081016001600160401b03811182821017156200063d576200063d620004e5565b80604052508091508251815260208301516020820152604083015160408201525092915050565b80516001600160a01b03811681146200060057600080fd5b600060e082840312156200068f57600080fd5b60405160e081016001600160401b0381118282101715620006b457620006b4620004e5565b604052905080620006c58362000664565b8152620006d56020840162000664565b6020820152620006e86040840162000664565b6040820152620006fb6060840162000664565b60608201526200070e6080840162000664565b60808201526200072160a0840162000664565b60a08201526200073460c0840162000664565b60c08201525092915050565b60008060006101608085870312156200075857600080fd5b84516001600160401b03808211156200077057600080fd5b81870191508282890312156200078557600080fd5b6200078f620004fb565b9250815181811115620007a157600080fd5b620007af898285016200055a565b845250602082015181811115620007c557600080fd5b620007d3898285016200055a565b602085015250604082015181811115620007ec57600080fd5b620007fa898285016200055a565b6040850152506060820151818111156200081357600080fd5b62000821898285016200055a565b606085015250506200083660808201620005ef565b60808301526200084960a08201620005ef565b60a08301526200085c60c08201620005ef565b60c083015260e0818101519083015261010080820151908301526101208082015190830152610140908101519082015292506200089d856020860162000605565b9150620008ae85608086016200067c565b90509250925092565b600181811c90821680620008cc57607f821691505b60208210811415620008ee57634e487b7160e01b600052602260045260246000fd5b50919050565b613ac880620009046000396000f3fe6080604052600436106102d05760003560e01c806382875f7911610179578063b39e12cf116100d6578063d96a094a1161008a578063e8a3d48511610064578063e8a3d48514610887578063e985e9c51461089c578063f2fde38b146108e557600080fd5b8063d96a094a146107c6578063da0321cd146107d9578063dedf141e1461086757600080fd5b8063ba9341c0116100bb578063ba9341c01461074c578063c87b56dd14610786578063d6046836146107a657600080fd5b8063b39e12cf1461070e578063b88d4fde1461072c57600080fd5b806395d89b411161012d578063ae0aa35b11610112578063ae0aa35b146106ae578063aeb2de35146106ce578063b375d492146106ee57600080fd5b806395d89b4114610679578063a22cb4651461068e57600080fd5b80638da5cb5b1161015e5780638da5cb5b1461060f578063927a97a11461062d578063933a6f0d1461065957600080fd5b806382875f79146105e75780638bc3bdec146105fc57600080fd5b80632843e3441161023257806358939061116101e657806370a08231116101c057806370a0823114610592578063715018a6146105b25780637c88e3d9146105c757600080fd5b806358939061146105325780635a446215146105525780636352211e1461057257600080fd5b806342842e0e1161021757806342842e0e146104a957806342966c68146104c957806354fd4d50146104e957600080fd5b80632843e3441461044a5780632a55205a1461046a57600080fd5b8063095ea7b31161028957806318160ddd1161026e57806318160ddd146103ed57806323b872dd1461040a5780632541b0911461042a57600080fd5b8063095ea7b3146103ab578063166d44ea146103cd57600080fd5b8063047fc9aa116102ba578063047fc9aa1461033857806306fdde0314610351578063081812fc1461037357600080fd5b80623d4790146102d557806301ffc9a714610308575b600080fd5b3480156102e157600080fd5b506102f56102f0366004613111565b610905565b6040519081526020015b60405180910390f35b34801561031457600080fd5b50610328610323366004613144565b610932565b60405190151581526020016102ff565b34801561034457600080fd5b50600054600019016102f5565b34801561035d57600080fd5b506103666109a4565b6040516102ff91906131b9565b34801561037f57600080fd5b5061039361038e3660046131cc565b610a39565b6040516001600160a01b0390911681526020016102ff565b3480156103b757600080fd5b506103cb6103c63660046131e5565b610a96565b005b3480156103d957600080fd5b506103cb6103e836600461321f565b610b4f565b3480156103f957600080fd5b5060015460005403600019016102f5565b34801561041657600080fd5b506103cb61042536600461323c565b610bd3565b34801561043657600080fd5b506103cb6104453660046132bf565b610daf565b34801561045657600080fd5b506103cb61046536600461333b565b610f2d565b34801561047657600080fd5b5061048a610485366004613367565b610fe6565b604080516001600160a01b0390931683526020830191909152016102ff565b3480156104b557600080fd5b506103cb6104c436600461323c565b61101c565b3480156104d557600080fd5b506103cb6104e43660046131cc565b61103c565b3480156104f557600080fd5b506103666040518060400160405280600581526020017f322e322e3000000000000000000000000000000000000000000000000000000081525081565b34801561053e57600080fd5b506103cb61054d36600461321f565b61104a565b34801561055e57600080fd5b506103cb61056d366004613389565b6110cb565b34801561057e57600080fd5b5061039361058d3660046131cc565b611150565b34801561059e57600080fd5b506102f56105ad366004613111565b61115b565b3480156105be57600080fd5b506103cb6111c3565b3480156105d357600080fd5b506103cb6105e236600461343a565b611229565b3480156105f357600080fd5b506103cb611353565b6103cb61060a36600461349a565b611393565b34801561061b57600080fd5b506008546001600160a01b0316610393565b34801561063957600080fd5b5061064261158c565b6040516102ff9b9a999897969594939291906134e6565b34801561066557600080fd5b506103cb610674366004613367565b6117f9565b34801561068557600080fd5b50610366611869565b34801561069a57600080fd5b506103cb6106a9366004613573565b61187b565b3480156106ba57600080fd5b506103cb6106c9366004613111565b61192a565b3480156106da57600080fd5b506103cb6106e9366004613389565b611a14565b3480156106fa57600080fd5b506103cb6107093660046135ac565b611af9565b34801561071a57600080fd5b506009546001600160a01b0316610393565b34801561073857600080fd5b506103cb6107473660046135da565b611c01565b34801561075857600080fd5b5060135460145460155461076b92919083565b604080519384526020840192909252908201526060016102ff565b34801561079257600080fd5b506103666107a13660046131cc565b611c45565b3480156107b257600080fd5b506103cb6107c136600461321f565b611cb8565b6103cb6107d43660046131cc565b611d30565b3480156107e557600080fd5b50601654601754601854601954601a54601b54601c5461081e966001600160a01b03908116968116958116948116938116928116911687565b604080516001600160a01b039889168152968816602088015294871694860194909452918516606085015284166080840152831660a083015290911660c082015260e0016102ff565b34801561087357600080fd5b506103cb610882366004613367565b611ddb565b34801561089357600080fd5b50610366611e4b565b3480156108a857600080fd5b506103286108b73660046136ba565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156108f157600080fd5b506103cb610900366004613111565b611e5d565b6001600160a01b0381166000908152600560205260408082205467ffffffffffffffff911c165b92915050565b60006001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000148061099557506001600160e01b031982167f4906490600000000000000000000000000000000000000000000000000000000145b8061092c575061092c82611f3c565b6060600a60000180546109b6906136e8565b80601f01602080910402602001604051908101604052809291908181526020018280546109e2906136e8565b8015610a2f5780601f10610a0457610100808354040283529160200191610a2f565b820191906000526020600020905b815481529060010190602001808311610a1257829003601f168201915b5050505050905090565b6000610a4482611fd5565b610a7a576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610aa182611150565b9050336001600160a01b03821614610af357610abd81336108b7565b610af3576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6009546001600160a01b0316336001600160a01b031614610bb95760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b60648201526084015b60405180910390fd5b600e80549115156101000261ff0019909216919091179055565b6000610bde8261200a565b9050836001600160a01b0316816001600160a01b031614610c2b576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604090208054610c578187335b6001600160a01b039081169116811491141790565b610c8257610c6586336108b7565b610c8257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610cc2576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ccf8686866001612093565b8015610cda57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040902055600160e11b8316610d655760018401600081815260046020526040902054610d63576000548114610d635760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b323314610dcf57604051633ebb273b60e21b815260040160405180910390fd5b824210610def57604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff1990811660208085019190915233831b821660348501528a831b821660488501529189901b16605c8301526070820187905260908083018790528351808403909101815260b0830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060d084015260ec8084018290528451808503909101815261010c9093019093528151910120600090601854604080516020601f88018190048102820181019092528681529293506001600160a01b0390911691610ef191849190889088908190840183828082843760009201919091525061234a92505050565b6001600160a01b031614610f1857604051631648fd0160e01b815260040160405180910390fd5b610f2388888861101c565b5050505050505050565b6009546001600160a01b0316336001600160a01b031614610f925760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b60015460005483919003600019011115610fd8576040517f1d77a89900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601392909255601455601555565b601c546012546001600160a01b0390911690600090612710906110099085613733565b6110139190613752565b90509250929050565b61103783838360405180602001604052806000815250611c01565b505050565b61104781600161236e565b50565b6009546001600160a01b0316336001600160a01b0316146110af5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b600e8054911515620100000262ff000019909216919091179055565b6009546001600160a01b0316336001600160a01b0316146111305760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b61113c600a8585613063565b50611149600b8383613063565b5050505050565b600061092c8261200a565b60006001600160a01b03821661119d576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6008546001600160a01b0316331461121d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bb0565b61122760006124d8565b565b6009546001600160a01b0316336001600160a01b03161461128e5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b3233146112ae57604051633ebb273b60e21b815260040160405180910390fd5b8260005b81811015610da75760008686838181106112ce576112ce613774565b90506020020160208101906112e39190613111565b905060008585848181106112f9576112f9613774565b905060200201359050601360010154816113166000546000190190565b611320919061378a565b111561133f57604051638a164f6360e01b815260040160405180910390fd5b611349828261252a565b50506001016112b2565b6016546001600160a01b0316331461137e57604051631648fd0160e01b815260040160405180910390fd5b601654611227906001600160a01b0316612661565b600e5460ff166113b657604051639d7da54560e01b815260040160405180910390fd5b3233146113d657604051633ebb273b60e21b815260040160405180910390fd5b8242106113f657604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff199081166020808501919091523390921b16603483015260488201899052606882018890526088820187905260a88083018790528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401829052845180850390910181526101249093019093528151910120600090601854604080516020601f88018190048102820181019092528681529293506001600160a01b03909116916114f391849190889088908190840183828082843760009201919091525061234a92505050565b6001600160a01b03161461151a57604051631648fd0160e01b815260040160405180910390fd5b851561158257336000908152600560205260409081902054879161154a918b911c67ffffffffffffffff1661378a565b1115611582576040517f550ffa9c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f2388886126b3565b600a8054819061159b906136e8565b80601f01602080910402602001604051908101604052809291908181526020018280546115c7906136e8565b80156116145780601f106115e957610100808354040283529160200191611614565b820191906000526020600020905b8154815290600101906020018083116115f757829003601f168201915b505050505090806001018054611629906136e8565b80601f0160208091040260200160405190810160405280929190818152602001828054611655906136e8565b80156116a25780601f10611677576101008083540402835291602001916116a2565b820191906000526020600020905b81548152906001019060200180831161168557829003601f168201915b5050505050908060020180546116b7906136e8565b80601f01602080910402602001604051908101604052809291908181526020018280546116e3906136e8565b80156117305780601f1061170557610100808354040283529160200191611730565b820191906000526020600020905b81548152906001019060200180831161171357829003601f168201915b505050505090806003018054611745906136e8565b80601f0160208091040260200160405190810160405280929190818152602001828054611771906136e8565b80156117be5780601f10611793576101008083540402835291602001916117be565b820191906000526020600020905b8154815290600101906020018083116117a157829003601f168201915b505050506004830154600584015460068501546007860154600890960154949560ff808516966101008604821696506201000090950416938b565b6009546001600160a01b0316336001600160a01b03161461185e5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b601191909155601255565b6060600a60010180546109b6906136e8565b6001600160a01b0382163314156118be576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6009546001600160a01b0316336001600160a01b03161461198f5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b6001600160a01b038116611a0b5760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c653a206e657720636f6e7472616374206f776e6572206973207460448201527f6865207a65726f206164647265737300000000000000000000000000000000006064820152608401610bb0565b61104781612661565b6009546001600160a01b0316336001600160a01b031614611a795760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b611a85600c8585613063565b50611a92600d8383613063565b50600154600054036000190115611af3577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180611ad060005490565b611ada91906137a2565b6040805192835260208301919091520160405180910390a15b50505050565b6009546001600160a01b0316336001600160a01b031614611b5e5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b6016546001600160a01b0316611b776020830183613111565b6001600160a01b031614611bb7576040517f9598453c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bc76040820160208301613111565b6017546001600160a01b03908116911614611bf457611bf4611bef6040830160208401613111565b6124d8565b80601661103782826137b9565b611c0c848484610bd3565b6001600160a01b0383163b15611af357611c28848484846128bd565b611af3576040516368d2bf6b60e11b815260040160405180910390fd5b6060611c5082611fd5565b611c86576040517f9430a17e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d611c91836129a5565b604051602001611ca2929190613906565b6040516020818303038152906040529050919050565b6009546001600160a01b0316336001600160a01b031614611d1d5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b600e805460ff1916911515919091179055565b600e5460ff16611d5357604051639d7da54560e01b815260040160405180910390fd5b323314611d7357604051633ebb273b60e21b815260040160405180910390fd5b600f541580611d835750600f5442105b15611dba576040517fdd4e010600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601354600090611dcb908390613733565b9050611dd782826126b3565b5050565b6009546001600160a01b0316336001600160a01b031614611e405760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b600f91909155601055565b6060600a60020180546109b6906136e8565b6008546001600160a01b03163314611eb75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bb0565b6001600160a01b038116611f335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610bb0565b611047816124d8565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161480611f9f57507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061092c5750506001600160e01b0319167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b600081600111158015611fe9575060005482105b801561092c575050600090815260046020526040902054600160e01b161590565b600081806001116120615760005481101561206157600081815260046020526040902054600160e01b811661205f575b8061205857506000190160008181526004602052604090205461203a565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517fb39e12cf0000000000000000000000000000000000000000000000000000000081529051859185916001600160a01b0380851615929084161591600091309163b39e12cf916004808201926020929091908290030181865afa158015612102573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212691906139ad565b6001600160a01b0386811691161490506000356001600160e01b0319167f2541b091000000000000000000000000000000000000000000000000000000001483158015612171575081155b801561217b575082155b8015612185575080155b156121cb57600e54610100900460ff166121cb576040517f8574adcf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e548a9062010000900460ff16806121e35761233c565b6daaeb6d7670e522a718067333cd4e3b1561233c576001600160a01b03821633141561220e5761233c565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561225d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228191906139ca565b80156123045750604051633185c44d60e21b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156122e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230491906139ca565b61233c576040517fede71dcc000000000000000000000000000000000000000000000000000000008152336004820152602401610bb0565b505050505050505050505050565b600080600061235985856129f4565b9150915061236681612a64565b509392505050565b60006123798361200a565b90508060008061239786600090815260066020526040902080549091565b9150915084156123d7576123ac818433610c42565b6123d7576123ba83336108b7565b6123d757604051632ce44b5f60e11b815260040160405180910390fd5b6123e5836000886001612093565b80156123f057600082555b6001600160a01b038316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b177c030000000000000000000000000000000000000000000000000000000017600087815260046020526040902055600160e11b8416612490576001860160008181526004602052604090205461248e57600054811461248e5760008181526004602052604090208590555b505b60405186906000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050600180548101905550505050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005481612564576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125716000848385612093565b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461262057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016125e8565b5081612658576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fb4f5c581870540f90f9705018e944972197c5be2aa889f6bb847b6cd2236e190600090a35050565b601054156126f65760105442106126f6576040517f4c013bd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601454826127076000546000190190565b612711919061378a565b111561273057604051638a164f6360e01b815260040160405180910390fd5b6015541561277457601554821115612774576040517f9782cdff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601154600090612710906127889084613733565b6127929190613752565b6019549091506001600160a01b0316156127fb57601954601a546001600160a01b03918216916127c791839133911685612c1f565b601b546127f59033906001600160a01b03166127e385876137a2565b6001600160a01b038516929190612c1f565b506128b3565b81341015612835576040517f7e6fc84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561286f573d6000803e3d6000fd5b50601b546001600160a01b03166108fc61288983856137a2565b6040518115909202916000818181858888f193505050501580156128b1573d6000803e3d6000fd5b505b611037338461252a565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906128f29033908990889088906004016139e7565b6020604051808303816000875af192505050801561292d575060408051601f3d908101601f1916820190925261292a91810190613a23565b60015b612988573d80801561295b576040519150601f19603f3d011682016040523d82523d6000602084013e612960565b606091505b508051612980576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b604080516080810191829052607f0190826030600a8206018353600a90045b80156129e257600183039250600a81066030018353600a90046129c4565b50819003601f19909101908152919050565b600080825160411415612a2b5760208301516040840151606085015160001a612a1f87828585612ca7565b94509450505050612a5d565b825160401415612a555760208301516040840151612a4a868383612d94565b935093505050612a5d565b506000905060025b9250929050565b6000816004811115612a7857612a78613a40565b1415612a815750565b6001816004811115612a9557612a95613a40565b1415612ae35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610bb0565b6002816004811115612af757612af7613a40565b1415612b455760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610bb0565b6003816004811115612b5957612b59613a40565b1415612bb25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610bb0565b6004816004811115612bc657612bc6613a40565b14156110475760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610bb0565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611af3908590612de6565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612cde5750600090506003612d8b565b8460ff16601b14158015612cf657508460ff16601c14155b15612d075750600090506004612d8b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612d5b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612d8457600060019250925050612d8b565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831681612dca60ff86901c601b61378a565b9050612dd887828885612ca7565b935093505050935093915050565b6000612e3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ecb9092919063ffffffff16565b8051909150156110375780806020019051810190612e5991906139ca565b6110375760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610bb0565b6060612eda8484600085612ee2565b949350505050565b606082471015612f5a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610bb0565b6001600160a01b0385163b612fb15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bb0565b600080866001600160a01b03168587604051612fcd9190613a56565b60006040518083038185875af1925050503d806000811461300a576040519150601f19603f3d011682016040523d82523d6000602084013e61300f565b606091505b509150915061301f82828661302a565b979650505050505050565b60608315613039575081612058565b8251156130495782518084602001fd5b8160405162461bcd60e51b8152600401610bb091906131b9565b82805461306f906136e8565b90600052602060002090601f01602090048101928261309157600085556130d7565b82601f106130aa5782800160ff198235161785556130d7565b828001600101855582156130d7579182015b828111156130d75782358255916020019190600101906130bc565b506130e39291506130e7565b5090565b5b808211156130e357600081556001016130e8565b6001600160a01b038116811461104757600080fd5b60006020828403121561312357600080fd5b8135612058816130fc565b6001600160e01b03198116811461104757600080fd5b60006020828403121561315657600080fd5b81356120588161312e565b60005b8381101561317c578181015183820152602001613164565b83811115611af35750506000910152565b600081518084526131a5816020860160208601613161565b601f01601f19169290920160200192915050565b602081526000612058602083018461318d565b6000602082840312156131de57600080fd5b5035919050565b600080604083850312156131f857600080fd5b8235613203816130fc565b946020939093013593505050565b801515811461104757600080fd5b60006020828403121561323157600080fd5b813561205881613211565b60008060006060848603121561325157600080fd5b833561325c816130fc565b9250602084013561326c816130fc565b929592945050506040919091013590565b60008083601f84011261328f57600080fd5b50813567ffffffffffffffff8111156132a757600080fd5b602083019150836020828501011115612a5d57600080fd5b60008060008060008060a087890312156132d857600080fd5b86356132e3816130fc565b955060208701356132f3816130fc565b94506040870135935060608701359250608087013567ffffffffffffffff81111561331d57600080fd5b61332989828a0161327d565b979a9699509497509295939492505050565b60008060006060848603121561335057600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561337a57600080fd5b50508035926020909101359150565b6000806000806040858703121561339f57600080fd5b843567ffffffffffffffff808211156133b757600080fd5b6133c38883890161327d565b909650945060208701359150808211156133dc57600080fd5b506133e98782880161327d565b95989497509550505050565b60008083601f84011261340757600080fd5b50813567ffffffffffffffff81111561341f57600080fd5b6020830191508360208260051b8501011115612a5d57600080fd5b6000806000806040858703121561345057600080fd5b843567ffffffffffffffff8082111561346857600080fd5b613474888389016133f5565b9096509450602087013591508082111561348d57600080fd5b506133e9878288016133f5565b60008060008060008060a087890312156134b357600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff81111561331d57600080fd5b60006101608083526134fa8184018f61318d565b9050828103602084015261350e818e61318d565b90508281036040840152613522818d61318d565b90508281036060840152613536818c61318d565b9915156080840152505095151560a087015293151560c086015260e085019290925261010084015261012083015261014090910152949350505050565b6000806040838503121561358657600080fd5b8235613591816130fc565b915060208301356135a181613211565b809150509250929050565b600060e082840312156135be57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156135f057600080fd5b84356135fb816130fc565b9350602085013561360b816130fc565b925060408501359150606085013567ffffffffffffffff8082111561362f57600080fd5b818701915087601f83011261364357600080fd5b813581811115613655576136556135c4565b604051601f8201601f19908116603f0116810190838211818310171561367d5761367d6135c4565b816040528281528a602084870101111561369657600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156136cd57600080fd5b82356136d8816130fc565b915060208301356135a1816130fc565b600181811c908216806136fc57607f821691505b602082108114156135be57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561374d5761374d61371d565b500290565b60008261376f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000821982111561379d5761379d61371d565b500190565b6000828210156137b4576137b461371d565b500390565b81356137c4816130fc565b81546001600160a01b0319166001600160a01b0382161782555060208201356137ec816130fc565b6001820180546001600160a01b0319166001600160a01b038316179055506040820135613818816130fc565b6002820180546001600160a01b0319166001600160a01b038316179055506060820135613844816130fc565b6003820180546001600160a01b0319166001600160a01b038316179055506080820135613870816130fc565b6004820180546001600160a01b0319166001600160a01b0383161790555060a082013561389c816130fc565b6005820180546001600160a01b0319166001600160a01b0383161790555060c08201356138c8816130fc565b6006820180546001600160a01b0319166001600160a01b038316179055505050565b600081516138fc818560208601613161565b9290920192915050565b600080845481600182811c91508083168061392257607f831692505b602080841082141561394257634e487b7160e01b86526022600452602486fd5b818015613956576001811461396757613994565b60ff19861689528489019650613994565b60008b81526020902060005b8681101561398c5781548b820152908501908301613973565b505084890196505b5050505050506139a481856138ea565b95945050505050565b6000602082840312156139bf57600080fd5b8151612058816130fc565b6000602082840312156139dc57600080fd5b815161205881613211565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613a19608083018461318d565b9695505050505050565b600060208284031215613a3557600080fd5b81516120588161312e565b634e487b7160e01b600052602160045260246000fd5b60008251613a68818460208701613161565b919091019291505056fe4f776e61626c653a2063616c6c6572206973206e6f742074686520636f6e7472a2646970667358221220a87ecde62fee149312fcda6ed3f0c13de955fbdc66b386fb6fae877c53bdcbfc64736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ef9e1410715dbdddbdb55947f816ab1a72348c1000000000000000000000000775a56c249d89d9b080335f4d8d5200935739e690000000000000000000000005a3d7b7dad2a7ffe7f3ce3f761e3c99b4025be18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062d516276381042016b38b65c89c05ea59ccb13b000000000000000000000000775a56c249d89d9b080335f4d8d5200935739e69000000000000000000000000775a56c249d89d9b080335f4d8d5200935739e69000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000a546f6164205661706573000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002545600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102d05760003560e01c806382875f7911610179578063b39e12cf116100d6578063d96a094a1161008a578063e8a3d48511610064578063e8a3d48514610887578063e985e9c51461089c578063f2fde38b146108e557600080fd5b8063d96a094a146107c6578063da0321cd146107d9578063dedf141e1461086757600080fd5b8063ba9341c0116100bb578063ba9341c01461074c578063c87b56dd14610786578063d6046836146107a657600080fd5b8063b39e12cf1461070e578063b88d4fde1461072c57600080fd5b806395d89b411161012d578063ae0aa35b11610112578063ae0aa35b146106ae578063aeb2de35146106ce578063b375d492146106ee57600080fd5b806395d89b4114610679578063a22cb4651461068e57600080fd5b80638da5cb5b1161015e5780638da5cb5b1461060f578063927a97a11461062d578063933a6f0d1461065957600080fd5b806382875f79146105e75780638bc3bdec146105fc57600080fd5b80632843e3441161023257806358939061116101e657806370a08231116101c057806370a0823114610592578063715018a6146105b25780637c88e3d9146105c757600080fd5b806358939061146105325780635a446215146105525780636352211e1461057257600080fd5b806342842e0e1161021757806342842e0e146104a957806342966c68146104c957806354fd4d50146104e957600080fd5b80632843e3441461044a5780632a55205a1461046a57600080fd5b8063095ea7b31161028957806318160ddd1161026e57806318160ddd146103ed57806323b872dd1461040a5780632541b0911461042a57600080fd5b8063095ea7b3146103ab578063166d44ea146103cd57600080fd5b8063047fc9aa116102ba578063047fc9aa1461033857806306fdde0314610351578063081812fc1461037357600080fd5b80623d4790146102d557806301ffc9a714610308575b600080fd5b3480156102e157600080fd5b506102f56102f0366004613111565b610905565b6040519081526020015b60405180910390f35b34801561031457600080fd5b50610328610323366004613144565b610932565b60405190151581526020016102ff565b34801561034457600080fd5b50600054600019016102f5565b34801561035d57600080fd5b506103666109a4565b6040516102ff91906131b9565b34801561037f57600080fd5b5061039361038e3660046131cc565b610a39565b6040516001600160a01b0390911681526020016102ff565b3480156103b757600080fd5b506103cb6103c63660046131e5565b610a96565b005b3480156103d957600080fd5b506103cb6103e836600461321f565b610b4f565b3480156103f957600080fd5b5060015460005403600019016102f5565b34801561041657600080fd5b506103cb61042536600461323c565b610bd3565b34801561043657600080fd5b506103cb6104453660046132bf565b610daf565b34801561045657600080fd5b506103cb61046536600461333b565b610f2d565b34801561047657600080fd5b5061048a610485366004613367565b610fe6565b604080516001600160a01b0390931683526020830191909152016102ff565b3480156104b557600080fd5b506103cb6104c436600461323c565b61101c565b3480156104d557600080fd5b506103cb6104e43660046131cc565b61103c565b3480156104f557600080fd5b506103666040518060400160405280600581526020017f322e322e3000000000000000000000000000000000000000000000000000000081525081565b34801561053e57600080fd5b506103cb61054d36600461321f565b61104a565b34801561055e57600080fd5b506103cb61056d366004613389565b6110cb565b34801561057e57600080fd5b5061039361058d3660046131cc565b611150565b34801561059e57600080fd5b506102f56105ad366004613111565b61115b565b3480156105be57600080fd5b506103cb6111c3565b3480156105d357600080fd5b506103cb6105e236600461343a565b611229565b3480156105f357600080fd5b506103cb611353565b6103cb61060a36600461349a565b611393565b34801561061b57600080fd5b506008546001600160a01b0316610393565b34801561063957600080fd5b5061064261158c565b6040516102ff9b9a999897969594939291906134e6565b34801561066557600080fd5b506103cb610674366004613367565b6117f9565b34801561068557600080fd5b50610366611869565b34801561069a57600080fd5b506103cb6106a9366004613573565b61187b565b3480156106ba57600080fd5b506103cb6106c9366004613111565b61192a565b3480156106da57600080fd5b506103cb6106e9366004613389565b611a14565b3480156106fa57600080fd5b506103cb6107093660046135ac565b611af9565b34801561071a57600080fd5b506009546001600160a01b0316610393565b34801561073857600080fd5b506103cb6107473660046135da565b611c01565b34801561075857600080fd5b5060135460145460155461076b92919083565b604080519384526020840192909252908201526060016102ff565b34801561079257600080fd5b506103666107a13660046131cc565b611c45565b3480156107b257600080fd5b506103cb6107c136600461321f565b611cb8565b6103cb6107d43660046131cc565b611d30565b3480156107e557600080fd5b50601654601754601854601954601a54601b54601c5461081e966001600160a01b03908116968116958116948116938116928116911687565b604080516001600160a01b039889168152968816602088015294871694860194909452918516606085015284166080840152831660a083015290911660c082015260e0016102ff565b34801561087357600080fd5b506103cb610882366004613367565b611ddb565b34801561089357600080fd5b50610366611e4b565b3480156108a857600080fd5b506103286108b73660046136ba565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156108f157600080fd5b506103cb610900366004613111565b611e5d565b6001600160a01b0381166000908152600560205260408082205467ffffffffffffffff911c165b92915050565b60006001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000148061099557506001600160e01b031982167f4906490600000000000000000000000000000000000000000000000000000000145b8061092c575061092c82611f3c565b6060600a60000180546109b6906136e8565b80601f01602080910402602001604051908101604052809291908181526020018280546109e2906136e8565b8015610a2f5780601f10610a0457610100808354040283529160200191610a2f565b820191906000526020600020905b815481529060010190602001808311610a1257829003601f168201915b5050505050905090565b6000610a4482611fd5565b610a7a576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610aa182611150565b9050336001600160a01b03821614610af357610abd81336108b7565b610af3576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6009546001600160a01b0316336001600160a01b031614610bb95760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b60648201526084015b60405180910390fd5b600e80549115156101000261ff0019909216919091179055565b6000610bde8261200a565b9050836001600160a01b0316816001600160a01b031614610c2b576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604090208054610c578187335b6001600160a01b039081169116811491141790565b610c8257610c6586336108b7565b610c8257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610cc2576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ccf8686866001612093565b8015610cda57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040902055600160e11b8316610d655760018401600081815260046020526040902054610d63576000548114610d635760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b323314610dcf57604051633ebb273b60e21b815260040160405180910390fd5b824210610def57604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff1990811660208085019190915233831b821660348501528a831b821660488501529189901b16605c8301526070820187905260908083018790528351808403909101815260b0830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060d084015260ec8084018290528451808503909101815261010c9093019093528151910120600090601854604080516020601f88018190048102820181019092528681529293506001600160a01b0390911691610ef191849190889088908190840183828082843760009201919091525061234a92505050565b6001600160a01b031614610f1857604051631648fd0160e01b815260040160405180910390fd5b610f2388888861101c565b5050505050505050565b6009546001600160a01b0316336001600160a01b031614610f925760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b60015460005483919003600019011115610fd8576040517f1d77a89900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601392909255601455601555565b601c546012546001600160a01b0390911690600090612710906110099085613733565b6110139190613752565b90509250929050565b61103783838360405180602001604052806000815250611c01565b505050565b61104781600161236e565b50565b6009546001600160a01b0316336001600160a01b0316146110af5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b600e8054911515620100000262ff000019909216919091179055565b6009546001600160a01b0316336001600160a01b0316146111305760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b61113c600a8585613063565b50611149600b8383613063565b5050505050565b600061092c8261200a565b60006001600160a01b03821661119d576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6008546001600160a01b0316331461121d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bb0565b61122760006124d8565b565b6009546001600160a01b0316336001600160a01b03161461128e5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b3233146112ae57604051633ebb273b60e21b815260040160405180910390fd5b8260005b81811015610da75760008686838181106112ce576112ce613774565b90506020020160208101906112e39190613111565b905060008585848181106112f9576112f9613774565b905060200201359050601360010154816113166000546000190190565b611320919061378a565b111561133f57604051638a164f6360e01b815260040160405180910390fd5b611349828261252a565b50506001016112b2565b6016546001600160a01b0316331461137e57604051631648fd0160e01b815260040160405180910390fd5b601654611227906001600160a01b0316612661565b600e5460ff166113b657604051639d7da54560e01b815260040160405180910390fd5b3233146113d657604051633ebb273b60e21b815260040160405180910390fd5b8242106113f657604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff199081166020808501919091523390921b16603483015260488201899052606882018890526088820187905260a88083018790528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401829052845180850390910181526101249093019093528151910120600090601854604080516020601f88018190048102820181019092528681529293506001600160a01b03909116916114f391849190889088908190840183828082843760009201919091525061234a92505050565b6001600160a01b03161461151a57604051631648fd0160e01b815260040160405180910390fd5b851561158257336000908152600560205260409081902054879161154a918b911c67ffffffffffffffff1661378a565b1115611582576040517f550ffa9c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f2388886126b3565b600a8054819061159b906136e8565b80601f01602080910402602001604051908101604052809291908181526020018280546115c7906136e8565b80156116145780601f106115e957610100808354040283529160200191611614565b820191906000526020600020905b8154815290600101906020018083116115f757829003601f168201915b505050505090806001018054611629906136e8565b80601f0160208091040260200160405190810160405280929190818152602001828054611655906136e8565b80156116a25780601f10611677576101008083540402835291602001916116a2565b820191906000526020600020905b81548152906001019060200180831161168557829003601f168201915b5050505050908060020180546116b7906136e8565b80601f01602080910402602001604051908101604052809291908181526020018280546116e3906136e8565b80156117305780601f1061170557610100808354040283529160200191611730565b820191906000526020600020905b81548152906001019060200180831161171357829003601f168201915b505050505090806003018054611745906136e8565b80601f0160208091040260200160405190810160405280929190818152602001828054611771906136e8565b80156117be5780601f10611793576101008083540402835291602001916117be565b820191906000526020600020905b8154815290600101906020018083116117a157829003601f168201915b505050506004830154600584015460068501546007860154600890960154949560ff808516966101008604821696506201000090950416938b565b6009546001600160a01b0316336001600160a01b03161461185e5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b601191909155601255565b6060600a60010180546109b6906136e8565b6001600160a01b0382163314156118be576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6009546001600160a01b0316336001600160a01b03161461198f5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b6001600160a01b038116611a0b5760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c653a206e657720636f6e7472616374206f776e6572206973207460448201527f6865207a65726f206164647265737300000000000000000000000000000000006064820152608401610bb0565b61104781612661565b6009546001600160a01b0316336001600160a01b031614611a795760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b611a85600c8585613063565b50611a92600d8383613063565b50600154600054036000190115611af3577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180611ad060005490565b611ada91906137a2565b6040805192835260208301919091520160405180910390a15b50505050565b6009546001600160a01b0316336001600160a01b031614611b5e5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b6016546001600160a01b0316611b776020830183613111565b6001600160a01b031614611bb7576040517f9598453c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bc76040820160208301613111565b6017546001600160a01b03908116911614611bf457611bf4611bef6040830160208401613111565b6124d8565b80601661103782826137b9565b611c0c848484610bd3565b6001600160a01b0383163b15611af357611c28848484846128bd565b611af3576040516368d2bf6b60e11b815260040160405180910390fd5b6060611c5082611fd5565b611c86576040517f9430a17e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d611c91836129a5565b604051602001611ca2929190613906565b6040516020818303038152906040529050919050565b6009546001600160a01b0316336001600160a01b031614611d1d5760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b600e805460ff1916911515919091179055565b600e5460ff16611d5357604051639d7da54560e01b815260040160405180910390fd5b323314611d7357604051633ebb273b60e21b815260040160405180910390fd5b600f541580611d835750600f5442105b15611dba576040517fdd4e010600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601354600090611dcb908390613733565b9050611dd782826126b3565b5050565b6009546001600160a01b0316336001600160a01b031614611e405760405162461bcd60e51b815260206004820152602b6024820152600080516020613a7383398151915260448201526a30b1ba1036b0b730b3b2b960a91b6064820152608401610bb0565b600f91909155601055565b6060600a60020180546109b6906136e8565b6008546001600160a01b03163314611eb75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bb0565b6001600160a01b038116611f335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610bb0565b611047816124d8565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161480611f9f57507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061092c5750506001600160e01b0319167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b600081600111158015611fe9575060005482105b801561092c575050600090815260046020526040902054600160e01b161590565b600081806001116120615760005481101561206157600081815260046020526040902054600160e01b811661205f575b8061205857506000190160008181526004602052604090205461203a565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517fb39e12cf0000000000000000000000000000000000000000000000000000000081529051859185916001600160a01b0380851615929084161591600091309163b39e12cf916004808201926020929091908290030181865afa158015612102573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212691906139ad565b6001600160a01b0386811691161490506000356001600160e01b0319167f2541b091000000000000000000000000000000000000000000000000000000001483158015612171575081155b801561217b575082155b8015612185575080155b156121cb57600e54610100900460ff166121cb576040517f8574adcf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e548a9062010000900460ff16806121e35761233c565b6daaeb6d7670e522a718067333cd4e3b1561233c576001600160a01b03821633141561220e5761233c565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561225d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228191906139ca565b80156123045750604051633185c44d60e21b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156122e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230491906139ca565b61233c576040517fede71dcc000000000000000000000000000000000000000000000000000000008152336004820152602401610bb0565b505050505050505050505050565b600080600061235985856129f4565b9150915061236681612a64565b509392505050565b60006123798361200a565b90508060008061239786600090815260066020526040902080549091565b9150915084156123d7576123ac818433610c42565b6123d7576123ba83336108b7565b6123d757604051632ce44b5f60e11b815260040160405180910390fd5b6123e5836000886001612093565b80156123f057600082555b6001600160a01b038316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b177c030000000000000000000000000000000000000000000000000000000017600087815260046020526040902055600160e11b8416612490576001860160008181526004602052604090205461248e57600054811461248e5760008181526004602052604090208590555b505b60405186906000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050600180548101905550505050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005481612564576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125716000848385612093565b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461262057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016125e8565b5081612658576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fb4f5c581870540f90f9705018e944972197c5be2aa889f6bb847b6cd2236e190600090a35050565b601054156126f65760105442106126f6576040517f4c013bd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601454826127076000546000190190565b612711919061378a565b111561273057604051638a164f6360e01b815260040160405180910390fd5b6015541561277457601554821115612774576040517f9782cdff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601154600090612710906127889084613733565b6127929190613752565b6019549091506001600160a01b0316156127fb57601954601a546001600160a01b03918216916127c791839133911685612c1f565b601b546127f59033906001600160a01b03166127e385876137a2565b6001600160a01b038516929190612c1f565b506128b3565b81341015612835576040517f7e6fc84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561286f573d6000803e3d6000fd5b50601b546001600160a01b03166108fc61288983856137a2565b6040518115909202916000818181858888f193505050501580156128b1573d6000803e3d6000fd5b505b611037338461252a565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906128f29033908990889088906004016139e7565b6020604051808303816000875af192505050801561292d575060408051601f3d908101601f1916820190925261292a91810190613a23565b60015b612988573d80801561295b576040519150601f19603f3d011682016040523d82523d6000602084013e612960565b606091505b508051612980576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b604080516080810191829052607f0190826030600a8206018353600a90045b80156129e257600183039250600a81066030018353600a90046129c4565b50819003601f19909101908152919050565b600080825160411415612a2b5760208301516040840151606085015160001a612a1f87828585612ca7565b94509450505050612a5d565b825160401415612a555760208301516040840151612a4a868383612d94565b935093505050612a5d565b506000905060025b9250929050565b6000816004811115612a7857612a78613a40565b1415612a815750565b6001816004811115612a9557612a95613a40565b1415612ae35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610bb0565b6002816004811115612af757612af7613a40565b1415612b455760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610bb0565b6003816004811115612b5957612b59613a40565b1415612bb25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610bb0565b6004816004811115612bc657612bc6613a40565b14156110475760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610bb0565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611af3908590612de6565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612cde5750600090506003612d8b565b8460ff16601b14158015612cf657508460ff16601c14155b15612d075750600090506004612d8b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612d5b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612d8457600060019250925050612d8b565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831681612dca60ff86901c601b61378a565b9050612dd887828885612ca7565b935093505050935093915050565b6000612e3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ecb9092919063ffffffff16565b8051909150156110375780806020019051810190612e5991906139ca565b6110375760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610bb0565b6060612eda8484600085612ee2565b949350505050565b606082471015612f5a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610bb0565b6001600160a01b0385163b612fb15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bb0565b600080866001600160a01b03168587604051612fcd9190613a56565b60006040518083038185875af1925050503d806000811461300a576040519150601f19603f3d011682016040523d82523d6000602084013e61300f565b606091505b509150915061301f82828661302a565b979650505050505050565b60608315613039575081612058565b8251156130495782518084602001fd5b8160405162461bcd60e51b8152600401610bb091906131b9565b82805461306f906136e8565b90600052602060002090601f01602090048101928261309157600085556130d7565b82601f106130aa5782800160ff198235161785556130d7565b828001600101855582156130d7579182015b828111156130d75782358255916020019190600101906130bc565b506130e39291506130e7565b5090565b5b808211156130e357600081556001016130e8565b6001600160a01b038116811461104757600080fd5b60006020828403121561312357600080fd5b8135612058816130fc565b6001600160e01b03198116811461104757600080fd5b60006020828403121561315657600080fd5b81356120588161312e565b60005b8381101561317c578181015183820152602001613164565b83811115611af35750506000910152565b600081518084526131a5816020860160208601613161565b601f01601f19169290920160200192915050565b602081526000612058602083018461318d565b6000602082840312156131de57600080fd5b5035919050565b600080604083850312156131f857600080fd5b8235613203816130fc565b946020939093013593505050565b801515811461104757600080fd5b60006020828403121561323157600080fd5b813561205881613211565b60008060006060848603121561325157600080fd5b833561325c816130fc565b9250602084013561326c816130fc565b929592945050506040919091013590565b60008083601f84011261328f57600080fd5b50813567ffffffffffffffff8111156132a757600080fd5b602083019150836020828501011115612a5d57600080fd5b60008060008060008060a087890312156132d857600080fd5b86356132e3816130fc565b955060208701356132f3816130fc565b94506040870135935060608701359250608087013567ffffffffffffffff81111561331d57600080fd5b61332989828a0161327d565b979a9699509497509295939492505050565b60008060006060848603121561335057600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561337a57600080fd5b50508035926020909101359150565b6000806000806040858703121561339f57600080fd5b843567ffffffffffffffff808211156133b757600080fd5b6133c38883890161327d565b909650945060208701359150808211156133dc57600080fd5b506133e98782880161327d565b95989497509550505050565b60008083601f84011261340757600080fd5b50813567ffffffffffffffff81111561341f57600080fd5b6020830191508360208260051b8501011115612a5d57600080fd5b6000806000806040858703121561345057600080fd5b843567ffffffffffffffff8082111561346857600080fd5b613474888389016133f5565b9096509450602087013591508082111561348d57600080fd5b506133e9878288016133f5565b60008060008060008060a087890312156134b357600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff81111561331d57600080fd5b60006101608083526134fa8184018f61318d565b9050828103602084015261350e818e61318d565b90508281036040840152613522818d61318d565b90508281036060840152613536818c61318d565b9915156080840152505095151560a087015293151560c086015260e085019290925261010084015261012083015261014090910152949350505050565b6000806040838503121561358657600080fd5b8235613591816130fc565b915060208301356135a181613211565b809150509250929050565b600060e082840312156135be57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156135f057600080fd5b84356135fb816130fc565b9350602085013561360b816130fc565b925060408501359150606085013567ffffffffffffffff8082111561362f57600080fd5b818701915087601f83011261364357600080fd5b813581811115613655576136556135c4565b604051601f8201601f19908116603f0116810190838211818310171561367d5761367d6135c4565b816040528281528a602084870101111561369657600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156136cd57600080fd5b82356136d8816130fc565b915060208301356135a1816130fc565b600181811c908216806136fc57607f821691505b602082108114156135be57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561374d5761374d61371d565b500290565b60008261376f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000821982111561379d5761379d61371d565b500190565b6000828210156137b4576137b461371d565b500390565b81356137c4816130fc565b81546001600160a01b0319166001600160a01b0382161782555060208201356137ec816130fc565b6001820180546001600160a01b0319166001600160a01b038316179055506040820135613818816130fc565b6002820180546001600160a01b0319166001600160a01b038316179055506060820135613844816130fc565b6003820180546001600160a01b0319166001600160a01b038316179055506080820135613870816130fc565b6004820180546001600160a01b0319166001600160a01b0383161790555060a082013561389c816130fc565b6005820180546001600160a01b0319166001600160a01b0383161790555060c08201356138c8816130fc565b6006820180546001600160a01b0319166001600160a01b038316179055505050565b600081516138fc818560208601613161565b9290920192915050565b600080845481600182811c91508083168061392257607f831692505b602080841082141561394257634e487b7160e01b86526022600452602486fd5b818015613956576001811461396757613994565b60ff19861689528489019650613994565b60008b81526020902060005b8681101561398c5781548b820152908501908301613973565b505084890196505b5050505050506139a481856138ea565b95945050505050565b6000602082840312156139bf57600080fd5b8151612058816130fc565b6000602082840312156139dc57600080fd5b815161205881613211565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613a19608083018461318d565b9695505050505050565b600060208284031215613a3557600080fd5b81516120588161312e565b634e487b7160e01b600052602160045260246000fd5b60008251613a68818460208701613161565b919091019291505056fe4f776e61626c653a2063616c6c6572206973206e6f742074686520636f6e7472a2646970667358221220a87ecde62fee149312fcda6ed3f0c13de955fbdc66b386fb6fae877c53bdcbfc64736f6c634300080a0033

Deployed Bytecode Sourcemap

499:12320:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:148;;;;;;;;;;-1:-1:-1;2379:148:17;;;;;:::i;:::-;;:::i;:::-;;;571:25:23;;;559:2;544:18;2379:148:17;;;;;;;;3562:348;;;;;;;;;;-1:-1:-1;3562:348:17;;;;;:::i;:::-;;:::i;:::-;;;1204:14:23;;1197:22;1179:41;;1167:2;1152:18;3562:348:17;1039:187:23;2265:108:17;;;;;;;;;;-1:-1:-1;2315:15:17;6503:13:12;-1:-1:-1;;6503:31:12;2265:108:17;;1849:198;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16309:214:12:-;;;;;;;;;;-1:-1:-1;16309:214:12;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2353:55:23;;;2335:74;;2323:2;2308:18;16309:214:12;2189:226:23;15769:390:12;;;;;;;;;;-1:-1:-1;15769:390:12;;;;;:::i;:::-;;:::i;:::-;;5953:184:17;;;;;;;;;;-1:-1:-1;5953:184:17;;;;;:::i;:::-;;:::i;5851:317:12:-;;;;;;;;;;-1:-1:-1;11892:1:17;6121:12:12;5912:7;6105:13;:28;-1:-1:-1;;6105:46:12;5851:317;;19918:2756;;;;;;;;;;-1:-1:-1;19918:2756:12;;;;;:::i;:::-;;:::i;10799:761:17:-;;;;;;;;;;-1:-1:-1;10799:761:17;;;;;:::i;:::-;;:::i;4981:370::-;;;;;;;;;;-1:-1:-1;4981:370:17;;;;;:::i;:::-;;:::i;3069:487::-;;;;;;;;;;-1:-1:-1;3069:487:17;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5516:55:23;;;5498:74;;5603:2;5588:18;;5581:34;;;;5471:18;3069:487:17;5324:297:23;22765:179:12;;;;;;;;;;-1:-1:-1;22765:179:12;;;;;:::i;:::-;;:::i;510:92:14:-;;;;;;;;;;-1:-1:-1;510:92:14;;;;;:::i;:::-;;:::i;863:40:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6143:190;;;;;;;;;;-1:-1:-1;6143:190:17;;;;;:::i;:::-;;:::i;4025:229::-;;;;;;;;;;-1:-1:-1;4025:229:17;;;;;:::i;:::-;;:::i;11348:150:12:-;;;;;;;;;;-1:-1:-1;11348:150:12;;;;;:::i;:::-;;:::i;7002:230::-;;;;;;;;;;-1:-1:-1;7002:230:12;;;;;:::i;:::-;;:::i;1891:101:20:-;;;;;;;;;;;;;:::i;6635:551:17:-;;;;;;;;;;-1:-1:-1;6635:551:17;;;;;:::i;:::-;;:::i;11611:181::-;;;;;;;;;;;;;:::i;7237:953::-;;;;;;:::i;:::-;;:::i;1259:85:20:-;;;;;;;;;;-1:-1:-1;1331:6:20;;-1:-1:-1;;;;;1331:6:20;1259:85;;910:34:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;6339:245::-;;;;;;;;;;-1:-1:-1;6339:245:17;;;;;:::i;:::-;;:::i;2053:206::-;;;;;;;;;;;;;:::i;16850:303:12:-;;;;;;;;;;-1:-1:-1;16850:303:12;;;;;:::i;:::-;;:::i;3337:321:20:-;;;;;;;;;;-1:-1:-1;3337:321:20;;;;;:::i;:::-;;:::i;4260:479:17:-;;;;;;;;;;-1:-1:-1;4260:479:17;;;;;:::i;:::-;;:::i;5357:458::-;;;;;;;;;;-1:-1:-1;5357:458:17;;;;;:::i;:::-;;:::i;2784:105:20:-;;;;;;;;;;-1:-1:-1;2866:16:20;;-1:-1:-1;;;;;2866:16:20;2784:105;;23525:388:12;;;;;;;;;;-1:-1:-1;23525:388:12;;;;;:::i;:::-;;:::i;950:30:17:-;;;;;;;;;;-1:-1:-1;950:30:17;;;;;;;;;;;;;;;;11754:25:23;;;11810:2;11795:18;;11788:34;;;;11838:18;;;11831:34;11742:2;11727:18;950:30:17;11552:319:23;2667:396:17;;;;;;;;;;-1:-1:-1;2667:396:17;;;;;:::i;:::-;;:::i;5821:126::-;;;;;;;;;;-1:-1:-1;5821:126:17;;;;;:::i;:::-;;:::i;8196:352::-;;;;;;:::i;:::-;;:::i;986:26::-;;;;;;;;;;-1:-1:-1;986:26:17;;;;;;;;;;;;;;;;-1:-1:-1;;;;;986:26:17;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12270:15:23;;;12252:34;;12322:15;;;12317:2;12302:18;;12295:43;12374:15;;;12354:18;;;12347:43;;;;12426:15;;;12421:2;12406:18;;12399:43;12479:15;;12473:3;12458:19;;12451:44;12532:15;;12526:3;12511:19;;12504:44;12585:15;;;12579:3;12564:19;;12557:44;12178:3;12163:19;986:26:17;11876:731:23;4745:230:17;;;;;;;;;;-1:-1:-1;4745:230:17;;;;;:::i;:::-;;:::i;2533:128::-;;;;;;;;;;;;;:::i;17303:162:12:-;;;;;;;;;;-1:-1:-1;17303:162:12;;;;;:::i;:::-;-1:-1:-1;;;;;17423:25:12;;;17400:4;17423:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;17303:162;2141:232:20;;;;;;;;;;-1:-1:-1;2141:232:20;;;;;:::i;:::-;;:::i;2379:148:17:-;-1:-1:-1;;;;;7397:25:12;;2460:17:17;7397:25:12;;;:18;:25;;1452:2;7397:25;;;;1317:13;7397:50;;7396:82;2501:19:17;2489:31;2379:148;-1:-1:-1;;2379:148:17:o;3562:348::-;3720:11;-1:-1:-1;;;;;;3757:42:17;;3773:26;3757:42;;:92;;-1:-1:-1;;;;;;;3815:34:17;;3831:18;3815:34;3757:92;:145;;;;3865:37;3889:12;3865:23;:37::i;1849:198::-;1961:28;2022:13;:18;;2005:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1849:198;:::o;16309:214:12:-;16385:7;16409:16;16417:7;16409;:16::i;:::-;16404:64;;16434:34;;;;;;;;;;;;;;16404:64;-1:-1:-1;16486:24:12;;;;:15;:24;;;;;:30;-1:-1:-1;;;;;16486:30:12;;16309:214::o;15769:390::-;15849:13;15865:16;15873:7;15865;:16::i;:::-;15849:32;-1:-1:-1;39008:10:12;-1:-1:-1;;;;;15896:28:12;;;15892:172;;15943:44;15960:5;39008:10;17303:162;:::i;15943:44::-;15938:126;;16014:35;;;;;;;;;;;;;;15938:126;16074:24;;;;:15;:24;;;;;;:35;;-1:-1:-1;;;;;;16074:35:12;-1:-1:-1;;;;;16074:35:12;;;;;;;;;16124:28;;16074:24;;16124:28;;;;;;;15839:320;15769:390;;:::o;5953:184:17:-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;;;;;;;;;6074:33:17;:56;;;::::1;;;;-1:-1:-1::0;;6074:56:17;;::::1;::::0;;;::::1;::::0;;5953:184::o;19918:2756:12:-;20047:27;20077;20096:7;20077:18;:27::i;:::-;20047:57;;20160:4;-1:-1:-1;;;;;20119:45:12;20135:19;-1:-1:-1;;;;;20119:45:12;;20115:86;;20173:28;;;;;;;;;;;;;;20115:86;20213:27;19057:24;;;:15;:24;;;;;19275:26;;20401:68;19275:26;20443:4;39008:10;20449:19;-1:-1:-1;;;;;18545:32:12;;;18391:28;;18672:20;;18694:30;;18669:56;;18095:646;20401:68;20396:179;;20488:43;20505:4;39008:10;17303:162;:::i;20488:43::-;20483:92;;20540:35;;-1:-1:-1;;;20540:35:12;;;;;;;;;;;20483:92;-1:-1:-1;;;;;20590:16:12;;20586:52;;20615:23;;;;;;;;;;;;;;20586:52;20649:43;20671:4;20677:2;20681:7;20690:1;20649:21;:43::i;:::-;20781:15;20778:157;;;20919:1;20898:19;20891:30;20778:157;-1:-1:-1;;;;;21307:24:12;;;;;;;:18;:24;;;;;;21305:26;;-1:-1:-1;;21305:26:12;;;21375:22;;;;;;;;;21373:24;;-1:-1:-1;21373:24:12;;;14660:11;14635:23;14631:41;14618:63;-1:-1:-1;;;14618:63:12;21661:26;;;;:17;:26;;;;;:172;-1:-1:-1;;;21950:47:12;;21946:617;;22054:1;22044:11;;22022:19;22175:30;;;:17;:30;;;;;;22171:378;;22311:13;;22296:11;:28;22292:239;;22456:30;;;;:17;:30;;;;;:52;;;22292:239;22004:559;21946:617;22607:7;22603:2;-1:-1:-1;;;;;22588:27:12;22597:4;-1:-1:-1;;;;;22588:27:12;;;;;;;;;;;22625:42;20037:2637;;;19918:2756;;;:::o;10799:761:17:-;12201:9;12214:10;12201:23;12197:57;;12233:21;;-1:-1:-1;;;12233:21:17;;;;;;;;;;;12197:57;11027:8:::1;11008:15;:27;11004:58;;11044:18;;-1:-1:-1::0;;;11044:18:17::1;;;;;;;;;;;11004:58;11111:185;::::0;;11153:4:::1;14198:2:23::0;14194:15;;;-1:-1:-1;;14190:24:23;;;11111:185:17::1;::::0;;::::1;14178:37:23::0;;;;11176:10:17::1;14249:15:23::0;;14245:24;;14231:12;;;14224:46;14304:15;;;14300:24;;14286:12;;;14279:46;14359:15;;;;14355:24;14341:12;;;14334:46;14396:12;;;14389:28;;;14433:13;;;;14426:29;;;11111:185:17;;;;;;;;;;14471:13:23;;;11111:185:17;;11088:218;;;;::::1;::::0;21859:66:23;8211:58:9;;;21847:79:23;21942:12;;;;21935:28;;;8211:58:9;;;;;;;;;;21979:12:23;;;;8211:58:9;;;8201:69;;;;;-1:-1:-1;;11435:30:17;;11397:34:::1;::::0;;::::1;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;11317:52;;-1:-1:-1;;;;;;11435:30:17;;::::1;::::0;11397:34:::1;::::0;11317:52;;11397:34;11420:10;;;;;;11397:34;::::1;11420:10:::0;;;;11397:34;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;11397:13:17::1;::::0;-1:-1:-1;;;11397:34:17:i:1;:::-;-1:-1:-1::0;;;;;11397:68:17::1;;11380:118;;11483:15;;-1:-1:-1::0;;;11483:15:17::1;;;;;;;;;;;11380:118;11509:44;11532:5;11539:3;11544:8;11509:22;:44::i;:::-;10994:566;;10799:761:::0;;;;;;:::o;4981:370::-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;11892:1:17;6121:12:12;5912:7;6105:13;5167:10:17;;6105:28:12;;-1:-1:-1;;6105:46:12;5151:26:17::1;5147:56;;;5186:17;;;;;;;;;;;;;;5147:56;5214:11;:26:::0;;;;5250:21;:34;5294:29;:50;4981:370::o;3069:487::-;3403:33;;3488;;-1:-1:-1;;;;;3403:33:17;;;;3214:22;;806:5;;3475:46;;:10;:46;:::i;:::-;3474:75;;;;:::i;:::-;3446:103;;3069:487;;;;;:::o;22765:179:12:-;22898:39;22915:4;22921:2;22925:7;22898:39;;;;;;;;;;;;:16;:39::i;:::-;22765:179;;;:::o;510:92:14:-;575:20;581:7;590:4;575:5;:20::i;:::-;510:92;:::o;6143:190:17:-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;6267:49:17;:59;;;::::1;;::::0;::::1;-1:-1:-1::0;;6267:59:17;;::::1;::::0;;;::::1;::::0;;6143:190::o;4025:229::-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;4175:29:17::1;:13;4196:8:::0;;4175:29:::1;:::i;:::-;-1:-1:-1::0;4214:33:17::1;:20:::0;4237:10;;4214:33:::1;:::i;:::-;;4025:229:::0;;;;:::o;11348:150:12:-;11420:7;11462:27;11481:7;11462:18;:27::i;7002:230::-;7074:7;-1:-1:-1;;;;;7097:19:12;;7093:60;;7125:28;;;;;;;;;;;;;;7093:60;-1:-1:-1;;;;;;7170:25:12;;;;;:18;:25;;;;;;1317:13;7170:55;;7002:230::o;1891:101:20:-;1331:6;;-1:-1:-1;;;;;1331:6:20;39008:10:12;1471:23:20;1463:68;;;;-1:-1:-1;;;1463:68:20;;15338:2:23;1463:68:20;;;15320:21:23;;;15357:18;;;15350:30;15416:34;15396:18;;;15389:62;15468:18;;1463:68:20;15136:356:23;1463:68:20;1955:30:::1;1982:1;1955:18;:30::i;:::-;1891:101::o:0;6635:551:17:-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;12201:9:17::1;12214:10;12201:23;12197:57;;12233:21;;-1:-1:-1::0;;;12233:21:17::1;;;;;;;;;;;12197:57;6812:9:::0;6795:14:::2;6839:341;6863:6;6859:1;:10;6839:341;;;6887:15;6905:9;;6915:1;6905:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;6887:30;;6931:14;6948:8;;6957:1;6948:11;;;;;;;:::i;:::-;;;;;;;6931:28;;7004:11;:21;;;6995:6;6978:14;6316:7:12::0;6503:13;-1:-1:-1;;6503:31:12;;6261:290;6978:14:17::2;:23;;;;:::i;:::-;:47;6974:95;;;7050:19;;-1:-1:-1::0;;;7050:19:17::2;;;;;;;;;;;6974:95;7084:22;7090:7;7099:6;7084:5;:22::i;:::-;-1:-1:-1::0;;7154:1:17::2;7149:6;6839:341;;11611:181:::0;11675:9;:25;-1:-1:-1;;;;;11675:25:17;11661:10;:39;11657:67;;11709:15;;-1:-1:-1;;;11709:15:17;;;;;;;;;;;11657:67;11759:9;:25;11734:51;;-1:-1:-1;;;;;11759:25:17;11734:24;:51::i;7237:953::-;12006:22;;;;12001:49;;12037:13;;-1:-1:-1;;;12037:13:17;;;;;;;;;;;12001:49;12201:9:::1;12214:10;12201:23;12197:57;;12233:21;;-1:-1:-1::0;;;12233:21:17::1;;;;;;;;;;;12197:57;7495:8:::2;7476:15;:27;7472:58;;7512:18;;-1:-1:-1::0;;;7512:18:17::2;;;;;;;;;;;7472:58;7579:201;::::0;;7621:4:::2;16158:2:23::0;16154:15;;;-1:-1:-1;;16150:24:23;;;7579:201:17::2;::::0;;::::2;16138:37:23::0;;;;7644:10:17::2;16209:15:23::0;;;16205:24;16191:12;;;16184:46;16246:12;;;16239:28;;;16283:12;;;16276:28;;;16320:13;;;16313:29;;;16358:13;;;;16351:29;;;7579:201:17;;;;;;;;;;16396:13:23;;;7579:201:17;;7556:234;;;;::::2;::::0;21859:66:23;8211:58:9;;;21847:79:23;21942:12;;;;21935:28;;;8211:58:9;;;;;;;;;;21979:12:23;;;;8211:58:9;;;8201:69;;;;;-1:-1:-1;;7919:30:17;;7881:34:::2;::::0;;::::2;;::::0;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;7801:52;;-1:-1:-1;;;;;;7919:30:17;;::::2;::::0;7881:34:::2;::::0;7801:52;;7881:34;7904:10;;;;;;7881:34;::::2;7904:10:::0;;;;7881:34;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;7881:13:17::2;::::0;-1:-1:-1;;;7881:34:17:i:2;:::-;-1:-1:-1::0;;;;;7881:68:17::2;;7864:118;;7967:15;;-1:-1:-1::0;;;7967:15:17::2;;;;;;;;;;;7864:118;7997:19:::0;;7993:154:::2;;8050:10;7370:7:12::0;7397:25;;;:18;:25;;1452:2;7397:25;;;;;8074:14:17;;8036:35:::2;::::0;8064:7;;7397:50:12;1317:13;7396:82;8036:35:17::2;:::i;:::-;:52;8032:104;;;8113:23;;;;;;;;;;;;;;8032:104;8157:26;8162:7;8171:11;8157:4;:26::i;910:34::-:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;910:34:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;910:34:17;;;;;;;:::o;6339:245::-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;6473:31:17;:45;;;;6528:33;:49;6339:245::o;2053:206::-;2167:30;2232:13;:20;;2213:39;;;;;:::i;16850:303:12:-;-1:-1:-1;;;;;16948:31:12;;39008:10;16948:31;16944:61;;;16988:17;;;;;;;;;;;;;;16944:61;39008:10;17016:39;;;;:18;:39;;;;;;;;-1:-1:-1;;;;;17016:49:12;;;;;;;;;;;;:60;;-1:-1:-1;;17016:60:12;;;;;;;;;;17091:55;;1179:41:23;;;17016:49:12;;39008:10;17091:55;;1152:18:23;17091:55:12;;;;;;;16850:303;;:::o;3337:321:20:-;3066:16;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;-1:-1:-1;;;;;3492:32:20;::::1;3471:126;;;::::0;-1:-1:-1;;;3471:126:20;;16622:2:23;3471:126:20::1;::::0;::::1;16604:21:23::0;16661:2;16641:18;;;16634:30;16700:34;16680:18;;;16673:62;16771:17;16751:18;;;16744:45;16806:19;;3471:126:20::1;16420:411:23::0;3471:126:20::1;3607:44;3632:18;3607:24;:44::i;4260:479:17:-:0;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;4412:48:17::1;:33:::0;4448:12;;4412:48:::1;:::i;:::-;-1:-1:-1::0;4470:42:17::1;:30:::0;4503:9;;4470:42:::1;:::i;:::-;-1:-1:-1::0;11892:1:17;6121:12:12;5912:7;6105:13;:28;-1:-1:-1;;6105:46:12;4641:18:17;4637:96:::1;;4680:42;4700:1;4720::::0;4703:14:::1;5602:7:12::0;5628:13;;5547:101;4703:14:17::1;:18;;;;:::i;:::-;4680:42;::::0;;17148:25:23;;;17204:2;17189:18;;17182:34;;;;17121:18;4680:42:17::1;;;;;;;4637:96;4260:479:::0;;;;:::o;5357:458::-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;5506:9:17::1;:25:::0;-1:-1:-1;;;;;5506:25:17::1;5476:26;;::::0;::::1;:10:::0;:26:::1;:::i;:::-;-1:-1:-1::0;;;;;5476:55:17::1;;5472:106;;5552:26;;;;;;;;;;;;;;5472:106;5654:33;::::0;;;::::1;::::0;::::1;;:::i;:::-;5606:32:::0;;-1:-1:-1;;;;;5606:32:17;;::::1;:81:::0;::::1;;5589:187;;5712:53;5731:33;::::0;;;::::1;::::0;::::1;;:::i;:::-;5712:18;:53::i;:::-;5798:10:::0;5786:9:::1;:22;5798:10:::0;5786:9;:22:::1;:::i;23525:388:12:-:0;23686:31;23699:4;23705:2;23709:7;23686:12;:31::i;:::-;-1:-1:-1;;;;;23731:14:12;;;:19;23727:180;;23769:56;23800:4;23806:2;23810:7;23819:5;23769:30;:56::i;:::-;23764:143;;23852:40;;-1:-1:-1;;;23852:40:12;;;;;;;;;;;2667:396:17;2813:17;2851;2859:8;2851:7;:17::i;:::-;2846:49;;2877:18;;;;;;;;;;;;;;2846:49;2965:30;3013:19;3023:8;3013:9;:19::i;:::-;2931:115;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2905:151;;2667:396;;;:::o;5821:126::-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;5906:22:17;:34;;-1:-1:-1;;5906:34:17::1;::::0;::::1;;::::0;;;::::1;::::0;;5821:126::o;8196:352::-;12006:22;;;;12001:49;;12037:13;;-1:-1:-1;;;12037:13:17;;;;;;;;;;;12001:49;12201:9:::1;12214:10;12201:23;12197:57;;12233:21;;-1:-1:-1::0;;;12233:21:17::1;;;;;;;;;;;12197:57;8316:28:::0;;:33;;:95:::2;;-1:-1:-1::0;8383:28:17;;8365:15:::2;:46;8316:95;8299:148;;;8429:18;;;;;;;;;;;;;;8299:148;8479:11;:17:::0;8458:18:::2;::::0;8479:27:::2;::::0;8499:7;;8479:27:::2;:::i;:::-;8458:48;;8516:25;8521:7;8530:10;8516:4;:25::i;:::-;8289:259;8196:352:::0;:::o;4745:230::-;3066:16:20;;-1:-1:-1;;;;;3066:16:20;39008:10:12;-1:-1:-1;;;;;3050:32:20;;3029:122;;;;-1:-1:-1;;;3029:122:20;;13649:2:23;3029:122:20;;;13631:21:23;13688:2;13668:18;;;13661:30;-1:-1:-1;;;;;;;;;;;13707:18:23;;;13700:62;-1:-1:-1;;;13778:18:23;;;13771:41;13829:19;;3029:122:20;13447:407:23;3029:122:20;4875:28:17;:42;;;;4927:27;:41;4745:230::o;2533:128::-;2586:17;2621:13;:33;;2615:39;;;;;:::i;2141:232:20:-;1331:6;;-1:-1:-1;;;;;1331:6:20;39008:10:12;1471:23:20;1463:68;;;;-1:-1:-1;;;1463:68:20;;15338:2:23;1463:68:20;;;15320:21:23;;;15357:18;;;15350:30;15416:34;15396:18;;;15389:62;15468:18;;1463:68:20;15136:356:23;1463:68:20;-1:-1:-1;;;;;2242:22:20;::::1;2221:107;;;::::0;-1:-1:-1;;;2221:107:20;;20574:2:23;2221:107:20::1;::::0;::::1;20556:21:23::0;20613:2;20593:18;;;20586:30;20652:34;20632:18;;;20625:62;20723:8;20703:18;;;20696:36;20749:19;;2221:107:20::1;20372:402:23::0;2221:107:20::1;2338:28;2357:8;2338:18;:28::i;9112:630:12:-:0;9197:4;9515:25;-1:-1:-1;;;;;;9515:25:12;;;;:101;;-1:-1:-1;9591:25:12;-1:-1:-1;;;;;;9591:25:12;;;9515:101;:177;;;-1:-1:-1;;;;;;;;9667:25:12;;;;9112:630::o;17714:277::-;17779:4;17833:7;11892:1:17;17814:26:12;;:65;;;;;17866:13;;17856:7;:23;17814:65;:151;;;;-1:-1:-1;;17916:26:12;;;;:17;:26;;;;;;-1:-1:-1;;;17916:44:12;:49;;17714:277::o;12472:1249::-;12539:7;12573;;11892:1:17;12619:23:12;12615:1042;;12671:13;;12664:4;:20;12660:997;;;12708:14;12725:23;;;:17;:23;;;;;;-1:-1:-1;;;12812:24:12;;12808:831;;13467:111;13474:11;13467:111;;-1:-1:-1;;;13544:6:12;13526:25;;;;:17;:25;;;;;;13467:111;;;13610:6;12472:1249;-1:-1:-1;;;12472:1249:12:o;12808:831::-;12686:971;12660:997;13683:31;;;;;;;;;;;;;;10389:404:17;12460:22;;;;;;;;10582:4;;10588:2;;-1:-1:-1;;;;;12356:18:17;;;;;12401:16;;;;;12339:14;;12460:4;;:20;;:22;;;;;;;;;;;;;;;:4;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12452:30:17;;;;;;;-1:-1:-1;12492:25:17;12520:7;-1:-1:-1;;;;;;12520:7:17;12531:32;12520:43;12591:10;;:44;;;;;12618:17;12617:18;12591:44;:70;;;;;12652:9;12651:10;12591:70;:107;;;;;12678:20;12677:21;12591:107;12574:226;;;12728:33;;;;;;;12723:66;;12770:19;;;;;;;;;;;;;;12723:66;10651:49;;10633:4;;10651:49;;::::1;;;::::0;1508:63:22::1;;1554:7;;1508:63;309:42;1690:43;:47:::0;1686:769:::1;;-1:-1:-1::0;;;;;1965:18:22;::::1;1973:10;1965:18;1961:82;;;1554:7;;1961:82;2079:125;::::0;-1:-1:-1;;;2079:125:22;;2149:4:::1;2079:125;::::0;::::1;21270:34:23::0;2176:10:22::1;21320:18:23::0;;;21313:43;309:42:22::1;::::0;2079:40:::1;::::0;21182:18:23;;2079:125:22::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:280;;;;-1:-1:-1::0;2228:131:22::1;::::0;-1:-1:-1;;;2228:131:22;;2302:4:::1;2228:131;::::0;::::1;21270:34:23::0;-1:-1:-1;;;;;21340:15:23;;21320:18;;;21313:43;309:42:22::1;::::0;2228:40:::1;::::0;21182:18:23;;2228:131:22::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2056:389;;2400:30;::::0;::::1;::::0;;2419:10:::1;2400:30;::::0;::::1;2335:74:23::0;2308:18;;2400:30:22::1;2189:226:23::0;2056:389:22::1;12809:1:17;;12329:488:::0;;;;10389:404;;;;;;:::o;4308:227:9:-;4386:7;4406:17;4425:18;4447:27;4458:4;4464:9;4447:10;:27::i;:::-;4405:69;;;;4484:18;4496:5;4484:11;:18::i;:::-;-1:-1:-1;4519:9:9;4308:227;-1:-1:-1;;;4308:227:9:o;33580:3015:12:-;33659:27;33689;33708:7;33689:18;:27::i;:::-;33659:57;-1:-1:-1;33659:57:12;33727:12;;33847:35;33874:7;18948:27;19057:24;;;:15;:24;;;;;19275:26;;19057:24;;18849:468;33847:35;33790:92;;;;33897:13;33893:312;;;34016:68;34041:15;34058:4;39008:10;34064:19;38922:103;34016:68;34011:183;;34107:43;34124:4;39008:10;17303:162;:::i;34107:43::-;34102:92;;34159:35;;-1:-1:-1;;;34159:35:12;;;;;;;;;;;34102:92;34215:51;34237:4;34251:1;34255:7;34264:1;34215:21;:51::i;:::-;34355:15;34352:157;;;34493:1;34472:19;34465:30;34352:157;-1:-1:-1;;;;;35098:24:12;;;;;;:18;:24;;;;;:60;;35126:32;35098:60;;;14660:11;14635:23;14631:41;14618:63;35477:43;14618:63;35389:26;;;;:17;:26;;;;;:202;-1:-1:-1;;;35708:47:12;;35704:617;;35812:1;35802:11;;35780:19;35933:30;;;:17;:30;;;;;;35929:378;;36069:13;;36054:11;:28;36050:239;;36214:30;;;;:17;:30;;;;;:52;;;36050:239;35762:559;35704:617;36346:35;;36373:7;;36369:1;;-1:-1:-1;;;;;36346:35:12;;;;;36369:1;;36346:35;-1:-1:-1;;36564:12:12;:14;;;;;;-1:-1:-1;;;;33580:3015:12:o;2527:187:20:-;2619:6;;;-1:-1:-1;;;;;2635:17:20;;;-1:-1:-1;;;;;;2635:17:20;;;;;;;2667:40;;2619:6;;;2635:17;2619:6;;2667:40;;2600:16;;2667:40;2590:124;2527:187;:::o;27082:2396:12:-;27154:20;27177:13;27204;27200:44;;27226:18;;;;;;;;;;;;;;27200:44;27255:61;27285:1;27289:2;27293:12;27307:8;27255:21;:61::i;:::-;-1:-1:-1;;;;;27719:22:12;;;;;;:18;:22;;;;1452:2;27719:22;;;:71;;27757:32;27745:45;;27719:71;;;28026:31;;;:17;:31;;;;;-1:-1:-1;15080:15:12;;15054:24;15050:46;14660:11;14635:23;14631:41;14628:52;14618:63;;28026:170;;28255:23;;;;28026:31;;27719:22;;28744:25;27719:22;;28600:328;29005:1;28991:12;28987:20;28946:339;29045:3;29036:7;29033:16;28946:339;;29259:7;29249:8;29246:1;29219:25;29216:1;29213;29208:59;29097:1;29084:15;28946:339;;;-1:-1:-1;29316:13:12;29312:45;;29338:19;;;;;;;;;;;;;;29312:45;29372:13;:19;-1:-1:-1;22765:179:12;;;:::o;3823:290:20:-;3961:16;;;-1:-1:-1;;;;;3987:37:20;;;-1:-1:-1;;;;;;3987:37:20;;;;;;;4040:66;;3961:16;;;3987:37;3961:16;;4040:66;;3932:26;;4040:66;3922:191;3823:290;:::o;8554:1778:17:-;8629:27;;:32;8625:150;;8700:27;;8681:15;:46;8677:87;;8752:12;;;;;;;;;;;;;;8677:87;8816:21;;8806:7;8789:14;6316:7:12;6503:13;-1:-1:-1;;6503:31:12;;6261:290;8789:14:17;:24;;;;:::i;:::-;:48;8785:92;;;8858:19;;-1:-1:-1;;;8858:19:17;;;;;;;;;;;8785:92;8892:29;;:34;8888:160;;8956:29;;8946:39;;8942:95;;;9010:27;;;;;;;;;;;;;;8942:95;9109:31;;9058:21;;806:5;;9083:57;;:11;:57;:::i;:::-;9082:74;;;;:::i;:::-;9171:30;;9058:98;;-1:-1:-1;;;;;;9171:30:17;:44;9167:1093;;9253:30;;9421:38;;-1:-1:-1;;;;;9253:30:17;;;;9353:151;;9253:30;;9393:10;;9421:38;9477:13;9353:22;:151::i;:::-;9672:39;;9604:166;;9644:10;;-1:-1:-1;;;;;9672:39:17;9729:27;9743:13;9729:11;:27;:::i;:::-;-1:-1:-1;;;;;9604:22:17;;;:166;;:22;:166::i;:::-;9217:564;9167:1093;;;9817:11;9805:9;:23;9801:62;;;9837:26;;;;;;;;;;;;;;9801:62;9940:38;;9932:101;;-1:-1:-1;;;;;9940:38:17;;;;9932:101;;;;;10006:13;;9940:38;9932:101;9940:38;9932:101;10006:13;9940:38;9932:101;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10141:39:17;;-1:-1:-1;;;;;10141:39:17;10133:116;10208:27;10222:13;10208:11;:27;:::i;:::-;10133:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9167:1093;10299:26;10305:10;10317:7;10299:5;:26::i;25939:697:12:-;26117:88;;-1:-1:-1;;;26117:88:12;;26097:4;;-1:-1:-1;;;;;26117:45:12;;;;;:88;;39008:10;;26184:4;;26190:7;;26199:5;;26117:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26117:88:12;;;;;;;;-1:-1:-1;;26117:88:12;;;;;;;;;;;;:::i;:::-;;;26113:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26395:13:12;;26391:229;;26440:40;;-1:-1:-1;;;26440:40:12;;;;;;;;;;;26391:229;26580:6;26574:13;26565:6;26561:2;26557:15;26550:38;26113:517;-1:-1:-1;;;;;;26273:64:12;-1:-1:-1;;;26273:64:12;;-1:-1:-1;25939:697:12;;;;;;:::o;39122:1961::-;39593:4;39587:11;;39600:3;39583:21;;39676:17;;;;40359:11;;;40240:5;40522:2;40536;40526:13;;40518:22;40359:11;40505:36;40576:2;40566:13;;40134:715;40594:4;40134:715;;;40780:1;40775:3;40771:11;40764:18;;40830:2;40824:4;40820:13;40816:2;40812:22;40807:3;40799:36;40687:2;40677:13;;40134:715;;;-1:-1:-1;40877:13:12;;;-1:-1:-1;;40990:12:12;;;41048:19;;;40990:12;39122:1961;-1:-1:-1;39122:1961:12:o;2243:1279:9:-;2324:7;2333:12;2554:9;:16;2574:2;2554:22;2550:966;;;2843:4;2828:20;;2822:27;2892:4;2877:20;;2871:27;2949:4;2934:20;;2928:27;2592:9;2920:36;2990:25;3001:4;2920:36;2822:27;2871;2990:10;:25::i;:::-;2983:32;;;;;;;;;2550:966;3036:9;:16;3056:2;3036:22;3032:484;;;3305:4;3290:20;;3284:27;3355:4;3340:20;;3334:27;3395:23;3406:4;3284:27;3334;3395:10;:23::i;:::-;3388:30;;;;;;;;3032:484;-1:-1:-1;3465:1:9;;-1:-1:-1;3469:35:9;3032:484;2243:1279;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;;766:34;;-1:-1:-1;;;766:34:9;;23175:2:23;766:34:9;;;23157:21:23;23214:2;23194:18;;;23187:30;23253:26;23233:18;;;23226:54;23297:18;;766:34:9;22973:348:23;708:465:9;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;;881:41;;-1:-1:-1;;;881:41:9;;23528:2:23;881:41:9;;;23510:21:23;23567:2;23547:18;;;23540:30;23606:33;23586:18;;;23579:61;23657:18;;881:41:9;23326:355:23;817:356:9;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;;998:44;;-1:-1:-1;;;998:44:9;;23888:2:23;998:44:9;;;23870:21:23;23927:2;23907:18;;;23900:30;23966:34;23946:18;;;23939:62;-1:-1:-1;;;24017:18:23;;;24010:32;24059:19;;998:44:9;23686:398:23;939:234:9;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:9;;24291:2:23;1118:44:9;;;24273:21:23;24330:2;24310:18;;;24303:30;24369:34;24349:18;;;24342:62;-1:-1:-1;;;24420:18:23;;;24413:32;24462:19;;1118:44:9;24089:398:23;912:241:5;1077:68;;;-1:-1:-1;;;;;24773:15:23;;;1077:68:5;;;24755:34:23;24825:15;;24805:18;;;24798:43;24857:18;;;;24850:34;;;1077:68:5;;;;;;;;;;24667:18:23;;;;1077:68:5;;;;;;;;;;1100:27;1077:68;;;1050:96;;1070:5;;1050:19;:96::i;5716:1603:9:-;5842:7;;6766:66;6753:79;;6749:161;;;-1:-1:-1;6864:1:9;;-1:-1:-1;6868:30:9;6848:51;;6749:161;6923:1;:7;;6928:2;6923:7;;:18;;;;;6934:1;:7;;6939:2;6934:7;;6923:18;6919:100;;;-1:-1:-1;6973:1:9;;-1:-1:-1;6977:30:9;6957:51;;6919:100;7130:24;;;7113:14;7130:24;;;;;;;;;25122:25:23;;;25195:4;25183:17;;25163:18;;;25156:45;;;;25217:18;;;25210:34;;;25260:18;;;25253:34;;;7130:24:9;;25094:19:23;;7130:24:9;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7130:24:9;;-1:-1:-1;;7130:24:9;;;-1:-1:-1;;;;;;;7168:20:9;;7164:101;;7220:1;7224:29;7204:50;;;;;;;7164:101;7283:6;-1:-1:-1;7291:20:9;;-1:-1:-1;5716:1603:9;;;;;;;;:::o;4789:336::-;4899:7;;4957:66;4944:80;;4899:7;5050:25;5066:3;5051:18;;;5073:2;5050:25;:::i;:::-;5034:42;;5093:25;5104:4;5110:1;5113;5116;5093:10;:25::i;:::-;5086:32;;;;;;4789:336;;;;;;:::o;3207:706:5:-;3626:23;3652:69;3680:4;3652:69;;;;;;;;;;;;;;;;;3660:5;-1:-1:-1;;;;;3652:27:5;;;:69;;;;;:::i;:::-;3735:17;;3626:95;;-1:-1:-1;3735:21:5;3731:176;;3830:10;3819:30;;;;;;;;;;;;:::i;:::-;3811:85;;;;-1:-1:-1;;;3811:85:5;;25500:2:23;3811:85:5;;;25482:21:23;25539:2;25519:18;;;25512:30;25578:34;25558:18;;;25551:62;25649:12;25629:18;;;25622:40;25679:19;;3811:85:5;25298:406:23;3861:223:6;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;3861:223;-1:-1:-1;;;;3861:223:6:o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;-1:-1:-1;;;5137:81:6;;25911:2:23;5137:81:6;;;25893:21:23;25950:2;25930:18;;;25923:30;25989:34;25969:18;;;25962:62;26060:8;26040:18;;;26033:36;26086:19;;5137:81:6;25709:402:23;5137:81:6;-1:-1:-1;;;;;1465:19:6;;;5228:60;;;;-1:-1:-1;;;5228:60:6;;26318:2:23;5228:60:6;;;26300:21:23;26357:2;26337:18;;;26330:30;26396:31;26376:18;;;26369:59;26445:18;;5228:60:6;26116:353:23;5228:60:6;5300:12;5314:23;5341:6;-1:-1:-1;;;;;5341:11:6;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;:::-;5382:58;4948:499;-1:-1:-1;;;;;;;4948:499:6:o;7561:692::-;7707:12;7735:7;7731:516;;;-1:-1:-1;7765:10:6;7758:17;;7731:516;7876:17;;:21;7872:365;;8070:10;8064:17;8130:15;8117:10;8113:2;8109:19;8102:44;7872:365;8209:12;8202:20;;-1:-1:-1;;;8202:20:6;;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:154:23;-1:-1:-1;;;;;93:5:23;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;607:177::-;-1:-1:-1;;;;;;685:5:23;681:78;674:5;671:89;661:117;;774:1;771;764:12;789:245;847:6;900:2;888:9;879:7;875:23;871:32;868:52;;;916:1;913;906:12;868:52;955:9;942:23;974:30;998:5;974:30;:::i;1231:258::-;1303:1;1313:113;1327:6;1324:1;1321:13;1313:113;;;1403:11;;;1397:18;1384:11;;;1377:39;1349:2;1342:10;1313:113;;;1444:6;1441:1;1438:13;1435:48;;;-1:-1:-1;;1479:1:23;1461:16;;1454:27;1231:258::o;1494:269::-;1547:3;1585:5;1579:12;1612:6;1607:3;1600:19;1628:63;1684:6;1677:4;1672:3;1668:14;1661:4;1654:5;1650:16;1628:63;:::i;:::-;1745:2;1724:15;-1:-1:-1;;1720:29:23;1711:39;;;;1752:4;1707:50;;1494:269;-1:-1:-1;;1494:269:23:o;1768:231::-;1917:2;1906:9;1899:21;1880:4;1937:56;1989:2;1978:9;1974:18;1966:6;1937:56;:::i;2004:180::-;2063:6;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;-1:-1:-1;2155:23:23;;2004:180;-1:-1:-1;2004:180:23:o;2420:315::-;2488:6;2496;2549:2;2537:9;2528:7;2524:23;2520:32;2517:52;;;2565:1;2562;2555:12;2517:52;2604:9;2591:23;2623:31;2648:5;2623:31;:::i;:::-;2673:5;2725:2;2710:18;;;;2697:32;;-1:-1:-1;;;2420:315:23:o;2740:118::-;2826:5;2819:13;2812:21;2805:5;2802:32;2792:60;;2848:1;2845;2838:12;2863:241;2919:6;2972:2;2960:9;2951:7;2947:23;2943:32;2940:52;;;2988:1;2985;2978:12;2940:52;3027:9;3014:23;3046:28;3068:5;3046:28;:::i;3109:456::-;3186:6;3194;3202;3255:2;3243:9;3234:7;3230:23;3226:32;3223:52;;;3271:1;3268;3261:12;3223:52;3310:9;3297:23;3329:31;3354:5;3329:31;:::i;:::-;3379:5;-1:-1:-1;3436:2:23;3421:18;;3408:32;3449:33;3408:32;3449:33;:::i;:::-;3109:456;;3501:7;;-1:-1:-1;;;3555:2:23;3540:18;;;;3527:32;;3109:456::o;3570:347::-;3621:8;3631:6;3685:3;3678:4;3670:6;3666:17;3662:27;3652:55;;3703:1;3700;3693:12;3652:55;-1:-1:-1;3726:20:23;;3769:18;3758:30;;3755:50;;;3801:1;3798;3791:12;3755:50;3838:4;3830:6;3826:17;3814:29;;3890:3;3883:4;3874:6;3866;3862:19;3858:30;3855:39;3852:59;;;3907:1;3904;3897:12;3922:823;4028:6;4036;4044;4052;4060;4068;4121:3;4109:9;4100:7;4096:23;4092:33;4089:53;;;4138:1;4135;4128:12;4089:53;4177:9;4164:23;4196:31;4221:5;4196:31;:::i;:::-;4246:5;-1:-1:-1;4303:2:23;4288:18;;4275:32;4316:33;4275:32;4316:33;:::i;:::-;4368:7;-1:-1:-1;4422:2:23;4407:18;;4394:32;;-1:-1:-1;4473:2:23;4458:18;;4445:32;;-1:-1:-1;4528:3:23;4513:19;;4500:33;4556:18;4545:30;;4542:50;;;4588:1;4585;4578:12;4542:50;4627:58;4677:7;4668:6;4657:9;4653:22;4627:58;:::i;:::-;3922:823;;;;-1:-1:-1;3922:823:23;;-1:-1:-1;3922:823:23;;4704:8;;3922:823;-1:-1:-1;;;3922:823:23:o;4750:316::-;4827:6;4835;4843;4896:2;4884:9;4875:7;4871:23;4867:32;4864:52;;;4912:1;4909;4902:12;4864:52;-1:-1:-1;;4935:23:23;;;5005:2;4990:18;;4977:32;;-1:-1:-1;5056:2:23;5041:18;;;5028:32;;4750:316;-1:-1:-1;4750:316:23:o;5071:248::-;5139:6;5147;5200:2;5188:9;5179:7;5175:23;5171:32;5168:52;;;5216:1;5213;5206:12;5168:52;-1:-1:-1;;5239:23:23;;;5309:2;5294:18;;;5281:32;;-1:-1:-1;5071:248:23:o;5626:719::-;5718:6;5726;5734;5742;5795:2;5783:9;5774:7;5770:23;5766:32;5763:52;;;5811:1;5808;5801:12;5763:52;5851:9;5838:23;5880:18;5921:2;5913:6;5910:14;5907:34;;;5937:1;5934;5927:12;5907:34;5976:58;6026:7;6017:6;6006:9;6002:22;5976:58;:::i;:::-;6053:8;;-1:-1:-1;5950:84:23;-1:-1:-1;6141:2:23;6126:18;;6113:32;;-1:-1:-1;6157:16:23;;;6154:36;;;6186:1;6183;6176:12;6154:36;;6225:60;6277:7;6266:8;6255:9;6251:24;6225:60;:::i;:::-;5626:719;;;;-1:-1:-1;6304:8:23;-1:-1:-1;;;;5626:719:23:o;6350:367::-;6413:8;6423:6;6477:3;6470:4;6462:6;6458:17;6454:27;6444:55;;6495:1;6492;6485:12;6444:55;-1:-1:-1;6518:20:23;;6561:18;6550:30;;6547:50;;;6593:1;6590;6583:12;6547:50;6630:4;6622:6;6618:17;6606:29;;6690:3;6683:4;6673:6;6670:1;6666:14;6658:6;6654:27;6650:38;6647:47;6644:67;;;6707:1;6704;6697:12;6722:773;6844:6;6852;6860;6868;6921:2;6909:9;6900:7;6896:23;6892:32;6889:52;;;6937:1;6934;6927:12;6889:52;6977:9;6964:23;7006:18;7047:2;7039:6;7036:14;7033:34;;;7063:1;7060;7053:12;7033:34;7102:70;7164:7;7155:6;7144:9;7140:22;7102:70;:::i;:::-;7191:8;;-1:-1:-1;7076:96:23;-1:-1:-1;7279:2:23;7264:18;;7251:32;;-1:-1:-1;7295:16:23;;;7292:36;;;7324:1;7321;7314:12;7292:36;;7363:72;7427:7;7416:8;7405:9;7401:24;7363:72;:::i;7500:683::-;7606:6;7614;7622;7630;7638;7646;7699:3;7687:9;7678:7;7674:23;7670:33;7667:53;;;7716:1;7713;7706:12;7667:53;7752:9;7739:23;7729:33;;7809:2;7798:9;7794:18;7781:32;7771:42;;7860:2;7849:9;7845:18;7832:32;7822:42;;7911:2;7900:9;7896:18;7883:32;7873:42;;7966:3;7955:9;7951:19;7938:33;7994:18;7986:6;7983:30;7980:50;;;8026:1;8023;8016:12;8188:1311;8623:4;8652:3;8682:2;8671:9;8664:21;8708:56;8760:2;8749:9;8745:18;8737:6;8708:56;:::i;:::-;8694:70;;8812:9;8804:6;8800:22;8795:2;8784:9;8780:18;8773:50;8846:44;8883:6;8875;8846:44;:::i;:::-;8832:58;;8938:9;8930:6;8926:22;8921:2;8910:9;8906:18;8899:50;8972:44;9009:6;9001;8972:44;:::i;:::-;8958:58;;9064:9;9056:6;9052:22;9047:2;9036:9;9032:18;9025:50;9092:44;9129:6;9121;9092:44;:::i;:::-;9180:14;;9173:22;9167:3;9152:19;;9145:51;-1:-1:-1;;9240:14:23;;9233:22;9227:3;9212:19;;9205:51;9300:14;;9293:22;9287:3;9272:19;;9265:51;9347:3;9332:19;;9325:35;;;;9391:3;9376:19;;9369:35;9435:3;9420:19;;9413:35;9479:3;9464:19;;;9457:36;9084:52;8188:1311;-1:-1:-1;;;;8188:1311:23:o;9504:382::-;9569:6;9577;9630:2;9618:9;9609:7;9605:23;9601:32;9598:52;;;9646:1;9643;9636:12;9598:52;9685:9;9672:23;9704:31;9729:5;9704:31;:::i;:::-;9754:5;-1:-1:-1;9811:2:23;9796:18;;9783:32;9824:30;9783:32;9824:30;:::i;:::-;9873:7;9863:17;;;9504:382;;;;;:::o;9891:196::-;9979:6;10032:3;10020:9;10011:7;10007:23;10003:33;10000:53;;;10049:1;10046;10039:12;10000:53;-1:-1:-1;10072:9:23;9891:196;-1:-1:-1;9891:196:23:o;10092:184::-;-1:-1:-1;;;10141:1:23;10134:88;10241:4;10238:1;10231:15;10265:4;10262:1;10255:15;10281:1266;10376:6;10384;10392;10400;10453:3;10441:9;10432:7;10428:23;10424:33;10421:53;;;10470:1;10467;10460:12;10421:53;10509:9;10496:23;10528:31;10553:5;10528:31;:::i;:::-;10578:5;-1:-1:-1;10635:2:23;10620:18;;10607:32;10648:33;10607:32;10648:33;:::i;:::-;10700:7;-1:-1:-1;10754:2:23;10739:18;;10726:32;;-1:-1:-1;10809:2:23;10794:18;;10781:32;10832:18;10862:14;;;10859:34;;;10889:1;10886;10879:12;10859:34;10927:6;10916:9;10912:22;10902:32;;10972:7;10965:4;10961:2;10957:13;10953:27;10943:55;;10994:1;10991;10984:12;10943:55;11030:2;11017:16;11052:2;11048;11045:10;11042:36;;;11058:18;;:::i;:::-;11133:2;11127:9;11101:2;11187:13;;-1:-1:-1;;11183:22:23;;;11207:2;11179:31;11175:40;11163:53;;;11231:18;;;11251:22;;;11228:46;11225:72;;;11277:18;;:::i;:::-;11317:10;11313:2;11306:22;11352:2;11344:6;11337:18;11392:7;11387:2;11382;11378;11374:11;11370:20;11367:33;11364:53;;;11413:1;11410;11403:12;11364:53;11469:2;11464;11460;11456:11;11451:2;11443:6;11439:15;11426:46;11514:1;11509:2;11504;11496:6;11492:15;11488:24;11481:35;11535:6;11525:16;;;;;;;10281:1266;;;;;;;:::o;12612:388::-;12680:6;12688;12741:2;12729:9;12720:7;12716:23;12712:32;12709:52;;;12757:1;12754;12747:12;12709:52;12796:9;12783:23;12815:31;12840:5;12815:31;:::i;:::-;12865:5;-1:-1:-1;12922:2:23;12907:18;;12894:32;12935:33;12894:32;12935:33;:::i;13005:437::-;13084:1;13080:12;;;;13127;;;13148:61;;13202:4;13194:6;13190:17;13180:27;;13148:61;13255:2;13247:6;13244:14;13224:18;13221:38;13218:218;;;-1:-1:-1;;;13289:1:23;13282:88;13393:4;13390:1;13383:15;13421:4;13418:1;13411:15;14495:184;-1:-1:-1;;;14544:1:23;14537:88;14644:4;14641:1;14634:15;14668:4;14665:1;14658:15;14684:168;14724:7;14790:1;14786;14782:6;14778:14;14775:1;14772:21;14767:1;14760:9;14753:17;14749:45;14746:71;;;14797:18;;:::i;:::-;-1:-1:-1;14837:9:23;;14684:168::o;14857:274::-;14897:1;14923;14913:189;;-1:-1:-1;;;14955:1:23;14948:88;15059:4;15056:1;15049:15;15087:4;15084:1;15077:15;14913:189;-1:-1:-1;15116:9:23;;14857:274::o;15497:184::-;-1:-1:-1;;;15546:1:23;15539:88;15646:4;15643:1;15636:15;15670:4;15667:1;15660:15;15686:128;15726:3;15757:1;15753:6;15750:1;15747:13;15744:39;;;15763:18;;:::i;:::-;-1:-1:-1;15799:9:23;;15686:128::o;16836:125::-;16876:4;16904:1;16901;16898:8;16895:34;;;16909:18;;:::i;:::-;-1:-1:-1;16946:9:23;;16836:125::o;17480:1335::-;17649:5;17636:19;17664:33;17689:7;17664:33;:::i;:::-;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;17706:62;17816:2;17809:5;17805:14;17792:28;17829:33;17854:7;17829:33;:::i;:::-;17929:1;17919:12;;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;17871:70;17989:2;17982:5;17978:14;17965:28;18002:33;18027:7;18002:33;:::i;:::-;18102:1;18092:12;;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;18044:70;18162:2;18155:5;18151:14;18138:28;18175:33;18200:7;18175:33;:::i;:::-;18275:1;18265:12;;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;18217:70;18335:3;18328:5;18324:15;18311:29;18349:33;18374:7;18349:33;:::i;:::-;18449:1;18439:12;;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;18391:70;18509:3;18502:5;18498:15;18485:29;18523:33;18548:7;18523:33;:::i;:::-;18623:1;18613:12;;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;18565:70;18683:3;18676:5;18672:15;18659:29;18697:33;18722:7;18697:33;:::i;:::-;18797:1;18787:12;;17331:11;;-1:-1:-1;;;;;;17327:84:23;-1:-1:-1;;;;;17413:54:23;;17324:144;17311:158;;22765:179:12;;;:::o;18946:185:23:-;18988:3;19026:5;19020:12;19041:52;19086:6;19081:3;19074:4;19067:5;19063:16;19041:52;:::i;:::-;19109:16;;;;;18946:185;-1:-1:-1;;18946:185:23:o;19136:1231::-;19312:3;19341:1;19374:6;19368:13;19404:3;19426:1;19454:9;19450:2;19446:18;19436:28;;19514:2;19503:9;19499:18;19536;19526:61;;19580:4;19572:6;19568:17;19558:27;;19526:61;19606:2;19654;19646:6;19643:14;19623:18;19620:38;19617:222;;;-1:-1:-1;;;19688:3:23;19681:90;19794:4;19791:1;19784:15;19824:4;19819:3;19812:17;19617:222;19855:18;19882:104;;;;20000:1;19995:320;;;;19848:467;;19882:104;-1:-1:-1;;19915:24:23;;19903:37;;19960:16;;;;-1:-1:-1;19882:104:23;;19995:320;18893:1;18886:14;;;18930:4;18917:18;;20090:1;20104:165;20118:6;20115:1;20112:13;20104:165;;;20196:14;;20183:11;;;20176:35;20239:16;;;;20133:10;;20104:165;;;20108:3;;20298:6;20293:3;20289:16;20282:23;;19848:467;;;;;;;20331:30;20357:3;20349:6;20331:30;:::i;:::-;20324:37;19136:1231;-1:-1:-1;;;;;19136:1231:23:o;20779:251::-;20849:6;20902:2;20890:9;20881:7;20877:23;20873:32;20870:52;;;20918:1;20915;20908:12;20870:52;20950:9;20944:16;20969:31;20994:5;20969:31;:::i;21367:245::-;21434:6;21487:2;21475:9;21466:7;21462:23;21458:32;21455:52;;;21503:1;21500;21493:12;21455:52;21535:9;21529:16;21554:28;21576:5;21554:28;:::i;22002:523::-;22196:4;-1:-1:-1;;;;;22306:2:23;22298:6;22294:15;22283:9;22276:34;22358:2;22350:6;22346:15;22341:2;22330:9;22326:18;22319:43;;22398:6;22393:2;22382:9;22378:18;22371:34;22441:3;22436:2;22425:9;22421:18;22414:31;22462:57;22514:3;22503:9;22499:19;22491:6;22462:57;:::i;:::-;22454:65;22002:523;-1:-1:-1;;;;;;22002:523:23:o;22530:249::-;22599:6;22652:2;22640:9;22631:7;22627:23;22623:32;22620:52;;;22668:1;22665;22658:12;22620:52;22700:9;22694:16;22719:30;22743:5;22719:30;:::i;22784:184::-;-1:-1:-1;;;22833:1:23;22826:88;22933:4;22930:1;22923:15;22957:4;22954:1;22947:15;26474:274;26603:3;26641:6;26635:13;26657:53;26703:6;26698:3;26691:4;26683:6;26679:17;26657:53;:::i;:::-;26726:16;;;;;26474:274;-1:-1:-1;;26474:274:23:o

Swarm Source

ipfs://a87ecde62fee149312fcda6ed3f0c13de955fbdc66b386fb6fae877c53bdcbfc
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.