ETH Price: $2,610.78 (-0.79%)

Token

DragonsOfMidgard (DRAGONS)
 

Overview

Max Total Supply

5,555 DRAGONS

Holders

415

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
umutak47shawty.eth
Balance
1 DRAGONS
0x0b16dd061ad33b866341dc3bf17264bd6111f10d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

5555 Unique Dragons living and evolving on the Ethereum Blockchain governed by $AURA. Dragons Of Midgard is ready to disrupt the NFT market forever with a unique P2E game based in the medieval age, ultimately linking with the Dragons Multiverse. A Multiverse with self sustainability and economy.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DRAGONSOFMIDGARD

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-14
*/

/**
░▒█▀▀▄░▀█▀░▒█▀▀█░▒█░▒█░▒█▀▀▀░▒█▀▀▄░▒█▀▀▀█
░▒█░░░░▒█░░▒█▄▄█░▒█▀▀█░▒█▀▀▀░▒█▄▄▀░░▀▀▀▄▄
░▒█▄▄▀░▄█▄░▒█░░░░▒█░▒█░▒█▄▄▄░▒█░▒█░▒█▄▄▄█
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;


library Strings {

    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
}

abstract contract Context {

    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }
}

interface IERC165 {

    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override
        returns (bool)
    {
        return interfaceId == type(IERC165).interfaceId;
    }
}

interface IERC721 is IERC165 {



    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval( address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner,address indexed operator,bool approved);
    
    function balanceOf(address owner) external view returns (uint256 balance);
    function ownerOf(uint256 tokenId) external view returns (address owner);
    function safeTransferFrom(address from,address to,uint256 tokenId) external;
    function transferFrom(address from,address to,uint256 tokenId) external;
    function approve(address to, uint256 tokenId) external;
    function getApproved(uint256 tokenId)external view returns (address operator);
    function setApprovalForAll(address operator, bool _approved) external;
    function isApprovedForAll(address owner, address operator)external view returns (bool);
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
}

interface IERC721Enumerable is IERC721 {

    function totalSupply() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index)external view returns (uint256);
    function tokenByIndex(uint256 index) external view returns (uint256);
}

interface IERC721Metadata is IERC721 {
 
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

interface IERC721Receiver {

    function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);
}

error ApprovalCallerNotOwnerNorApproved();
error ApprovalQueryForNonexistentToken();
error ApproveToCaller();
error ApprovalToCurrentOwner();
error BalanceQueryForZeroAddress();
error MintedQueryForZeroAddress();
error MintToZeroAddress();
error MintZeroQuantity();
error OwnerIndexOutOfBounds();
error OwnerQueryForNonexistentToken();
error TokenIndexOutOfBounds();
error TransferCallerNotOwnerNorApproved();
error TransferFromIncorrectOwner();
error TransferToNonERC721ReceiverImplementer();
error TransferToZeroAddress();
error UnableDetermineTokenOwner();
error URIQueryForNonexistentToken();

contract ERC721A is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable{
    using Address for address;
    using Strings for uint256;

    struct TokenOwnership {
        address addr;
        uint64 startTimestamp;
    }

    struct AddressData {
        uint128 balance;
        uint128 numberMinted;
    }

    uint256 internal _currentIndex;
 


    string private _name;
    string private _symbol;

    mapping(uint256 => TokenOwnership) internal _ownerships;
    mapping(address => AddressData) private _addressData;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function totalSupply() public view override returns (uint256) {
        return _currentIndex;
    }

    function tokenByIndex(uint256 index)public  view  override  returns (uint256){
        if (index >= totalSupply()) revert TokenIndexOutOfBounds();
        return index;
    }

    function tokenOfOwnerByIndex(address owner, uint256 index)public view override returns (uint256 a){
        if (index >= balanceOf(owner)) revert OwnerIndexOutOfBounds();
        uint256 numMintedSoFar = totalSupply();
        uint256 tokenIdsIdx;
        address currOwnershipAddr;

        // Counter overflow is impossible as the loop breaks when uint256 i is equal to another uint256 numMintedSoFar.
        unchecked {
            for (uint256 i; i < numMintedSoFar; i++) {
                TokenOwnership memory ownership = _ownerships[i];
                if (ownership.addr != address(0)) {
                    currOwnershipAddr = ownership.addr;
                }
                if (currOwnershipAddr == owner) {
                    if (tokenIdsIdx == index) {
                        return i;
                    }
                    tokenIdsIdx++;
                }
            }
        }

        // Execution should never reach this point.
        assert(false);
    }

    function supportsInterface(bytes4 interfaceId)public view virtual override(ERC165, IERC165) returns (bool){
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            interfaceId == type(IERC721Enumerable).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function balanceOf(address owner) public view override returns (uint256) {
        if (owner == address(0)) revert BalanceQueryForZeroAddress();
        return uint256(_addressData[owner].balance);
    }

    function _numberMinted(address owner) internal view returns (uint256) {
        if (owner == address(0)) revert MintedQueryForZeroAddress();
        return uint256(_addressData[owner].numberMinted);
    }

    /**
     * Gas spent here starts off proportional to the maximum mint batch size.
     * It gradually moves to O(1) as tokens get transferred around in the collection over time.
     */
    function ownershipOf(uint256 tokenId) internal view returns (TokenOwnership memory){
        if (!_exists(tokenId)) revert OwnerQueryForNonexistentToken();

        unchecked {
            for (uint256 curr = tokenId; curr >= 0; curr--) {
                TokenOwnership memory ownership = _ownerships[curr];
                if (ownership.addr != address(0)) {
                    return ownership;
                }
            }
        }

        revert UnableDetermineTokenOwner();
    }

    function ownerOf(uint256 tokenId) public view override returns (address) {
        return ownershipOf(tokenId).addr;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory){
        if (!_exists(tokenId)) revert URIQueryForNonexistentToken();
        string memory baseURI = _baseURI();
        return bytes(baseURI).length != 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : "";
    }

    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }

    function approve(address to, uint256 tokenId) public override {
        address owner = ERC721A.ownerOf(tokenId);
        if (to == owner) revert ApprovalToCurrentOwner();
        if (_msgSender() != owner && !isApprovedForAll(owner, _msgSender()))
            revert ApprovalCallerNotOwnerNorApproved();

        _approve(to, tokenId, owner);
    }

    function getApproved(uint256 tokenId) public view override returns (address){
        if (!_exists(tokenId)) revert ApprovalQueryForNonexistentToken();
        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved)public override{
        if (operator == _msgSender()) revert ApproveToCaller();
        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

    function isApprovedForAll(address owner, address operator)  public view virtual override returns (bool){
        return _operatorApprovals[owner][operator];
    }

    function transferFrom( address from, address to, uint256 tokenId) public virtual override {
        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public override {
        _transfer(from, to, tokenId);
        if (!_checkOnERC721Received(from, to, tokenId, _data))
            revert TransferToNonERC721ReceiverImplementer();
    }

    function _exists(uint256 tokenId) internal view returns (bool) {
        return tokenId < _currentIndex;
    }

    function _safeMint(address to, uint256 quantity) internal {
        _safeMint(to, quantity, "");
    }

    function _safeMint(  address to, uint256 quantity, bytes memory _data) internal {
        _mint(to, quantity, _data, true);
    }

    function _mint(address to, uint256 quantity, bytes memory _data, bool safe) internal {
        uint256 startTokenId = _currentIndex;
        if (to == address(0)) revert MintToZeroAddress();
        if (quantity == 0) revert MintZeroQuantity();

        _beforeTokenTransfers(address(0), to, startTokenId, quantity);

        // Overflows are incredibly unrealistic.
        // balance or numberMinted overflow if current value of either + quantity > 3.4e38 (2**128) - 1
        // updatedIndex overflows if _currentIndex + quantity > 1.56e77 (2**256) - 1
        unchecked {
            _addressData[to].balance += uint128(quantity);
            _addressData[to].numberMinted += uint128(quantity);

            _ownerships[startTokenId].addr = to;
            _ownerships[startTokenId].startTimestamp = uint64(block.timestamp);

            uint256 updatedIndex = startTokenId;

            for (uint256 i; i < quantity; i++) {
                emit Transfer(address(0), to, updatedIndex);
                if (
                    safe &&
                    !_checkOnERC721Received(address(0), to, updatedIndex, _data)
                )
                 {
                    revert TransferToNonERC721ReceiverImplementer();
                }

                updatedIndex++;
            }

            _currentIndex = updatedIndex;

           
               
            
        }

        _afterTokenTransfers(address(0), to, startTokenId, quantity);
    }

    function _transfer(address from, address to, uint256 tokenId) private {
        TokenOwnership memory prevOwnership = ownershipOf(tokenId);
        bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr || getApproved(tokenId) == _msgSender() || isApprovedForAll(prevOwnership.addr, _msgSender()));

        if (!isApprovedOrOwner) revert TransferCallerNotOwnerNorApproved();
        if (prevOwnership.addr != from) revert TransferFromIncorrectOwner();
        if (to == address(0)) revert TransferToZeroAddress();
        _beforeTokenTransfers(from, to, tokenId, 1);

        // Clear approvals from the previous owner
        _approve(address(0), tokenId, prevOwnership.addr);

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        // Counter overflow is incredibly unrealistic as tokenId would have to be 2**256.
        unchecked {
            _addressData[from].balance -= 1;
            _addressData[to].balance += 1;

            _ownerships[tokenId].addr = to;
            _ownerships[tokenId].startTimestamp = uint64(block.timestamp);

            // If the ownership slot of tokenId+1 is not explicitly set, that means the transfer initiator owns it.
            // Set the slot of tokenId+1 explicitly in storage to maintain correctness for ownerOf(tokenId+1) calls.
            uint256 nextTokenId = tokenId + 1;
            if (_ownerships[nextTokenId].addr == address(0)) {
                if (_exists(nextTokenId)) {
                    _ownerships[nextTokenId].addr = prevOwnership.addr;
                    _ownerships[nextTokenId].startTimestamp = prevOwnership
                        .startTimestamp;
                }
            }
        }

        emit Transfer(from, to, tokenId);
        _afterTokenTransfers(from, to, tokenId, 1);
    }

    function _approve( address to, uint256 tokenId, address owner) private {
        _tokenApprovals[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    function _checkOnERC721Received(address from,address to, uint256 tokenId, bytes memory _data) private returns (bool) {
        if (to.isContract()) {
            try
                IERC721Receiver(to).onERC721Received(
                    _msgSender(),
                    from,
                    tokenId,
                    _data
                )
            returns (bytes4 retval) {
                return retval == IERC721Receiver(to).onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0)
                    revert TransferToNonERC721ReceiverImplementer();
                else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    function _beforeTokenTransfers(address from, address to, uint256 startTokenId, uint256 quantity) internal virtual {}
    function _afterTokenTransfers(address from, address to, uint256 startTokenId, uint256 quantity) internal virtual {}
}

library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    /**
     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up
     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt
     * hash matches the root of the tree. When processing the proof, the pairs
     * of leafs & pre-images are assumed to be sorted.
     *
     * _Available since v4.4._
     */
    function processProof(bytes32[] memory proof, bytes32 leaf)
        internal
        pure
        returns (bytes32)
    {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = _efficientHash(computedHash, proofElement);
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = _efficientHash(proofElement, computedHash);
            }
        }
        return computedHash;
    }

    function _efficientHash(bytes32 a, bytes32 b)
        private
        pure
        returns (bytes32 value)
    {
        assembly {
            mstore(0x00, a)
            mstore(0x20, b)
            value := keccak256(0x00, 0x40)
        }
    }
}

contract DRAGONSOFMIDGARD is ERC721A, Ownable {
    
    uint256 public maxSupply = 5555;
    uint256 public reserveQuantity = 169;
    uint256 private winnersQuantity=50;
    uint256 public price = 0.1 ether;
    uint256 public preSaleSupply = 2277;
    uint256 public preSalePrice = 0.07 ether;
    uint256 public maxPerWallet = 2;
    uint256 public maxPerTransaction = 5;
    bytes32 private merkleRoot;
    string  public _baseURI1;
    bool    public isPaused =true;
    bool    public isPreSalePaused =true;
    IERC721 public _juvenileObj;
    IERC721 public _ancientObj;
    IERC721 public _greatWyrmObj;
    IERC721 public deployedDragon;

    struct UserPreSaleCounter {    
        uint256 counter;
    }

    struct EVOLVING {
        bool juvenileAge;
        bool ancientAge;
        bool greatWyrmAge;
    }

    mapping(address => UserPreSaleCounter)  public  _preSaleCounter;
    mapping(address => bool)                public  _preSaleAddressExist;
    mapping(uint256 => EVOLVING)            public   evolving;
    mapping(address =>bool)                 public   oldNftAddressExist;
    
    constructor(string memory baseUri) ERC721A("DragonsOfMidgard", "DRAGONS") {
        _baseURI1= baseUri;
    }

    function setMaxSupply(uint256 _maxSupply) public onlyOwner {
        maxSupply = _maxSupply;
    }

    function setReserve(uint256 _reserve) public onlyOwner {
        reserveQuantity = _reserve;
    }

    function setWinnersQuantity(uint256 _winnersQuantity) public onlyOwner {
        require(_winnersQuantity < maxSupply, "amount exceeds");
        winnersQuantity = _winnersQuantity;
    }

    function setPrice(uint256 _price) public onlyOwner {
        price = _price;
    }
    
    function setPresaleSupply(uint256 _preSaleSupply) public onlyOwner {
        preSaleSupply = _preSaleSupply;
    }
    
    function setPreSalePrice(uint256 _price) public onlyOwner {
        preSalePrice = _price;
    }
    
    function setMaxPerWallet(uint256 quantity) public onlyOwner {
        maxPerWallet = quantity;
    }
    
    function setMaxPerTrasaction(uint256 quantity) public onlyOwner {
        maxPerTransaction = quantity;
    }

    function setRoot(bytes32 root) public onlyOwner {
        merkleRoot = root;
    }

    function setBaseURI(string memory baseuri) public onlyOwner {
        _baseURI1 = baseuri;
    }
    
    function flipPauseStatus() public onlyOwner {
        isPaused = !isPaused;
    }

    function flipPreSalePauseStatus() public onlyOwner {
        isPreSalePaused = !isPreSalePaused;
    }

    function setJuvenile(address juvenileAddress) public onlyOwner {
        _juvenileObj = IERC721(juvenileAddress);
    }

    function setAncient(address ancientAddress) public onlyOwner {
        _ancientObj = IERC721(ancientAddress);
    }

    function setGreatWyrm(address greatWyrm) public onlyOwner {
        _greatWyrmObj = IERC721(greatWyrm);
    }

    function setDragonAddress(address contractaddress) public onlyOwner {
        deployedDragon = IERC721(contractaddress);
    }
        
    function _baseURI()internal view override  returns (string memory){
        return _baseURI1;
    }

    function mint(uint256 quantity) public payable {
        require(quantity > 0 ,"quantity should be greater than 0");
        require(isPaused==false,"minting is stopped");
        require(quantity <=maxPerTransaction,"per transaction amount exceeds");
        require(totalSupply()+quantity<=maxSupply-reserveQuantity-winnersQuantity,"all tokens have been minted");
        require(price*quantity == msg.value, "Sent ether value is incorrect");
        _safeMint(msg.sender, quantity);
    }

    function reserve(uint256 quantity) public onlyOwner {
        require(quantity <= reserveQuantity, "the quantity exceeds reserve");
        reserveQuantity -= quantity;
        _safeMint(msg.sender, quantity);
    }

    function mintPreSale(bytes32[] calldata _merkleProof, uint256 quantity) public payable {
         if (_preSaleAddressExist[msg.sender] == false) {
            _preSaleCounter[msg.sender] = UserPreSaleCounter({
                counter: 0
            });
            _preSaleAddressExist[msg.sender] = true;
        }  
        require(isPreSalePaused== false, "turn on minting");
        require(_preSaleCounter[msg.sender].counter + quantity <= maxPerWallet, "Sorry can not mint more than maxwallet");
        require(quantity > 0, "zero not allowed");
        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));
        require(
            MerkleProof.verify(_merkleProof, merkleRoot, leaf),
            "Invalid Proof"
        );
        require(totalSupply() + quantity <= preSaleSupply, "presale amount exceeds");
        require(preSalePrice*quantity==msg.value,"invalid amount");
        _safeMint(msg.sender,quantity);
        _preSaleCounter[msg.sender].counter += quantity;
    }

    function tokensOfOwner(address _owner)public view returns (uint256[] memory) {
        uint256 count = balanceOf(_owner);
        uint256[] memory result = new uint256[](count);
        for (uint256 index = 0; index < count; index++) {
            result[index] = tokenOfOwnerByIndex(_owner, index);
        }
        return result;
    }

    function enterage(uint256 tokenid, string memory age) external {
        if (keccak256(abi.encodePacked(age)) == keccak256(abi.encodePacked("juvenile"))) {
            _juvenileObj.ownerOf(tokenid) == msg.sender;
            evolving[tokenid].juvenileAge = true;
        }
         else if (keccak256(abi.encodePacked(age)) == keccak256(abi.encodePacked("ancient"))) {
            _ancientObj.ownerOf(tokenid) == msg.sender;
            evolving[tokenid].ancientAge = true;
        }
         else if (keccak256(abi.encodePacked(age)) == keccak256(abi.encodePacked("greatwyrm"))) {
            _greatWyrmObj.ownerOf(tokenid) == msg.sender;
            evolving[tokenid].greatWyrmAge = true;
        } else {
            revert("wrong age entered");
        }
    }
    
    function OldNftHolders(uint startIndex ,uint endIndex)public onlyOwner { 
        address owner;
        for(uint i=startIndex; i<= endIndex; i++){
            owner = deployedDragon.ownerOf(i);
            if(oldNftAddressExist[owner]==false){
            uint256  nftBalance  =   deployedDragon.balanceOf(owner);
            _safeMint(owner,nftBalance);
            oldNftAddressExist[owner]=true;
        }
      }
    }
      
    function airDropForWinners(address[] memory _accounts,uint [] memory _balances)public onlyOwner { 
        for(uint i=0; i< _accounts.length; i++){
            _safeMint(_accounts[i],_balances[i]);
            winnersQuantity-=_balances[i];
        }
    }

    function withdraw() public onlyOwner {
        uint balance = address(this).balance;
        payable(msg.sender).transfer(balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"baseUri","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApprovalToCurrentOwner","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerIndexOutOfBounds","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"TokenIndexOutOfBounds","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"UnableDetermineTokenOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[{"internalType":"uint256","name":"startIndex","type":"uint256"},{"internalType":"uint256","name":"endIndex","type":"uint256"}],"name":"OldNftHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_ancientObj","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_baseURI1","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_greatWyrmObj","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_juvenileObj","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_preSaleAddressExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_preSaleCounter","outputs":[{"internalType":"uint256","name":"counter","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"uint256[]","name":"_balances","type":"uint256[]"}],"name":"airDropForWinners","outputs":[],"stateMutability":"nonpayable","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":[],"name":"deployedDragon","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenid","type":"uint256"},{"internalType":"string","name":"age","type":"string"}],"name":"enterage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"evolving","outputs":[{"internalType":"bool","name":"juvenileAge","type":"bool"},{"internalType":"bool","name":"ancientAge","type":"bool"},{"internalType":"bool","name":"greatWyrmAge","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipPauseStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipPreSalePauseStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPreSalePaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mintPreSale","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oldNftAddressExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"preSalePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preSaleSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"reserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserveQuantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ancientAddress","type":"address"}],"name":"setAncient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseuri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractaddress","type":"address"}],"name":"setDragonAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"greatWyrm","type":"address"}],"name":"setGreatWyrm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"juvenileAddress","type":"address"}],"name":"setJuvenile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"setMaxPerTrasaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"setMaxPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPreSalePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_preSaleSupply","type":"uint256"}],"name":"setPresaleSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reserve","type":"uint256"}],"name":"setReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"setRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_winnersQuantity","type":"uint256"}],"name":"setWinnersQuantity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","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"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526115b360085560a96009556032600a5567016345785d8a0000600b556108e5600c5566f8b0a10e470000600d556002600e556005600f556012805461ffff19166101011790553480156200005757600080fd5b50604051620034b8380380620034b88339810160408190526200007a916200021d565b604080518082018252601081526f111c9859dbdb9cd3d9935a5919d85c9960821b602080830191825283518085019094526007845266445241474f4e5360c81b908401528151919291620000d19160019162000177565b508051620000e790600290602084019062000177565b50505062000104620000fe6200012160201b60201c565b62000125565b80516200011990601190602084019062000177565b50506200034c565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200018590620002f9565b90600052602060002090601f016020900481019282620001a95760008555620001f4565b82601f10620001c457805160ff1916838001178555620001f4565b82800160010185558215620001f4579182015b82811115620001f4578251825591602001919060010190620001d7565b506200020292915062000206565b5090565b5b8082111562000202576000815560010162000207565b600060208083850312156200023157600080fd5b82516001600160401b03808211156200024957600080fd5b818501915085601f8301126200025e57600080fd5b81518181111562000273576200027362000336565b604051601f8201601f19908116603f011681019083821181831017156200029e576200029e62000336565b816040528281528886848701011115620002b757600080fd5b600093505b82841015620002db5784840186015181850187015292850192620002bc565b82841115620002ed5760008684830101525b98975050505050505050565b600181811c908216806200030e57607f821691505b602082108114156200033057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61315c806200035c6000396000f3fe6080604052600436106103a25760003560e01c806378033c52116101e7578063a96a3f611161010d578063dda26e6a116100a0578063e99965af1161006f578063e99965af14610ae2578063f2fde38b14610b12578063f3c7fbbb14610b32578063fa62884c14610b6257600080fd5b8063dda26e6a14610a43578063e268e4d314610a63578063e757c17d14610a83578063e985e9c514610a9957600080fd5b8063b96502cb116100dc578063b96502cb146109cd578063c87b56dd146109ed578063d5abeb0114610a0d578063dab5f34014610a2357600080fd5b8063a96a3f6114610953578063af49aca014610973578063b187bd2614610993578063b88d4fde146109ad57600080fd5b80638462151c11610185578063a035b1fe11610154578063a035b1fe146108a8578063a0712d68146108be578063a22cb465146108d1578063a6c367db146108f157600080fd5b80638462151c146108285780638da5cb5b1461085557806391b7f5ed1461087357806395d89b411461089357600080fd5b80637d7eee42116101c15780637d7eee42146107af5780637fb1509f146107cf578063819b25ba146107f557806381aa92a21461081557600080fd5b806378033c521461074f5780637a40fdd71461076f5780637b239ee11461078f57600080fd5b80633ccfd60b116102cc57806355f804b31161026a57806367f8ccb81161023957806367f8ccb8146106e55780636f8b44b0146106fa57806370a082311461071a578063715018a61461073a57600080fd5b806355f804b31461066557806358dbb7cf146106855780635e63bb55146106a55780636352211e146106c557600080fd5b8063453c2310116102a6578063453c2310146105f95780634b980d671461060f5780634f6ccce71461062557806354894cd11461064557600080fd5b80633ccfd60b146105a45780634256dbe3146105b957806342842e0e146105d957600080fd5b806323b872dd116103445780632e055bcc116103135780632e055bcc1461052f5780632e280e32146105455780632f745c5914610564578063386ed9261461058457600080fd5b806323b872dd146104a257806327b1425a146104c25780632b15a7f0146104ef5780632bac10811461050f57600080fd5b8063095ea7b311610380578063095ea7b31461043657806311e0f0631461045857806318160ddd1461046d578063183aeaf41461048c57600080fd5b806301ffc9a7146103a757806306fdde03146103dc578063081812fc146103fe575b600080fd5b3480156103b357600080fd5b506103c76103c2366004612d1d565b610b77565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b506103f1610be4565b6040516103d39190612efa565b34801561040a57600080fd5b5061041e610419366004612d04565b610c76565b6040516001600160a01b0390911681526020016103d3565b34801561044257600080fd5b50610456610451366004612b96565b610cbc565b005b34801561046457600080fd5b506103f1610d4a565b34801561047957600080fd5b506000545b6040519081526020016103d3565b34801561049857600080fd5b5061047e60095481565b3480156104ae57600080fd5b506104566104bd366004612aa3565b610dd8565b3480156104ce57600080fd5b5061047e6104dd366004612a30565b60166020526000908152604090205481565b3480156104fb57600080fd5b5061045661050a366004612d04565b610de3565b34801561051b57600080fd5b5061045661052a366004612da4565b610e1b565b34801561053b57600080fd5b5061047e600c5481565b34801561055157600080fd5b506012546103c790610100900460ff1681565b34801561057057600080fd5b5061047e61057f366004612b96565b611146565b34801561059057600080fd5b5061045661059f366004612bc2565b61121a565b3480156105b057600080fd5b506104566112cf565b3480156105c557600080fd5b506104566105d4366004612d04565b611328565b3480156105e557600080fd5b506104566105f4366004612aa3565b611357565b34801561060557600080fd5b5061047e600e5481565b34801561061b57600080fd5b5061047e600f5481565b34801561063157600080fd5b5061047e610640366004612d04565b611372565b34801561065157600080fd5b50610456610660366004612a30565b611399565b34801561067157600080fd5b50610456610680366004612d57565b6113e5565b34801561069157600080fd5b5060135461041e906001600160a01b031681565b3480156106b157600080fd5b506104566106c0366004612a30565b611422565b3480156106d157600080fd5b5061041e6106e0366004612d04565b61146e565b3480156106f157600080fd5b50610456611480565b34801561070657600080fd5b50610456610715366004612d04565b6114c7565b34801561072657600080fd5b5061047e610735366004612a30565b6114f6565b34801561074657600080fd5b50610456611544565b34801561075b57600080fd5b5061045661076a366004612d04565b61157a565b34801561077b57600080fd5b5061045661078a366004612de0565b6115eb565b34801561079b57600080fd5b5060155461041e906001600160a01b031681565b3480156107bb57600080fd5b506104566107ca366004612d04565b611786565b3480156107db57600080fd5b5060125461041e906201000090046001600160a01b031681565b34801561080157600080fd5b50610456610810366004612d04565b6117b5565b610456610823366004612c8a565b611856565b34801561083457600080fd5b50610848610843366004612a30565b611b3a565b6040516103d39190612eb6565b34801561086157600080fd5b506007546001600160a01b031661041e565b34801561087f57600080fd5b5061045661088e366004612d04565b611bdb565b34801561089f57600080fd5b506103f1611c0a565b3480156108b457600080fd5b5061047e600b5481565b6104566108cc366004612d04565b611c19565b3480156108dd57600080fd5b506104566108ec366004612b63565b611df2565b3480156108fd57600080fd5b5061093461090c366004612d04565b60186020526000908152604090205460ff808216916101008104821691620100009091041683565b60408051931515845291151560208401521515908201526060016103d3565b34801561095f57600080fd5b5061045661096e366004612a30565b611e88565b34801561097f57600080fd5b5060145461041e906001600160a01b031681565b34801561099f57600080fd5b506012546103c79060ff1681565b3480156109b957600080fd5b506104566109c8366004612ae4565b611ed4565b3480156109d957600080fd5b506104566109e8366004612d04565b611f08565b3480156109f957600080fd5b506103f1610a08366004612d04565b611f37565b348015610a1957600080fd5b5061047e60085481565b348015610a2f57600080fd5b50610456610a3e366004612d04565b611fbe565b348015610a4f57600080fd5b50610456610a5e366004612a30565b611fed565b348015610a6f57600080fd5b50610456610a7e366004612d04565b612041565b348015610a8f57600080fd5b5061047e600d5481565b348015610aa557600080fd5b506103c7610ab4366004612a6a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b348015610aee57600080fd5b506103c7610afd366004612a30565b60196020526000908152604090205460ff1681565b348015610b1e57600080fd5b50610456610b2d366004612a30565b612070565b348015610b3e57600080fd5b506103c7610b4d366004612a30565b60176020526000908152604090205460ff1681565b348015610b6e57600080fd5b50610456612108565b60006001600160e01b031982166380ac58cd60e01b1480610ba857506001600160e01b03198216635b5e139f60e01b145b80610bc357506001600160e01b0319821663780e9d6360e01b145b80610bde57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060018054610bf390613023565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1f90613023565b8015610c6c5780601f10610c4157610100808354040283529160200191610c6c565b820191906000526020600020905b815481529060010190602001808311610c4f57829003601f168201915b5050505050905090565b6000610c83826000541190565b610ca0576040516333d1c03960e21b815260040160405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610cc78261146e565b9050806001600160a01b0316836001600160a01b03161415610cfc5760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614801590610d1c5750610d1a8133610ab4565b155b15610d3a576040516367d9dca160e11b815260040160405180910390fd5b610d45838383612146565b505050565b60118054610d5790613023565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8390613023565b8015610dd05780601f10610da557610100808354040283529160200191610dd0565b820191906000526020600020905b815481529060010190602001808311610db357829003601f168201915b505050505081565b610d458383836121a2565b6007546001600160a01b03163314610e165760405162461bcd60e51b8152600401610e0d90612f0d565b60405180910390fd5b600f55565b604051676a7576656e696c6560c01b60208201526028016040516020818303038152906040528051906020012081604051602001610e599190612e2e565b604051602081830303815290604052805190602001201415610f16576012546040516331a9108f60e11b81526004810184905233916201000090046001600160a01b031690636352211e9060240160206040518083038186803b158015610ebf57600080fd5b505afa158015610ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef79190612a4d565b50506000828152601860205260409020805460ff191660011790555050565b60405166185b98da595b9d60ca1b60208201526027016040516020818303038152906040528051906020012081604051602001610f539190612e2e565b60405160208183030381529060405280519060200120141561100c576013546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e9060240160206040518083038186803b158015610fb357600080fd5b505afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190612a4d565b50506000828152601860205260409020805461ff0019166101001790555050565b6040516867726561747779726d60b81b6020820152602901604051602081830303815290604052805190602001208160405160200161104b9190612e2e565b604051602081830303815290604052805190602001201415611106576014546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e9060240160206040518083038186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190612a4d565b50506000828152601860205260409020805462ff00001916620100001790555050565b60405162461bcd60e51b81526020600482015260116024820152701ddc9bdb99c81859d948195b9d195c9959607a1b6044820152606401610e0d565b5050565b6000611151836114f6565b8210611170576040516306ed618760e11b815260040160405180910390fd5b600080549080805b83811015611208576000818152600360209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b031691830191909152156111ca57805192505b876001600160a01b0316836001600160a01b031614156111ff57868414156111f857509350610bde92505050565b6001909301925b50600101611178565b5061121161308d565b50505092915050565b6007546001600160a01b031633146112445760405162461bcd60e51b8152600401610e0d90612f0d565b60005b8251811015610d455761128c838281518110611265576112656130cf565b602002602001015183838151811061127f5761127f6130cf565b60200260200101516123bf565b81818151811061129e5761129e6130cf565b6020026020010151600a60008282546112b79190612fe0565b909155508190506112c78161305e565b915050611247565b6007546001600160a01b031633146112f95760405162461bcd60e51b8152600401610e0d90612f0d565b6040514790339082156108fc029083906000818181858888f19350505050158015611142573d6000803e3d6000fd5b6007546001600160a01b031633146113525760405162461bcd60e51b8152600401610e0d90612f0d565b600955565b610d4583838360405180602001604052806000815250611ed4565b600080548210611395576040516329c8c00760e21b815260040160405180910390fd5b5090565b6007546001600160a01b031633146113c35760405162461bcd60e51b8152600401610e0d90612f0d565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b0316331461140f5760405162461bcd60e51b8152600401610e0d90612f0d565b80516111429060119060208401906128b7565b6007546001600160a01b0316331461144c5760405162461bcd60e51b8152600401610e0d90612f0d565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000611479826123d9565b5192915050565b6007546001600160a01b031633146114aa5760405162461bcd60e51b8152600401610e0d90612f0d565b6012805461ff001981166101009182900460ff1615909102179055565b6007546001600160a01b031633146114f15760405162461bcd60e51b8152600401610e0d90612f0d565b600855565b60006001600160a01b03821661151f576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600460205260409020546001600160801b031690565b6007546001600160a01b0316331461156e5760405162461bcd60e51b8152600401610e0d90612f0d565b611578600061246d565b565b6007546001600160a01b031633146115a45760405162461bcd60e51b8152600401610e0d90612f0d565b60085481106115e65760405162461bcd60e51b815260206004820152600e60248201526d616d6f756e74206578636565647360901b6044820152606401610e0d565b600a55565b6007546001600160a01b031633146116155760405162461bcd60e51b8152600401610e0d90612f0d565b6000825b828111611780576015546040516331a9108f60e11b8152600481018390526001600160a01b0390911690636352211e9060240160206040518083038186803b15801561166457600080fd5b505afa158015611678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169c9190612a4d565b6001600160a01b03811660009081526019602052604090205490925060ff1661176e576015546040516370a0823160e01b81526001600160a01b03848116600483015260009216906370a082319060240160206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612d8b565b905061174983826123bf565b506001600160a01b0382166000908152601960205260409020805460ff191660011790555b806117788161305e565b915050611619565b50505050565b6007546001600160a01b031633146117b05760405162461bcd60e51b8152600401610e0d90612f0d565b600d55565b6007546001600160a01b031633146117df5760405162461bcd60e51b8152600401610e0d90612f0d565b6009548111156118315760405162461bcd60e51b815260206004820152601c60248201527f746865207175616e7469747920657863656564732072657365727665000000006044820152606401610e0d565b80600960008282546118439190612fe0565b90915550611853905033826123bf565b50565b3360009081526017602052604090205460ff1661189d57604080516020808201835260008083523381526016825283812092519092556017905220805460ff191660011790555b601254610100900460ff16156118e75760405162461bcd60e51b815260206004820152600f60248201526e7475726e206f6e206d696e74696e6760881b6044820152606401610e0d565b600e5433600090815260166020526040902054611905908390612f95565b11156119625760405162461bcd60e51b815260206004820152602660248201527f536f7272792063616e206e6f74206d696e74206d6f7265207468616e206d61786044820152651dd85b1b195d60d21b6064820152608401610e0d565b600081116119a55760405162461bcd60e51b815260206004820152601060248201526f1e995c9bc81b9bdd08185b1b1bddd95960821b6044820152606401610e0d565b6040516bffffffffffffffffffffffff193360601b166020820152600090603401604051602081830303815290604052805190602001209050611a1f8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060105491508490506124bf565b611a5b5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210283937b7b360991b6044820152606401610e0d565b600c5482611a6860005490565b611a729190612f95565b1115611ab95760405162461bcd60e51b815260206004820152601660248201527570726573616c6520616d6f756e74206578636565647360501b6044820152606401610e0d565b3482600d54611ac89190612fc1565b14611b065760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610e0d565b611b1033836123bf565b3360009081526016602052604081208054849290611b2f908490612f95565b909155505050505050565b60606000611b47836114f6565b90506000816001600160401b03811115611b6357611b636130e5565b604051908082528060200260200182016040528015611b8c578160200160208202803683370190505b50905060005b82811015611bd357611ba48582611146565b828281518110611bb657611bb66130cf565b602090810291909101015280611bcb8161305e565b915050611b92565b509392505050565b6007546001600160a01b03163314611c055760405162461bcd60e51b8152600401610e0d90612f0d565b600b55565b606060028054610bf390613023565b60008111611c735760405162461bcd60e51b815260206004820152602160248201527f7175616e746974792073686f756c642062652067726561746572207468616e206044820152600360fc1b6064820152608401610e0d565b60125460ff1615611cbb5760405162461bcd60e51b81526020600482015260126024820152711b5a5b9d1a5b99c81a5cc81cdd1bdc1c195960721b6044820152606401610e0d565b600f54811115611d0d5760405162461bcd60e51b815260206004820152601e60248201527f706572207472616e73616374696f6e20616d6f756e74206578636565647300006044820152606401610e0d565b600a54600954600854611d209190612fe0565b611d2a9190612fe0565b81611d3460005490565b611d3e9190612f95565b1115611d8c5760405162461bcd60e51b815260206004820152601b60248201527f616c6c20746f6b656e732068617665206265656e206d696e74656400000000006044820152606401610e0d565b3481600b54611d9b9190612fc1565b14611de85760405162461bcd60e51b815260206004820152601d60248201527f53656e742065746865722076616c756520697320696e636f72726563740000006044820152606401610e0d565b61185333826123bf565b6001600160a01b038216331415611e1c5760405163b06307db60e01b815260040160405180910390fd5b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6007546001600160a01b03163314611eb25760405162461bcd60e51b8152600401610e0d90612f0d565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b611edf8484846121a2565b611eeb848484846124d5565b611780576040516368d2bf6b60e11b815260040160405180910390fd5b6007546001600160a01b03163314611f325760405162461bcd60e51b8152600401610e0d90612f0d565b600c55565b6060611f44826000541190565b611f6157604051630a14c4b560e41b815260040160405180910390fd5b6000611f6b6125e4565b9050805160001415611f8c5760405180602001604052806000815250611fb7565b80611f96846125f3565b604051602001611fa7929190612e4a565b6040516020818303038152906040525b9392505050565b6007546001600160a01b03163314611fe85760405162461bcd60e51b8152600401610e0d90612f0d565b601055565b6007546001600160a01b031633146120175760405162461bcd60e51b8152600401610e0d90612f0d565b601280546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6007546001600160a01b0316331461206b5760405162461bcd60e51b8152600401610e0d90612f0d565b600e55565b6007546001600160a01b0316331461209a5760405162461bcd60e51b8152600401610e0d90612f0d565b6001600160a01b0381166120ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e0d565b6118538161246d565b6007546001600160a01b031633146121325760405162461bcd60e51b8152600401610e0d90612f0d565b6012805460ff19811660ff90911615179055565b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006121ad826123d9565b80519091506000906001600160a01b0316336001600160a01b031614806121e45750336121d984610c76565b6001600160a01b0316145b806121f6575081516121f69033610ab4565b90508061221657604051632ce44b5f60e11b815260040160405180910390fd5b846001600160a01b031682600001516001600160a01b03161461224b5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b03841661227257604051633a954ecd60e21b815260040160405180910390fd5b6122826000848460000151612146565b6001600160a01b03858116600090815260046020908152604080832080546001600160801b03198082166001600160801b03928316600019018316179092558986168086528386208054938416938316600190810190931693909317909255888552600390935281842080546001600160e01b031916909117600160a01b426001600160401b03160217905590860180835291205490911661237557612329816000541190565b1561237557825160008281526003602090815260409091208054918601516001600160401b0316600160a01b026001600160e01b03199092166001600160a01b03909316929092171790555b5082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b6111428282604051806020016040528060008152506126f0565b60408051808201909152600080825260208201526123f8826000541190565b61241557604051636f96cda160e11b815260040160405180910390fd5b815b6000818152600360209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b03169183019190915215612463579392505050565b5060001901612417565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826124cc85846126fd565b14949350505050565b60006001600160a01b0384163b156125d857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612519903390899088908890600401612e79565b602060405180830381600087803b15801561253357600080fd5b505af1925050508015612563575060408051601f3d908101601f1916820190925261256091810190612d3a565b60015b6125be573d808015612591576040519150601f19603f3d011682016040523d82523d6000602084013e612596565b606091505b5080516125b6576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506125dc565b5060015b949350505050565b606060118054610bf390613023565b6060816126175750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612641578061262b8161305e565b915061263a9050600a83612fad565b915061261b565b6000816001600160401b0381111561265b5761265b6130e5565b6040519080825280601f01601f191660200182016040528015612685576020820181803683370190505b5090505b84156125dc5761269a600183612fe0565b91506126a7600a86613079565b6126b2906030612f95565b60f81b8183815181106126c7576126c76130cf565b60200101906001600160f81b031916908160001a9053506126e9600a86612fad565b9450612689565b610d458383836001612769565b600081815b8451811015611bd357600085828151811061271f5761271f6130cf565b602002602001015190508083116127455760008381526020829052604090209250612756565b600081815260208490526040902092505b50806127618161305e565b915050612702565b6000546001600160a01b03851661279257604051622e076360e81b815260040160405180910390fd5b836127b05760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03851660008181526004602090815260408083208054600160801b6001600160801b031982166001600160801b039283168c01831690811782900483168c01909216021790558483526003909152812080546001600160e01b031916909217600160a01b426001600160401b0316021790915581905b858110156128ae5760405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4838015612884575061288260008884886124d5565b155b156128a2576040516368d2bf6b60e11b815260040160405180910390fd5b6001918201910161282d565b506000556123b8565b8280546128c390613023565b90600052602060002090601f0160209004810192826128e5576000855561292b565b82601f106128fe57805160ff191683800117855561292b565b8280016001018555821561292b579182015b8281111561292b578251825591602001919060010190612910565b506113959291505b808211156113955760008155600101612933565b60006001600160401b03831115612960576129606130e5565b612973601f8401601f1916602001612f42565b905082815283838301111561298757600080fd5b828260208301376000602084830101529392505050565b600082601f8301126129af57600080fd5b813560206129c46129bf83612f72565b612f42565b80838252828201915082860187848660051b89010111156129e457600080fd5b60005b85811015612a03578135845292840192908401906001016129e7565b5090979650505050505050565b600082601f830112612a2157600080fd5b611fb783833560208501612947565b600060208284031215612a4257600080fd5b8135611fb7816130fb565b600060208284031215612a5f57600080fd5b8151611fb7816130fb565b60008060408385031215612a7d57600080fd5b8235612a88816130fb565b91506020830135612a98816130fb565b809150509250929050565b600080600060608486031215612ab857600080fd5b8335612ac3816130fb565b92506020840135612ad3816130fb565b929592945050506040919091013590565b60008060008060808587031215612afa57600080fd5b8435612b05816130fb565b93506020850135612b15816130fb565b92506040850135915060608501356001600160401b03811115612b3757600080fd5b8501601f81018713612b4857600080fd5b612b5787823560208401612947565b91505092959194509250565b60008060408385031215612b7657600080fd5b8235612b81816130fb565b915060208301358015158114612a9857600080fd5b60008060408385031215612ba957600080fd5b8235612bb4816130fb565b946020939093013593505050565b60008060408385031215612bd557600080fd5b82356001600160401b0380821115612bec57600080fd5b818501915085601f830112612c0057600080fd5b81356020612c106129bf83612f72565b8083825282820191508286018a848660051b8901011115612c3057600080fd5b600096505b84871015612c5c578035612c48816130fb565b835260019690960195918301918301612c35565b5096505086013592505080821115612c7357600080fd5b50612c808582860161299e565b9150509250929050565b600080600060408486031215612c9f57600080fd5b83356001600160401b0380821115612cb657600080fd5b818601915086601f830112612cca57600080fd5b813581811115612cd957600080fd5b8760208260051b8501011115612cee57600080fd5b6020928301989097509590910135949350505050565b600060208284031215612d1657600080fd5b5035919050565b600060208284031215612d2f57600080fd5b8135611fb781613110565b600060208284031215612d4c57600080fd5b8151611fb781613110565b600060208284031215612d6957600080fd5b81356001600160401b03811115612d7f57600080fd5b6125dc84828501612a10565b600060208284031215612d9d57600080fd5b5051919050565b60008060408385031215612db757600080fd5b8235915060208301356001600160401b03811115612dd457600080fd5b612c8085828601612a10565b60008060408385031215612df357600080fd5b50508035926020909101359150565b60008151808452612e1a816020860160208601612ff7565b601f01601f19169290920160200192915050565b60008251612e40818460208701612ff7565b9190910192915050565b60008351612e5c818460208801612ff7565b835190830190612e70818360208801612ff7565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612eac90830184612e02565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015612eee57835183529284019291840191600101612ed2565b50909695505050505050565b602081526000611fb76020830184612e02565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f191681016001600160401b0381118282101715612f6a57612f6a6130e5565b604052919050565b60006001600160401b03821115612f8b57612f8b6130e5565b5060051b60200190565b60008219821115612fa857612fa86130a3565b500190565b600082612fbc57612fbc6130b9565b500490565b6000816000190483118215151615612fdb57612fdb6130a3565b500290565b600082821015612ff257612ff26130a3565b500390565b60005b83811015613012578181015183820152602001612ffa565b838111156117805750506000910152565b600181811c9082168061303757607f821691505b6020821081141561305857634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613072576130726130a3565b5060010190565b600082613088576130886130b9565b500690565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461185357600080fd5b6001600160e01b03198116811461185357600080fdfea2646970667358221220a2bc42b4f4a5db9a6b29e1887523f29f4bc207e2d297fd1310b6ae409d46395564736f6c634300080700330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003268747470733a2f2f6170692e647261676f6e736f666d6964676172642e636f6d2f6170692f6e66742f7779726d6c696e672f0000000000000000000000000000

Deployed Bytecode

0x6080604052600436106103a25760003560e01c806378033c52116101e7578063a96a3f611161010d578063dda26e6a116100a0578063e99965af1161006f578063e99965af14610ae2578063f2fde38b14610b12578063f3c7fbbb14610b32578063fa62884c14610b6257600080fd5b8063dda26e6a14610a43578063e268e4d314610a63578063e757c17d14610a83578063e985e9c514610a9957600080fd5b8063b96502cb116100dc578063b96502cb146109cd578063c87b56dd146109ed578063d5abeb0114610a0d578063dab5f34014610a2357600080fd5b8063a96a3f6114610953578063af49aca014610973578063b187bd2614610993578063b88d4fde146109ad57600080fd5b80638462151c11610185578063a035b1fe11610154578063a035b1fe146108a8578063a0712d68146108be578063a22cb465146108d1578063a6c367db146108f157600080fd5b80638462151c146108285780638da5cb5b1461085557806391b7f5ed1461087357806395d89b411461089357600080fd5b80637d7eee42116101c15780637d7eee42146107af5780637fb1509f146107cf578063819b25ba146107f557806381aa92a21461081557600080fd5b806378033c521461074f5780637a40fdd71461076f5780637b239ee11461078f57600080fd5b80633ccfd60b116102cc57806355f804b31161026a57806367f8ccb81161023957806367f8ccb8146106e55780636f8b44b0146106fa57806370a082311461071a578063715018a61461073a57600080fd5b806355f804b31461066557806358dbb7cf146106855780635e63bb55146106a55780636352211e146106c557600080fd5b8063453c2310116102a6578063453c2310146105f95780634b980d671461060f5780634f6ccce71461062557806354894cd11461064557600080fd5b80633ccfd60b146105a45780634256dbe3146105b957806342842e0e146105d957600080fd5b806323b872dd116103445780632e055bcc116103135780632e055bcc1461052f5780632e280e32146105455780632f745c5914610564578063386ed9261461058457600080fd5b806323b872dd146104a257806327b1425a146104c25780632b15a7f0146104ef5780632bac10811461050f57600080fd5b8063095ea7b311610380578063095ea7b31461043657806311e0f0631461045857806318160ddd1461046d578063183aeaf41461048c57600080fd5b806301ffc9a7146103a757806306fdde03146103dc578063081812fc146103fe575b600080fd5b3480156103b357600080fd5b506103c76103c2366004612d1d565b610b77565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b506103f1610be4565b6040516103d39190612efa565b34801561040a57600080fd5b5061041e610419366004612d04565b610c76565b6040516001600160a01b0390911681526020016103d3565b34801561044257600080fd5b50610456610451366004612b96565b610cbc565b005b34801561046457600080fd5b506103f1610d4a565b34801561047957600080fd5b506000545b6040519081526020016103d3565b34801561049857600080fd5b5061047e60095481565b3480156104ae57600080fd5b506104566104bd366004612aa3565b610dd8565b3480156104ce57600080fd5b5061047e6104dd366004612a30565b60166020526000908152604090205481565b3480156104fb57600080fd5b5061045661050a366004612d04565b610de3565b34801561051b57600080fd5b5061045661052a366004612da4565b610e1b565b34801561053b57600080fd5b5061047e600c5481565b34801561055157600080fd5b506012546103c790610100900460ff1681565b34801561057057600080fd5b5061047e61057f366004612b96565b611146565b34801561059057600080fd5b5061045661059f366004612bc2565b61121a565b3480156105b057600080fd5b506104566112cf565b3480156105c557600080fd5b506104566105d4366004612d04565b611328565b3480156105e557600080fd5b506104566105f4366004612aa3565b611357565b34801561060557600080fd5b5061047e600e5481565b34801561061b57600080fd5b5061047e600f5481565b34801561063157600080fd5b5061047e610640366004612d04565b611372565b34801561065157600080fd5b50610456610660366004612a30565b611399565b34801561067157600080fd5b50610456610680366004612d57565b6113e5565b34801561069157600080fd5b5060135461041e906001600160a01b031681565b3480156106b157600080fd5b506104566106c0366004612a30565b611422565b3480156106d157600080fd5b5061041e6106e0366004612d04565b61146e565b3480156106f157600080fd5b50610456611480565b34801561070657600080fd5b50610456610715366004612d04565b6114c7565b34801561072657600080fd5b5061047e610735366004612a30565b6114f6565b34801561074657600080fd5b50610456611544565b34801561075b57600080fd5b5061045661076a366004612d04565b61157a565b34801561077b57600080fd5b5061045661078a366004612de0565b6115eb565b34801561079b57600080fd5b5060155461041e906001600160a01b031681565b3480156107bb57600080fd5b506104566107ca366004612d04565b611786565b3480156107db57600080fd5b5060125461041e906201000090046001600160a01b031681565b34801561080157600080fd5b50610456610810366004612d04565b6117b5565b610456610823366004612c8a565b611856565b34801561083457600080fd5b50610848610843366004612a30565b611b3a565b6040516103d39190612eb6565b34801561086157600080fd5b506007546001600160a01b031661041e565b34801561087f57600080fd5b5061045661088e366004612d04565b611bdb565b34801561089f57600080fd5b506103f1611c0a565b3480156108b457600080fd5b5061047e600b5481565b6104566108cc366004612d04565b611c19565b3480156108dd57600080fd5b506104566108ec366004612b63565b611df2565b3480156108fd57600080fd5b5061093461090c366004612d04565b60186020526000908152604090205460ff808216916101008104821691620100009091041683565b60408051931515845291151560208401521515908201526060016103d3565b34801561095f57600080fd5b5061045661096e366004612a30565b611e88565b34801561097f57600080fd5b5060145461041e906001600160a01b031681565b34801561099f57600080fd5b506012546103c79060ff1681565b3480156109b957600080fd5b506104566109c8366004612ae4565b611ed4565b3480156109d957600080fd5b506104566109e8366004612d04565b611f08565b3480156109f957600080fd5b506103f1610a08366004612d04565b611f37565b348015610a1957600080fd5b5061047e60085481565b348015610a2f57600080fd5b50610456610a3e366004612d04565b611fbe565b348015610a4f57600080fd5b50610456610a5e366004612a30565b611fed565b348015610a6f57600080fd5b50610456610a7e366004612d04565b612041565b348015610a8f57600080fd5b5061047e600d5481565b348015610aa557600080fd5b506103c7610ab4366004612a6a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b348015610aee57600080fd5b506103c7610afd366004612a30565b60196020526000908152604090205460ff1681565b348015610b1e57600080fd5b50610456610b2d366004612a30565b612070565b348015610b3e57600080fd5b506103c7610b4d366004612a30565b60176020526000908152604090205460ff1681565b348015610b6e57600080fd5b50610456612108565b60006001600160e01b031982166380ac58cd60e01b1480610ba857506001600160e01b03198216635b5e139f60e01b145b80610bc357506001600160e01b0319821663780e9d6360e01b145b80610bde57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060018054610bf390613023565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1f90613023565b8015610c6c5780601f10610c4157610100808354040283529160200191610c6c565b820191906000526020600020905b815481529060010190602001808311610c4f57829003601f168201915b5050505050905090565b6000610c83826000541190565b610ca0576040516333d1c03960e21b815260040160405180910390fd5b506000908152600560205260409020546001600160a01b031690565b6000610cc78261146e565b9050806001600160a01b0316836001600160a01b03161415610cfc5760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614801590610d1c5750610d1a8133610ab4565b155b15610d3a576040516367d9dca160e11b815260040160405180910390fd5b610d45838383612146565b505050565b60118054610d5790613023565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8390613023565b8015610dd05780601f10610da557610100808354040283529160200191610dd0565b820191906000526020600020905b815481529060010190602001808311610db357829003601f168201915b505050505081565b610d458383836121a2565b6007546001600160a01b03163314610e165760405162461bcd60e51b8152600401610e0d90612f0d565b60405180910390fd5b600f55565b604051676a7576656e696c6560c01b60208201526028016040516020818303038152906040528051906020012081604051602001610e599190612e2e565b604051602081830303815290604052805190602001201415610f16576012546040516331a9108f60e11b81526004810184905233916201000090046001600160a01b031690636352211e9060240160206040518083038186803b158015610ebf57600080fd5b505afa158015610ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef79190612a4d565b50506000828152601860205260409020805460ff191660011790555050565b60405166185b98da595b9d60ca1b60208201526027016040516020818303038152906040528051906020012081604051602001610f539190612e2e565b60405160208183030381529060405280519060200120141561100c576013546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e9060240160206040518083038186803b158015610fb357600080fd5b505afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190612a4d565b50506000828152601860205260409020805461ff0019166101001790555050565b6040516867726561747779726d60b81b6020820152602901604051602081830303815290604052805190602001208160405160200161104b9190612e2e565b604051602081830303815290604052805190602001201415611106576014546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e9060240160206040518083038186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e39190612a4d565b50506000828152601860205260409020805462ff00001916620100001790555050565b60405162461bcd60e51b81526020600482015260116024820152701ddc9bdb99c81859d948195b9d195c9959607a1b6044820152606401610e0d565b5050565b6000611151836114f6565b8210611170576040516306ed618760e11b815260040160405180910390fd5b600080549080805b83811015611208576000818152600360209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b031691830191909152156111ca57805192505b876001600160a01b0316836001600160a01b031614156111ff57868414156111f857509350610bde92505050565b6001909301925b50600101611178565b5061121161308d565b50505092915050565b6007546001600160a01b031633146112445760405162461bcd60e51b8152600401610e0d90612f0d565b60005b8251811015610d455761128c838281518110611265576112656130cf565b602002602001015183838151811061127f5761127f6130cf565b60200260200101516123bf565b81818151811061129e5761129e6130cf565b6020026020010151600a60008282546112b79190612fe0565b909155508190506112c78161305e565b915050611247565b6007546001600160a01b031633146112f95760405162461bcd60e51b8152600401610e0d90612f0d565b6040514790339082156108fc029083906000818181858888f19350505050158015611142573d6000803e3d6000fd5b6007546001600160a01b031633146113525760405162461bcd60e51b8152600401610e0d90612f0d565b600955565b610d4583838360405180602001604052806000815250611ed4565b600080548210611395576040516329c8c00760e21b815260040160405180910390fd5b5090565b6007546001600160a01b031633146113c35760405162461bcd60e51b8152600401610e0d90612f0d565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b0316331461140f5760405162461bcd60e51b8152600401610e0d90612f0d565b80516111429060119060208401906128b7565b6007546001600160a01b0316331461144c5760405162461bcd60e51b8152600401610e0d90612f0d565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000611479826123d9565b5192915050565b6007546001600160a01b031633146114aa5760405162461bcd60e51b8152600401610e0d90612f0d565b6012805461ff001981166101009182900460ff1615909102179055565b6007546001600160a01b031633146114f15760405162461bcd60e51b8152600401610e0d90612f0d565b600855565b60006001600160a01b03821661151f576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600460205260409020546001600160801b031690565b6007546001600160a01b0316331461156e5760405162461bcd60e51b8152600401610e0d90612f0d565b611578600061246d565b565b6007546001600160a01b031633146115a45760405162461bcd60e51b8152600401610e0d90612f0d565b60085481106115e65760405162461bcd60e51b815260206004820152600e60248201526d616d6f756e74206578636565647360901b6044820152606401610e0d565b600a55565b6007546001600160a01b031633146116155760405162461bcd60e51b8152600401610e0d90612f0d565b6000825b828111611780576015546040516331a9108f60e11b8152600481018390526001600160a01b0390911690636352211e9060240160206040518083038186803b15801561166457600080fd5b505afa158015611678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169c9190612a4d565b6001600160a01b03811660009081526019602052604090205490925060ff1661176e576015546040516370a0823160e01b81526001600160a01b03848116600483015260009216906370a082319060240160206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612d8b565b905061174983826123bf565b506001600160a01b0382166000908152601960205260409020805460ff191660011790555b806117788161305e565b915050611619565b50505050565b6007546001600160a01b031633146117b05760405162461bcd60e51b8152600401610e0d90612f0d565b600d55565b6007546001600160a01b031633146117df5760405162461bcd60e51b8152600401610e0d90612f0d565b6009548111156118315760405162461bcd60e51b815260206004820152601c60248201527f746865207175616e7469747920657863656564732072657365727665000000006044820152606401610e0d565b80600960008282546118439190612fe0565b90915550611853905033826123bf565b50565b3360009081526017602052604090205460ff1661189d57604080516020808201835260008083523381526016825283812092519092556017905220805460ff191660011790555b601254610100900460ff16156118e75760405162461bcd60e51b815260206004820152600f60248201526e7475726e206f6e206d696e74696e6760881b6044820152606401610e0d565b600e5433600090815260166020526040902054611905908390612f95565b11156119625760405162461bcd60e51b815260206004820152602660248201527f536f7272792063616e206e6f74206d696e74206d6f7265207468616e206d61786044820152651dd85b1b195d60d21b6064820152608401610e0d565b600081116119a55760405162461bcd60e51b815260206004820152601060248201526f1e995c9bc81b9bdd08185b1b1bddd95960821b6044820152606401610e0d565b6040516bffffffffffffffffffffffff193360601b166020820152600090603401604051602081830303815290604052805190602001209050611a1f8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060105491508490506124bf565b611a5b5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210283937b7b360991b6044820152606401610e0d565b600c5482611a6860005490565b611a729190612f95565b1115611ab95760405162461bcd60e51b815260206004820152601660248201527570726573616c6520616d6f756e74206578636565647360501b6044820152606401610e0d565b3482600d54611ac89190612fc1565b14611b065760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610e0d565b611b1033836123bf565b3360009081526016602052604081208054849290611b2f908490612f95565b909155505050505050565b60606000611b47836114f6565b90506000816001600160401b03811115611b6357611b636130e5565b604051908082528060200260200182016040528015611b8c578160200160208202803683370190505b50905060005b82811015611bd357611ba48582611146565b828281518110611bb657611bb66130cf565b602090810291909101015280611bcb8161305e565b915050611b92565b509392505050565b6007546001600160a01b03163314611c055760405162461bcd60e51b8152600401610e0d90612f0d565b600b55565b606060028054610bf390613023565b60008111611c735760405162461bcd60e51b815260206004820152602160248201527f7175616e746974792073686f756c642062652067726561746572207468616e206044820152600360fc1b6064820152608401610e0d565b60125460ff1615611cbb5760405162461bcd60e51b81526020600482015260126024820152711b5a5b9d1a5b99c81a5cc81cdd1bdc1c195960721b6044820152606401610e0d565b600f54811115611d0d5760405162461bcd60e51b815260206004820152601e60248201527f706572207472616e73616374696f6e20616d6f756e74206578636565647300006044820152606401610e0d565b600a54600954600854611d209190612fe0565b611d2a9190612fe0565b81611d3460005490565b611d3e9190612f95565b1115611d8c5760405162461bcd60e51b815260206004820152601b60248201527f616c6c20746f6b656e732068617665206265656e206d696e74656400000000006044820152606401610e0d565b3481600b54611d9b9190612fc1565b14611de85760405162461bcd60e51b815260206004820152601d60248201527f53656e742065746865722076616c756520697320696e636f72726563740000006044820152606401610e0d565b61185333826123bf565b6001600160a01b038216331415611e1c5760405163b06307db60e01b815260040160405180910390fd5b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6007546001600160a01b03163314611eb25760405162461bcd60e51b8152600401610e0d90612f0d565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b611edf8484846121a2565b611eeb848484846124d5565b611780576040516368d2bf6b60e11b815260040160405180910390fd5b6007546001600160a01b03163314611f325760405162461bcd60e51b8152600401610e0d90612f0d565b600c55565b6060611f44826000541190565b611f6157604051630a14c4b560e41b815260040160405180910390fd5b6000611f6b6125e4565b9050805160001415611f8c5760405180602001604052806000815250611fb7565b80611f96846125f3565b604051602001611fa7929190612e4a565b6040516020818303038152906040525b9392505050565b6007546001600160a01b03163314611fe85760405162461bcd60e51b8152600401610e0d90612f0d565b601055565b6007546001600160a01b031633146120175760405162461bcd60e51b8152600401610e0d90612f0d565b601280546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6007546001600160a01b0316331461206b5760405162461bcd60e51b8152600401610e0d90612f0d565b600e55565b6007546001600160a01b0316331461209a5760405162461bcd60e51b8152600401610e0d90612f0d565b6001600160a01b0381166120ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e0d565b6118538161246d565b6007546001600160a01b031633146121325760405162461bcd60e51b8152600401610e0d90612f0d565b6012805460ff19811660ff90911615179055565b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006121ad826123d9565b80519091506000906001600160a01b0316336001600160a01b031614806121e45750336121d984610c76565b6001600160a01b0316145b806121f6575081516121f69033610ab4565b90508061221657604051632ce44b5f60e11b815260040160405180910390fd5b846001600160a01b031682600001516001600160a01b03161461224b5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b03841661227257604051633a954ecd60e21b815260040160405180910390fd5b6122826000848460000151612146565b6001600160a01b03858116600090815260046020908152604080832080546001600160801b03198082166001600160801b03928316600019018316179092558986168086528386208054938416938316600190810190931693909317909255888552600390935281842080546001600160e01b031916909117600160a01b426001600160401b03160217905590860180835291205490911661237557612329816000541190565b1561237557825160008281526003602090815260409091208054918601516001600160401b0316600160a01b026001600160e01b03199092166001600160a01b03909316929092171790555b5082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b6111428282604051806020016040528060008152506126f0565b60408051808201909152600080825260208201526123f8826000541190565b61241557604051636f96cda160e11b815260040160405180910390fd5b815b6000818152600360209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b03169183019190915215612463579392505050565b5060001901612417565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826124cc85846126fd565b14949350505050565b60006001600160a01b0384163b156125d857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612519903390899088908890600401612e79565b602060405180830381600087803b15801561253357600080fd5b505af1925050508015612563575060408051601f3d908101601f1916820190925261256091810190612d3a565b60015b6125be573d808015612591576040519150601f19603f3d011682016040523d82523d6000602084013e612596565b606091505b5080516125b6576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506125dc565b5060015b949350505050565b606060118054610bf390613023565b6060816126175750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612641578061262b8161305e565b915061263a9050600a83612fad565b915061261b565b6000816001600160401b0381111561265b5761265b6130e5565b6040519080825280601f01601f191660200182016040528015612685576020820181803683370190505b5090505b84156125dc5761269a600183612fe0565b91506126a7600a86613079565b6126b2906030612f95565b60f81b8183815181106126c7576126c76130cf565b60200101906001600160f81b031916908160001a9053506126e9600a86612fad565b9450612689565b610d458383836001612769565b600081815b8451811015611bd357600085828151811061271f5761271f6130cf565b602002602001015190508083116127455760008381526020829052604090209250612756565b600081815260208490526040902092505b50806127618161305e565b915050612702565b6000546001600160a01b03851661279257604051622e076360e81b815260040160405180910390fd5b836127b05760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03851660008181526004602090815260408083208054600160801b6001600160801b031982166001600160801b039283168c01831690811782900483168c01909216021790558483526003909152812080546001600160e01b031916909217600160a01b426001600160401b0316021790915581905b858110156128ae5760405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4838015612884575061288260008884886124d5565b155b156128a2576040516368d2bf6b60e11b815260040160405180910390fd5b6001918201910161282d565b506000556123b8565b8280546128c390613023565b90600052602060002090601f0160209004810192826128e5576000855561292b565b82601f106128fe57805160ff191683800117855561292b565b8280016001018555821561292b579182015b8281111561292b578251825591602001919060010190612910565b506113959291505b808211156113955760008155600101612933565b60006001600160401b03831115612960576129606130e5565b612973601f8401601f1916602001612f42565b905082815283838301111561298757600080fd5b828260208301376000602084830101529392505050565b600082601f8301126129af57600080fd5b813560206129c46129bf83612f72565b612f42565b80838252828201915082860187848660051b89010111156129e457600080fd5b60005b85811015612a03578135845292840192908401906001016129e7565b5090979650505050505050565b600082601f830112612a2157600080fd5b611fb783833560208501612947565b600060208284031215612a4257600080fd5b8135611fb7816130fb565b600060208284031215612a5f57600080fd5b8151611fb7816130fb565b60008060408385031215612a7d57600080fd5b8235612a88816130fb565b91506020830135612a98816130fb565b809150509250929050565b600080600060608486031215612ab857600080fd5b8335612ac3816130fb565b92506020840135612ad3816130fb565b929592945050506040919091013590565b60008060008060808587031215612afa57600080fd5b8435612b05816130fb565b93506020850135612b15816130fb565b92506040850135915060608501356001600160401b03811115612b3757600080fd5b8501601f81018713612b4857600080fd5b612b5787823560208401612947565b91505092959194509250565b60008060408385031215612b7657600080fd5b8235612b81816130fb565b915060208301358015158114612a9857600080fd5b60008060408385031215612ba957600080fd5b8235612bb4816130fb565b946020939093013593505050565b60008060408385031215612bd557600080fd5b82356001600160401b0380821115612bec57600080fd5b818501915085601f830112612c0057600080fd5b81356020612c106129bf83612f72565b8083825282820191508286018a848660051b8901011115612c3057600080fd5b600096505b84871015612c5c578035612c48816130fb565b835260019690960195918301918301612c35565b5096505086013592505080821115612c7357600080fd5b50612c808582860161299e565b9150509250929050565b600080600060408486031215612c9f57600080fd5b83356001600160401b0380821115612cb657600080fd5b818601915086601f830112612cca57600080fd5b813581811115612cd957600080fd5b8760208260051b8501011115612cee57600080fd5b6020928301989097509590910135949350505050565b600060208284031215612d1657600080fd5b5035919050565b600060208284031215612d2f57600080fd5b8135611fb781613110565b600060208284031215612d4c57600080fd5b8151611fb781613110565b600060208284031215612d6957600080fd5b81356001600160401b03811115612d7f57600080fd5b6125dc84828501612a10565b600060208284031215612d9d57600080fd5b5051919050565b60008060408385031215612db757600080fd5b8235915060208301356001600160401b03811115612dd457600080fd5b612c8085828601612a10565b60008060408385031215612df357600080fd5b50508035926020909101359150565b60008151808452612e1a816020860160208601612ff7565b601f01601f19169290920160200192915050565b60008251612e40818460208701612ff7565b9190910192915050565b60008351612e5c818460208801612ff7565b835190830190612e70818360208801612ff7565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612eac90830184612e02565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015612eee57835183529284019291840191600101612ed2565b50909695505050505050565b602081526000611fb76020830184612e02565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f191681016001600160401b0381118282101715612f6a57612f6a6130e5565b604052919050565b60006001600160401b03821115612f8b57612f8b6130e5565b5060051b60200190565b60008219821115612fa857612fa86130a3565b500190565b600082612fbc57612fbc6130b9565b500490565b6000816000190483118215151615612fdb57612fdb6130a3565b500290565b600082821015612ff257612ff26130a3565b500390565b60005b83811015613012578181015183820152602001612ffa565b838111156117805750506000910152565b600181811c9082168061303757607f821691505b6020821081141561305857634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613072576130726130a3565b5060010190565b600082613088576130886130b9565b500690565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461185357600080fd5b6001600160e01b03198116811461185357600080fdfea2646970667358221220a2bc42b4f4a5db9a6b29e1887523f29f4bc207e2d297fd1310b6ae409d46395564736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003268747470733a2f2f6170692e647261676f6e736f666d6964676172642e636f6d2f6170692f6e66742f7779726d6c696e672f0000000000000000000000000000

-----Decoded View---------------
Arg [0] : baseUri (string): https://api.dragonsofmidgard.com/api/nft/wyrmling/

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [2] : 68747470733a2f2f6170692e647261676f6e736f666d6964676172642e636f6d
Arg [3] : 2f6170692f6e66742f7779726d6c696e672f0000000000000000000000000000


Deployed Bytecode Sourcemap

19082:7034:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8174:370;;;;;;;;;;-1:-1:-1;8174:370:0;;;;;:::i;:::-;;:::i;:::-;;;11738:14:1;;11731:22;11713:41;;11701:2;11686:18;8174:370:0;;;;;;;;9818:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10827:201::-;;;;;;;;;;-1:-1:-1;10827:201:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;10399:32:1;;;10381:51;;10369:2;10354:18;10827:201:0;10235:203:1;10463:356:0;;;;;;;;;;-1:-1:-1;10463:356:0;;;;;:::i;:::-;;:::i;:::-;;19505:24;;;;;;;;;;;;;:::i;6865:101::-;;;;;;;;;;-1:-1:-1;6918:7:0;6945:13;6865:101;;;18480:25:1;;;18468:2;18453:18;6865:101:0;18334:177:1;19179:36:0;;;;;;;;;;;;;;;;11491:137;;;;;;;;;;-1:-1:-1;11491:137:0;;;;;:::i;:::-;;:::i;19940:63::-;;;;;;;;;;-1:-1:-1;19940:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;21210:111;;;;;;;;;;-1:-1:-1;21210:111:0;;;;;:::i;:::-;;:::i;24466:779::-;;;;;;;;;;-1:-1:-1;24466:779:0;;;;;:::i;:::-;;:::i;19302:35::-;;;;;;;;;;;;;;;;19572:36;;;;;;;;;;-1:-1:-1;19572:36:0;;;;;;;;;;;7159:1007;;;;;;;;;;-1:-1:-1;7159:1007:0;;;;;:::i;:::-;;:::i;25704:261::-;;;;;;;;;;-1:-1:-1;25704:261:0;;;;;:::i;:::-;;:::i;25973:140::-;;;;;;;;;;;;;:::i;20456:100::-;;;;;;;;;;-1:-1:-1;20456:100:0;;;;;:::i;:::-;;:::i;11636:151::-;;;;;;;;;;-1:-1:-1;11636:151:0;;;;;:::i;:::-;;:::i;19391:31::-;;;;;;;;;;;;;;;;19429:36;;;;;;;;;;;;;;;;6974:177;;;;;;;;;;-1:-1:-1;6974:177:0;;;;;:::i;:::-;;:::i;22107:128::-;;;;;;;;;;-1:-1:-1;22107:128:0;;;;;:::i;:::-;;:::i;21421:98::-;;;;;;;;;;-1:-1:-1;21421:98:0;;;;;:::i;:::-;;:::i;19649:26::-;;;;;;;;;;-1:-1:-1;19649:26:0;;;;-1:-1:-1;;;;;19649:26:0;;;21863:117;;;;;;;;;;-1:-1:-1;21863:117:0;;;;;:::i;:::-;;:::i;9686:124::-;;;;;;;;;;-1:-1:-1;9686:124:0;;;;;:::i;:::-;;:::i;21622:104::-;;;;;;;;;;;;;:::i;20348:100::-;;;;;;;;;;-1:-1:-1;20348:100:0;;;;;:::i;:::-;;:::i;8552:206::-;;;;;;;;;;-1:-1:-1;8552:206:0;;;;;:::i;:::-;;:::i;2240:103::-;;;;;;;;;;;;;:::i;20564:190::-;;;;;;;;;;-1:-1:-1;20564:190:0;;;;;:::i;:::-;;:::i;25257:433::-;;;;;;;;;;-1:-1:-1;25257:433:0;;;;;:::i;:::-;;:::i;19717:29::-;;;;;;;;;;-1:-1:-1;19717:29:0;;;;-1:-1:-1;;;;;19717:29:0;;;20986:98;;;;;;;;;;-1:-1:-1;20986:98:0;;;;;:::i;:::-;;:::i;19615:27::-;;;;;;;;;;-1:-1:-1;19615:27:0;;;;;;;-1:-1:-1;;;;;19615:27:0;;;22866:219;;;;;;;;;;-1:-1:-1;22866:219:0;;;;;:::i;:::-;;:::i;23093:1012::-;;;;;;:::i;:::-;;:::i;24113:345::-;;;;;;;;;;-1:-1:-1;24113:345:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1589:87::-;;;;;;;;;;-1:-1:-1;1662:6:0;;-1:-1:-1;;;;;1662:6:0;1589:87;;20762:84;;;;;;;;;;-1:-1:-1;20762:84:0;;;;;:::i;:::-;;:::i;9926:104::-;;;;;;;;;;;;;:::i;19263:32::-;;;;;;;;;;;;;;;;22360:498;;;;;;:::i;:::-;;:::i;11036:275::-;;;;;;;;;;-1:-1:-1;11036:275:0;;;;;:::i;:::-;;:::i;20085:57::-;;;;;;;;;;-1:-1:-1;20085:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11974:14:1;;11967:22;11949:41;;12033:14;;12026:22;12021:2;12006:18;;11999:50;12092:14;12085:22;12065:18;;;12058:50;11937:2;11922:18;20085:57:0;11765:349:1;21988:111:0;;;;;;;;;;-1:-1:-1;21988:111:0;;;;;:::i;:::-;;:::i;19682:28::-;;;;;;;;;;-1:-1:-1;19682:28:0;;;;-1:-1:-1;;;;;19682:28:0;;;19536:29;;;;;;;;;;-1:-1:-1;19536:29:0;;;;;;;;11795:278;;;;;;;;;;-1:-1:-1;11795:278:0;;;;;:::i;:::-;;:::i;20858:116::-;;;;;;;;;;-1:-1:-1;20858:116:0;;;;;:::i;:::-;;:::i;10038:315::-;;;;;;;;;;-1:-1:-1;10038:315:0;;;;;:::i;:::-;;:::i;19141:31::-;;;;;;;;;;;;;;;;21329:84;;;;;;;;;;-1:-1:-1;21329:84:0;;;;;:::i;:::-;;:::i;21734:121::-;;;;;;;;;;-1:-1:-1;21734:121:0;;;;;:::i;:::-;;:::i;21096:102::-;;;;;;;;;;-1:-1:-1;21096:102:0;;;;;:::i;:::-;;:::i;19344:40::-;;;;;;;;;;;;;;;;11319:164;;;;;;;;;;-1:-1:-1;11319:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;11440:25:0;;;11417:4;11440:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;11319:164;20149:67;;;;;;;;;;-1:-1:-1;20149:67:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2498:238;;;;;;;;;;-1:-1:-1;2498:238:0;;;;;:::i;:::-;;:::i;20010:68::-;;;;;;;;;;-1:-1:-1;20010:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21531:83;;;;;;;;;;;;;:::i;8174:370::-;8275:4;-1:-1:-1;;;;;;8311:40:0;;-1:-1:-1;;;8311:40:0;;:105;;-1:-1:-1;;;;;;;8368:48:0;;-1:-1:-1;;;8368:48:0;8311:105;:172;;;-1:-1:-1;;;;;;;8433:50:0;;-1:-1:-1;;;8433:50:0;8311:172;:225;;;-1:-1:-1;;;;;;;;;;3621:40:0;;;8500:36;8291:245;8174:370;-1:-1:-1;;8174:370:0:o;9818:100::-;9872:13;9905:5;9898:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9818:100;:::o;10827:201::-;10895:7;10919:16;10927:7;12138:4;12172:13;-1:-1:-1;12162:23:0;12081:112;10919:16;10914:64;;10944:34;;-1:-1:-1;;;10944:34:0;;;;;;;;;;;10914:64;-1:-1:-1;10996:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10996:24:0;;10827:201::o;10463:356::-;10536:13;10552:24;10568:7;10552:15;:24::i;:::-;10536:40;;10597:5;-1:-1:-1;;;;;10591:11:0;:2;-1:-1:-1;;;;;10591:11:0;;10587:48;;;10611:24;;-1:-1:-1;;;10611:24:0;;;;;;;;;;;10587:48;1127:10;-1:-1:-1;;;;;10650:21:0;;;;;;:63;;-1:-1:-1;10676:37:0;10693:5;1127:10;11319:164;:::i;10676:37::-;10675:38;10650:63;10646:124;;;10735:35;;-1:-1:-1;;;10735:35:0;;;;;;;;;;;10646:124;10783:28;10792:2;10796:7;10805:5;10783:8;:28::i;:::-;10525:294;10463:356;;:::o;19505:24::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11491:137::-;11592:28;11602:4;11608:2;11612:7;11592:9;:28::i;21210:111::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;;;;;;;;;21285:17:::1;:28:::0;21210:111::o;24466:779::-;24590:28;;-1:-1:-1;;;24590:28:0;;;9912:23:1;9951:11;;24590:28:0;;;;;;;;;;;;24580:39;;;;;;24571:3;24554:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;24544:32;;;;;;:75;24540:698;;;24636:12;;:29;;-1:-1:-1;;;24636:29:0;;;;;18480:25:1;;;24669:10:0;;24636:12;;;-1:-1:-1;;;;;24636:12:0;;:20;;18453:18:1;;24636:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;24694:17:0;;;;:8;:17;;;;;:36;;-1:-1:-1;;24694:36:0;24726:4;24694:36;;;24466:779;;:::o;24540:698::-;24808:27;;-1:-1:-1;;;24808:27:0;;;10175:22:1;10213:11;;24808:27:0;;;;;;;;;;;;24798:38;;;;;;24789:3;24772:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;24762:32;;;;;;:74;24758:480;;;24853:11;;:28;;-1:-1:-1;;;24853:28:0;;;;;18480:25:1;;;24885:10:0;;-1:-1:-1;;;;;24853:11:0;;:19;;18453:18:1;;24853:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;24910:17:0;;;;:8;:17;;;;;:35;;-1:-1:-1;;24910:35:0;;;;;24466:779;;:::o;24758:480::-;25023:29;;-1:-1:-1;;;25023:29:0;;;9648:24:1;9688:11;;25023:29:0;;;;;;;;;;;;25013:40;;;;;;25004:3;24987:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;24977:32;;;;;;:76;24973:265;;;25070:13;;:30;;-1:-1:-1;;;25070:30:0;;;;;18480:25:1;;;25104:10:0;;-1:-1:-1;;;;;25070:13:0;;:21;;18453:18:1;;25070:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;25129:17:0;;;;:8;:17;;;;;:37;;-1:-1:-1;;25129:37:0;;;;;24466:779;;:::o;24973:265::-;25199:27;;-1:-1:-1;;;25199:27:0;;13460:2:1;25199:27:0;;;13442:21:1;13499:2;13479:18;;;13472:30;-1:-1:-1;;;13518:18:1;;;13511:47;13575:18;;25199:27:0;13258:341:1;24973:265:0;24466:779;;:::o;7159:1007::-;7247:9;7281:16;7291:5;7281:9;:16::i;:::-;7272:5;:25;7268:61;;7306:23;;-1:-1:-1;;;7306:23:0;;;;;;;;;;;7268:61;7340:22;6945:13;;;7340:22;;7603:466;7623:14;7619:1;:18;7603:466;;;7663:31;7697:14;;;:11;:14;;;;;;;;;7663:48;;;;;;;;;-1:-1:-1;;;;;7663:48:0;;;;;-1:-1:-1;;;7663:48:0;;;-1:-1:-1;;;;;7663:48:0;;;;;;;;7734:28;7730:111;;7807:14;;;-1:-1:-1;7730:111:0;7884:5;-1:-1:-1;;;;;7863:26:0;:17;-1:-1:-1;;;;;7863:26:0;;7859:195;;;7933:5;7918:11;:20;7914:85;;;-1:-1:-1;7974:1:0;-1:-1:-1;7967:8:0;;-1:-1:-1;;;7967:8:0;7914:85;8021:13;;;;;7859:195;-1:-1:-1;7639:3:0;;7603:466;;;-1:-1:-1;8145:13:0;;:::i;:::-;7257:909;;;7159:1007;;;;:::o;25704:261::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;25816:6:::1;25812:146;25829:9;:16;25826:1;:19;25812:146;;;25866:36;25876:9;25886:1;25876:12;;;;;;;;:::i;:::-;;;;;;;25889:9;25899:1;25889:12;;;;;;;;:::i;:::-;;;;;;;25866:9;:36::i;:::-;25934:9;25944:1;25934:12;;;;;;;;:::i;:::-;;;;;;;25917:15;;:29;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;25847:3:0;;-1:-1:-1;25847:3:0::1;::::0;::::1;:::i;:::-;;;;25812:146;;25973:140:::0;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;26068:37:::1;::::0;26036:21:::1;::::0;26076:10:::1;::::0;26068:37;::::1;;;::::0;26036:21;;26021:12:::1;26068:37:::0;26021:12;26068:37;26036:21;26076:10;26068:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;20456:100:::0;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;20522:15:::1;:26:::0;20456:100::o;11636:151::-;11740:39;11757:4;11763:2;11767:7;11740:39;;;;;;;;;;;;:16;:39::i;6974:177::-;7043:7;6945:13;;7066:5;:22;7062:58;;7097:23;;-1:-1:-1;;;7097:23:0;;;;;;;;;;;7062:58;-1:-1:-1;7138:5:0;6974:177::o;22107:128::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;22186:14:::1;:41:::0;;-1:-1:-1;;;;;;22186:41:0::1;-1:-1:-1::0;;;;;22186:41:0;;;::::1;::::0;;;::::1;::::0;;22107:128::o;21421:98::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21492:19;;::::1;::::0;:9:::1;::::0;:19:::1;::::0;::::1;::::0;::::1;:::i;21863:117::-:0;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21935:11:::1;:37:::0;;-1:-1:-1;;;;;;21935:37:0::1;-1:-1:-1::0;;;;;21935:37:0;;;::::1;::::0;;;::::1;::::0;;21863:117::o;9686:124::-;9750:7;9777:20;9789:7;9777:11;:20::i;:::-;:25;;9686:124;-1:-1:-1;;9686:124:0:o;21622:104::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21703:15:::1;::::0;;-1:-1:-1;;21684:34:0;::::1;21703:15;::::0;;;::::1;;;21702:16;21684:34:::0;;::::1;;::::0;;21622:104::o;20348:100::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;20418:9:::1;:22:::0;20348:100::o;8552:206::-;8616:7;-1:-1:-1;;;;;8640:19:0;;8636:60;;8668:28;;-1:-1:-1;;;8668:28:0;;;;;;;;;;;8636:60;-1:-1:-1;;;;;;8722:19:0;;;;;:12;:19;;;;;:27;-1:-1:-1;;;;;8722:27:0;;8552:206::o;2240:103::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;2305:30:::1;2332:1;2305:18;:30::i;:::-;2240:103::o:0;20564:190::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;20673:9:::1;;20654:16;:28;20646:55;;;::::0;-1:-1:-1;;;20646:55:0;;16039:2:1;20646:55:0::1;::::0;::::1;16021:21:1::0;16078:2;16058:18;;;16051:30;-1:-1:-1;;;16097:18:1;;;16090:44;16151:18;;20646:55:0::1;15837:338:1::0;20646:55:0::1;20712:15;:34:::0;20564:190::o;25257:433::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;25340:13:::1;25375:10:::0;25364:319:::1;25391:8;25387:1;:12;25364:319;;25428:14;::::0;:25:::1;::::0;-1:-1:-1;;;25428:25:0;;::::1;::::0;::::1;18480::1::0;;;-1:-1:-1;;;;;25428:14:0;;::::1;::::0;:22:::1;::::0;18453:18:1;;25428:25:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25471:25:0;::::1;;::::0;;;:18:::1;:25;::::0;;;;;25420:33;;-1:-1:-1;25471:25:0::1;;25468:206;;25544:14;::::0;:31:::1;::::0;-1:-1:-1;;;25544:31:0;;-1:-1:-1;;;;;10399:32:1;;;25544:31:0::1;::::0;::::1;10381:51:1::0;25519:19:0::1;::::0;25544:14:::1;::::0;:24:::1;::::0;10354:18:1;;25544:31:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25519:56;;25590:27;25600:5;25606:10;25590:9;:27::i;:::-;-1:-1:-1::0;;;;;;25632:25:0;::::1;;::::0;;;:18:::1;:25;::::0;;;;:30;;-1:-1:-1;;25632:30:0::1;25658:4;25632:30;::::0;;25468:206:::1;25401:3:::0;::::1;::::0;::::1;:::i;:::-;;;;25364:319;;;;25328:362;25257:433:::0;;:::o;20986:98::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21055:12:::1;:21:::0;20986:98::o;22866:219::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;22949:15:::1;;22937:8;:27;;22929:68;;;::::0;-1:-1:-1;;;22929:68:0;;14963:2:1;22929:68:0::1;::::0;::::1;14945:21:1::0;15002:2;14982:18;;;14975:30;15041;15021:18;;;15014:58;15089:18;;22929:68:0::1;14761:352:1::0;22929:68:0::1;23027:8;23008:15;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;23046:31:0::1;::::0;-1:-1:-1;23056:10:0::1;23068:8:::0;23046:9:::1;:31::i;:::-;22866:219:::0;:::o;23093:1012::-;23217:10;23196:32;;;;:20;:32;;;;;;;;23192:222;;23284:64;;;;;;;;;-1:-1:-1;23284:64:0;;;23270:10;23254:27;;:15;:27;;;;;:94;;;;;23363:20;:32;;;:39;;-1:-1:-1;;23363:39:0;23398:4;23363:39;;;23192:222;23434:15;;;;;;;:23;23426:51;;;;-1:-1:-1;;;23426:51:0;;16733:2:1;23426:51:0;;;16715:21:1;16772:2;16752:18;;;16745:30;-1:-1:-1;;;16791:18:1;;;16784:45;16846:18;;23426:51:0;16531:339:1;23426:51:0;23546:12;;23512:10;23496:27;;;;:15;:27;;;;;:35;:46;;23534:8;;23496:46;:::i;:::-;:62;;23488:113;;;;-1:-1:-1;;;23488:113:0;;14213:2:1;23488:113:0;;;14195:21:1;14252:2;14232:18;;;14225:30;14291:34;14271:18;;;14264:62;-1:-1:-1;;;14342:18:1;;;14335:36;14388:19;;23488:113:0;14011:402:1;23488:113:0;23631:1;23620:8;:12;23612:41;;;;-1:-1:-1;;;23612:41:0;;13115:2:1;23612:41:0;;;13097:21:1;13154:2;13134:18;;;13127:30;-1:-1:-1;;;13173:18:1;;;13166:46;13229:18;;23612:41:0;12913:340:1;23612:41:0;23689:28;;-1:-1:-1;;23706:10:0;8605:2:1;8601:15;8597:53;23689:28:0;;;8585:66:1;23664:12:0;;8667::1;;23689:28:0;;;;;;;;;;;;23679:39;;;;;;23664:54;;23751:50;23770:12;;23751:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23784:10:0;;;-1:-1:-1;23796:4:0;;-1:-1:-1;23751:18:0;:50::i;:::-;23729:113;;;;-1:-1:-1;;;23729:113:0;;17433:2:1;23729:113:0;;;17415:21:1;17472:2;17452:18;;;17445:30;-1:-1:-1;;;17491:18:1;;;17484:43;17544:18;;23729:113:0;17231:337:1;23729:113:0;23889:13;;23877:8;23861:13;6918:7;6945:13;;6865:101;23861:13;:24;;;;:::i;:::-;:41;;23853:76;;;;-1:-1:-1;;;23853:76:0;;16382:2:1;23853:76:0;;;16364:21:1;16421:2;16401:18;;;16394:30;-1:-1:-1;;;16440:18:1;;;16433:52;16502:18;;23853:76:0;16180:346:1;23853:76:0;23971:9;23961:8;23948:12;;:21;;;;:::i;:::-;:32;23940:58;;;;-1:-1:-1;;;23940:58:0;;14620:2:1;23940:58:0;;;14602:21:1;14659:2;14639:18;;;14632:30;-1:-1:-1;;;14678:18:1;;;14671:44;14732:18;;23940:58:0;14418:338:1;23940:58:0;24009:30;24019:10;24030:8;24009:9;:30::i;:::-;24066:10;24050:27;;;;:15;:27;;;;;:47;;24089:8;;24050:27;:47;;24089:8;;24050:47;:::i;:::-;;;;-1:-1:-1;;;;;;23093:1012:0:o;24113:345::-;24172:16;24201:13;24217:17;24227:6;24217:9;:17::i;:::-;24201:33;;24245:23;24285:5;-1:-1:-1;;;;;24271:20:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24271:20:0;;24245:46;;24307:13;24302:125;24334:5;24326;:13;24302:125;;;24381:34;24401:6;24409:5;24381:19;:34::i;:::-;24365:6;24372:5;24365:13;;;;;;;;:::i;:::-;;;;;;;;;;:50;24341:7;;;;:::i;:::-;;;;24302:125;;;-1:-1:-1;24444:6:0;24113:345;-1:-1:-1;;;24113:345:0:o;20762:84::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;20824:5:::1;:14:::0;20762:84::o;9926:104::-;9982:13;10015:7;10008:14;;;;;:::i;22360:498::-;22437:1;22426:8;:12;22418:58;;;;-1:-1:-1;;;22418:58:0;;18134:2:1;22418:58:0;;;18116:21:1;18173:2;18153:18;;;18146:30;18212:34;18192:18;;;18185:62;-1:-1:-1;;;18263:18:1;;;18256:31;18304:19;;22418:58:0;17932:397:1;22418:58:0;22495:8;;;;:15;22487:45;;;;-1:-1:-1;;;22487:45:0;;12768:2:1;22487:45:0;;;12750:21:1;12807:2;12787:18;;;12780:30;-1:-1:-1;;;12826:18:1;;;12819:48;12884:18;;22487:45:0;12566:342:1;22487:45:0;22562:17;;22551:8;:28;;22543:70;;;;-1:-1:-1;;;22543:70:0;;17775:2:1;22543:70:0;;;17757:21:1;17814:2;17794:18;;;17787:30;17853:32;17833:18;;;17826:60;17903:18;;22543:70:0;17573:354:1;22543:70:0;22682:15;;22666;;22656:9;;:25;;;;:::i;:::-;:41;;;;:::i;:::-;22646:8;22632:13;6918:7;6945:13;;6865:101;22632:13;:22;;;;:::i;:::-;:65;;22624:104;;;;-1:-1:-1;;;22624:104:0;;17077:2:1;22624:104:0;;;17059:21:1;17116:2;17096:18;;;17089:30;17155:29;17135:18;;;17128:57;17202:18;;22624:104:0;16875:351:1;22624:104:0;22765:9;22753:8;22747:5;;:14;;;;:::i;:::-;:27;22739:69;;;;-1:-1:-1;;;22739:69:0;;15320:2:1;22739:69:0;;;15302:21:1;15359:2;15339:18;;;15332:30;15398:31;15378:18;;;15371:59;15447:18;;22739:69:0;15118:353:1;22739:69:0;22819:31;22829:10;22841:8;22819:9;:31::i;11036:275::-;-1:-1:-1;;;;;11125:24:0;;1127:10;11125:24;11121:54;;;11158:17;;-1:-1:-1;;;11158:17:0;;;;;;;;;;;11121:54;1127:10;11186:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;11186:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;11186:53:0;;;;;;;;;;11255:48;;11713:41:1;;;11186:42:0;;1127:10;11255:48;;11686:18:1;11255:48:0;;;;;;;11036:275;;:::o;21988:111::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;22057:13:::1;:34:::0;;-1:-1:-1;;;;;;22057:34:0::1;-1:-1:-1::0;;;;;22057:34:0;;;::::1;::::0;;;::::1;::::0;;21988:111::o;11795:278::-;11911:28;11921:4;11927:2;11931:7;11911:9;:28::i;:::-;11955:48;11978:4;11984:2;11988:7;11997:5;11955:22;:48::i;:::-;11950:115;;12025:40;;-1:-1:-1;;;12025:40:0;;;;;;;;;;;20858:116;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;20936:13:::1;:30:::0;20858:116::o;10038:315::-;10111:13;10141:16;10149:7;12138:4;12172:13;-1:-1:-1;12162:23:0;12081:112;10141:16;10136:59;;10166:29;;-1:-1:-1;;;10166:29:0;;;;;;;;;;;10136:59;10206:21;10230:10;:8;:10::i;:::-;10206:34;;10264:7;10258:21;10283:1;10258:26;;:87;;;;;;;;;;;;;;;;;10311:7;10320:18;:7;:16;:18::i;:::-;10294:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10258:87;10251:94;10038:315;-1:-1:-1;;;10038:315:0:o;21329:84::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21388:10:::1;:17:::0;21329:84::o;21734:121::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21808:12:::1;:39:::0;;-1:-1:-1;;;;;21808:39:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;21808:39:0;;::::1;::::0;;;::::1;::::0;;21734:121::o;21096:102::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21167:12:::1;:23:::0;21096:102::o;2498:238::-;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2601:22:0;::::1;2579:110;;;::::0;-1:-1:-1;;;2579:110:0;;13806:2:1;2579:110:0::1;::::0;::::1;13788:21:1::0;13845:2;13825:18;;;13818:30;13884:34;13864:18;;;13857:62;-1:-1:-1;;;13935:18:1;;;13928:36;13981:19;;2579:110:0::1;13604:402:1::0;2579:110:0::1;2700:28;2719:8;2700:18;:28::i;21531:83::-:0;1662:6;;-1:-1:-1;;;;;1662:6:0;1127:10;1809:23;1801:68;;;;-1:-1:-1;;;1801:68:0;;;;;;;:::i;:::-;21598:8:::1;::::0;;-1:-1:-1;;21586:20:0;::::1;21598:8;::::0;;::::1;21597:9;21586:20;::::0;;21531:83::o;15894:163::-;15976:24;;;;:15;:24;;;;;;:29;;-1:-1:-1;;;;;;15976:29:0;-1:-1:-1;;;;;15976:29:0;;;;;;;;;16021:28;;15976:24;;16021:28;;;;;;;15894:163;;;:::o;13962:1924::-;14043:35;14081:20;14093:7;14081:11;:20::i;:::-;14154:18;;14043:58;;-1:-1:-1;14112:22:0;;-1:-1:-1;;;;;14138:34:0;1127:10;-1:-1:-1;;;;;14138:34:0;;:74;;;-1:-1:-1;1127:10:0;14176:20;14188:7;14176:11;:20::i;:::-;-1:-1:-1;;;;;14176:36:0;;14138:74;:128;;;-1:-1:-1;14233:18:0;;14216:50;;1127:10;11319:164;:::i;14216:50::-;14112:155;;14285:17;14280:66;;14311:35;;-1:-1:-1;;;14311:35:0;;;;;;;;;;;14280:66;14383:4;-1:-1:-1;;;;;14361:26:0;:13;:18;;;-1:-1:-1;;;;;14361:26:0;;14357:67;;14396:28;;-1:-1:-1;;;14396:28:0;;;;;;;;;;;14357:67;-1:-1:-1;;;;;14439:16:0;;14435:52;;14464:23;;-1:-1:-1;;;14464:23:0;;;;;;;;;;;14435:52;14606:49;14623:1;14627:7;14636:13;:18;;;14606:8;:49::i;:::-;-1:-1:-1;;;;;14951:18:0;;;;;;;:12;:18;;;;;;;;:31;;-1:-1:-1;;;;;;14951:31:0;;;-1:-1:-1;;;;;14951:31:0;;;-1:-1:-1;;14951:31:0;;;;;;;14997:16;;;;;;;;;:29;;;;;;;;-1:-1:-1;14997:29:0;;;;;;;;;;;;;15043:20;;;:11;:20;;;;;;:30;;-1:-1:-1;;;;;;15088:61:0;;;;-1:-1:-1;;;15133:15:0;-1:-1:-1;;;;;15088:61:0;;;;;15423:11;;;15453:24;;;;;:29;15423:11;;15453:29;15449:321;;15521:20;15529:11;12138:4;12172:13;-1:-1:-1;12162:23:0;12081:112;15521:20;15517:238;;;15598:18;;;15566:24;;;:11;:24;;;;;;;;:50;;15681:54;;;;-1:-1:-1;;;;;15639:96:0;-1:-1:-1;;;15639:96:0;-1:-1:-1;;;;;;15639:96:0;;;-1:-1:-1;;;;;15566:50:0;;;15639:96;;;;;;;15517:238;14926:855;15817:7;15813:2;-1:-1:-1;;;;;15798:27:0;15807:4;-1:-1:-1;;;;;15798:27:0;;;;;;;;;;;15836:42;14032:1854;;13962:1924;;;:::o;12201:104::-;12270:27;12280:2;12284:8;12270:27;;;;;;;;;;;;:9;:27::i;9175:503::-;-1:-1:-1;;;;;;;;;;;;;;;;;9274:16:0;9282:7;12138:4;12172:13;-1:-1:-1;12162:23:0;12081:112;9274:16;9269:61;;9299:31;;-1:-1:-1;;;9299:31:0;;;;;;;;;;;9269:61;9388:7;9368:245;9435:31;9469:17;;;:11;:17;;;;;;;;;9435:51;;;;;;;;;-1:-1:-1;;;;;9435:51:0;;;;;-1:-1:-1;;;9435:51:0;;;-1:-1:-1;;;;;9435:51:0;;;;;;;;9509:28;9505:93;;9569:9;9175:503;-1:-1:-1;;;9175:503:0:o;9505:93::-;-1:-1:-1;;;9408:6:0;9368:245;;2896:191;2989:6;;;-1:-1:-1;;;;;3006:17:0;;;-1:-1:-1;;;;;;3006:17:0;;;;;;;3039:40;;2989:6;;;3006:17;2989:6;;3039:40;;2970:16;;3039:40;2959:128;2896:191;:::o;17553:190::-;17678:4;17731;17702:25;17715:5;17722:4;17702:12;:25::i;:::-;:33;;17553:190;-1:-1:-1;;;;17553:190:0:o;16065:875::-;16176:4;-1:-1:-1;;;;;16197:13:0;;3207:19;:23;16193:740;;16250:175;;-1:-1:-1;;;16250:175:0;;-1:-1:-1;;;;;16250:36:0;;;;;:175;;1127:10;;16344:4;;16371:7;;16401:5;;16250:175;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16250:175:0;;;;;;;;-1:-1:-1;;16250:175:0;;;;;;;;;;;;:::i;:::-;;;16229:649;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16612:13:0;;16608:255;;16660:40;;-1:-1:-1;;;16660:40:0;;;;;;;;;;;16608:255;16813:6;16807:13;16798:6;16794:2;16790:15;16783:38;16229:649;-1:-1:-1;;;;;;16489:55:0;-1:-1:-1;;;16489:55:0;;-1:-1:-1;16482:62:0;;16193:740;-1:-1:-1;16917:4:0;16193:740;16065:875;;;;;;:::o;22251:101::-;22303:13;22335:9;22328:16;;;;;:::i;473:532::-;529:13;559:10;555:53;;-1:-1:-1;;586:10:0;;;;;;;;;;;;-1:-1:-1;;;586:10:0;;;;;473:532::o;555:53::-;633:5;618:12;674:78;681:9;;674:78;;707:8;;;;:::i;:::-;;-1:-1:-1;730:10:0;;-1:-1:-1;738:2:0;730:10;;:::i;:::-;;;674:78;;;762:19;794:6;-1:-1:-1;;;;;784:17:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;784:17:0;;762:39;;812:154;819:10;;812:154;;846:11;856:1;846:11;;:::i;:::-;;-1:-1:-1;915:10:0;923:2;915:5;:10;:::i;:::-;902:24;;:2;:24;:::i;:::-;889:39;;872:6;879;872:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;872:56:0;;;;;;;;-1:-1:-1;943:11:0;952:2;943:11;;:::i;:::-;;;812:154;;12313:131;12404:32;12410:2;12414:8;12424:5;12431:4;12404:5;:32::i;18104:707::-;18214:7;18262:4;18214:7;18277:497;18301:5;:12;18297:1;:16;18277:497;;;18335:20;18358:5;18364:1;18358:8;;;;;;;;:::i;:::-;;;;;;;18335:31;;18401:12;18385;:28;18381:382;;18914:13;18969:15;;;19005:4;18998:15;;;19052:4;19036:21;;18513:57;;18381:382;;;18914:13;18969:15;;;19005:4;18998:15;;;19052:4;19036:21;;18690:57;;18381:382;-1:-1:-1;18315:3:0;;;;:::i;:::-;;;;18277:497;;12452:1502;12548:20;12571:13;-1:-1:-1;;;;;12599:16:0;;12595:48;;12624:19;;-1:-1:-1;;;12624:19:0;;;;;;;;;;;12595:48;12658:13;12654:44;;12680:18;;-1:-1:-1;;;12680:18:0;;;;;;;;;;;12654:44;-1:-1:-1;;;;;13051:16:0;;;;;;:12;:16;;;;;;;;:45;;-1:-1:-1;;;;;;;;;13051:45:0;;-1:-1:-1;;;;;13051:45:0;;;;;;;;;;13111:50;;;;;;;;;;;;;;13178:25;;;:11;:25;;;;;:35;;-1:-1:-1;;;;;;13228:66:0;;;;-1:-1:-1;;;13278:15:0;-1:-1:-1;;;;;13228:66:0;;;;;;13178:25;;13363:409;13383:8;13379:1;:12;13363:409;;;13422:38;;13447:12;;-1:-1:-1;;;;;13422:38:0;;;13439:1;;13422:38;;13439:1;;13422:38;13505:4;:89;;;;;13535:59;13566:1;13570:2;13574:12;13588:5;13535:22;:59::i;:::-;13534:60;13505:89;13479:243;;;13662:40;;-1:-1:-1;;;13662:40:0;;;;;;;;;;;13479:243;13742:14;;;;;13393:3;13363:409;;;-1:-1:-1;13788:13:0;:28;13886:60;25257:433;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:406:1;78:5;-1:-1:-1;;;;;104:6:1;101:30;98:56;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:1;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:45;;;309:1;306;299:12;268:45;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;14:406;;;;;:::o;425:673::-;479:5;532:3;525:4;517:6;513:17;509:27;499:55;;550:1;547;540:12;499:55;586:6;573:20;612:4;636:60;652:43;692:2;652:43;:::i;:::-;636:60;:::i;:::-;718:3;742:2;737:3;730:15;770:2;765:3;761:12;754:19;;805:2;797:6;793:15;857:3;852:2;846;843:1;839:10;831:6;827:23;823:32;820:41;817:61;;;874:1;871;864:12;817:61;896:1;906:163;920:2;917:1;914:9;906:163;;;977:17;;965:30;;1015:12;;;;1047;;;;938:1;931:9;906:163;;;-1:-1:-1;1087:5:1;;425:673;-1:-1:-1;;;;;;;425:673:1:o;1103:221::-;1146:5;1199:3;1192:4;1184:6;1180:17;1176:27;1166:55;;1217:1;1214;1207:12;1166:55;1239:79;1314:3;1305:6;1292:20;1285:4;1277:6;1273:17;1239:79;:::i;1329:247::-;1388:6;1441:2;1429:9;1420:7;1416:23;1412:32;1409:52;;;1457:1;1454;1447:12;1409:52;1496:9;1483:23;1515:31;1540:5;1515:31;:::i;1581:251::-;1651:6;1704:2;1692:9;1683:7;1679:23;1675:32;1672:52;;;1720:1;1717;1710:12;1672:52;1752:9;1746:16;1771:31;1796:5;1771:31;:::i;1837:388::-;1905:6;1913;1966:2;1954:9;1945:7;1941:23;1937:32;1934:52;;;1982:1;1979;1972:12;1934:52;2021:9;2008:23;2040:31;2065:5;2040:31;:::i;:::-;2090:5;-1:-1:-1;2147:2:1;2132:18;;2119:32;2160:33;2119:32;2160:33;:::i;:::-;2212:7;2202:17;;;1837:388;;;;;:::o;2230:456::-;2307:6;2315;2323;2376:2;2364:9;2355:7;2351:23;2347:32;2344:52;;;2392:1;2389;2382:12;2344:52;2431:9;2418:23;2450:31;2475:5;2450:31;:::i;:::-;2500:5;-1:-1:-1;2557:2:1;2542:18;;2529:32;2570:33;2529:32;2570:33;:::i;:::-;2230:456;;2622:7;;-1:-1:-1;;;2676:2:1;2661:18;;;;2648:32;;2230:456::o;2691:794::-;2786:6;2794;2802;2810;2863:3;2851:9;2842:7;2838:23;2834:33;2831:53;;;2880:1;2877;2870:12;2831:53;2919:9;2906:23;2938:31;2963:5;2938:31;:::i;:::-;2988:5;-1:-1:-1;3045:2:1;3030:18;;3017:32;3058:33;3017:32;3058:33;:::i;:::-;3110:7;-1:-1:-1;3164:2:1;3149:18;;3136:32;;-1:-1:-1;3219:2:1;3204:18;;3191:32;-1:-1:-1;;;;;3235:30:1;;3232:50;;;3278:1;3275;3268:12;3232:50;3301:22;;3354:4;3346:13;;3342:27;-1:-1:-1;3332:55:1;;3383:1;3380;3373:12;3332:55;3406:73;3471:7;3466:2;3453:16;3448:2;3444;3440:11;3406:73;:::i;:::-;3396:83;;;2691:794;;;;;;;:::o;3490:416::-;3555:6;3563;3616:2;3604:9;3595:7;3591:23;3587:32;3584:52;;;3632:1;3629;3622:12;3584:52;3671:9;3658:23;3690:31;3715:5;3690:31;:::i;:::-;3740:5;-1:-1:-1;3797:2:1;3782:18;;3769:32;3839:15;;3832:23;3820:36;;3810:64;;3870:1;3867;3860:12;3911:315;3979:6;3987;4040:2;4028:9;4019:7;4015:23;4011:32;4008:52;;;4056:1;4053;4046:12;4008:52;4095:9;4082:23;4114:31;4139:5;4114:31;:::i;:::-;4164:5;4216:2;4201:18;;;;4188:32;;-1:-1:-1;;;3911:315:1:o;4231:1226::-;4349:6;4357;4410:2;4398:9;4389:7;4385:23;4381:32;4378:52;;;4426:1;4423;4416:12;4378:52;4466:9;4453:23;-1:-1:-1;;;;;4536:2:1;4528:6;4525:14;4522:34;;;4552:1;4549;4542:12;4522:34;4590:6;4579:9;4575:22;4565:32;;4635:7;4628:4;4624:2;4620:13;4616:27;4606:55;;4657:1;4654;4647:12;4606:55;4693:2;4680:16;4715:4;4739:60;4755:43;4795:2;4755:43;:::i;4739:60::-;4821:3;4845:2;4840:3;4833:15;4873:2;4868:3;4864:12;4857:19;;4904:2;4900;4896:11;4952:7;4947:2;4941;4938:1;4934:10;4930:2;4926:19;4922:28;4919:41;4916:61;;;4973:1;4970;4963:12;4916:61;4995:1;4986:10;;5005:238;5019:2;5016:1;5013:9;5005:238;;;5090:3;5077:17;5107:31;5132:5;5107:31;:::i;:::-;5151:18;;5037:1;5030:9;;;;;5189:12;;;;5221;;5005:238;;;-1:-1:-1;5262:5:1;-1:-1:-1;;5305:18:1;;5292:32;;-1:-1:-1;;5336:16:1;;;5333:36;;;5365:1;5362;5355:12;5333:36;;5388:63;5443:7;5432:8;5421:9;5417:24;5388:63;:::i;:::-;5378:73;;;4231:1226;;;;;:::o;5462:689::-;5557:6;5565;5573;5626:2;5614:9;5605:7;5601:23;5597:32;5594:52;;;5642:1;5639;5632:12;5594:52;5682:9;5669:23;-1:-1:-1;;;;;5752:2:1;5744:6;5741:14;5738:34;;;5768:1;5765;5758:12;5738:34;5806:6;5795:9;5791:22;5781:32;;5851:7;5844:4;5840:2;5836:13;5832:27;5822:55;;5873:1;5870;5863:12;5822:55;5913:2;5900:16;5939:2;5931:6;5928:14;5925:34;;;5955:1;5952;5945:12;5925:34;6010:7;6003:4;5993:6;5990:1;5986:14;5982:2;5978:23;5974:34;5971:47;5968:67;;;6031:1;6028;6021:12;5968:67;6062:4;6054:13;;;;6086:6;;-1:-1:-1;6124:20:1;;;;6111:34;;5462:689;-1:-1:-1;;;;5462:689:1:o;6156:180::-;6215:6;6268:2;6256:9;6247:7;6243:23;6239:32;6236:52;;;6284:1;6281;6274:12;6236:52;-1:-1:-1;6307:23:1;;6156:180;-1:-1:-1;6156:180:1:o;6341:245::-;6399:6;6452:2;6440:9;6431:7;6427:23;6423:32;6420:52;;;6468:1;6465;6458:12;6420:52;6507:9;6494:23;6526:30;6550:5;6526:30;:::i;6591:249::-;6660:6;6713:2;6701:9;6692:7;6688:23;6684:32;6681:52;;;6729:1;6726;6719:12;6681:52;6761:9;6755:16;6780:30;6804:5;6780:30;:::i;6845:322::-;6914:6;6967:2;6955:9;6946:7;6942:23;6938:32;6935:52;;;6983:1;6980;6973:12;6935:52;7023:9;7010:23;-1:-1:-1;;;;;7048:6:1;7045:30;7042:50;;;7088:1;7085;7078:12;7042:50;7111;7153:7;7144:6;7133:9;7129:22;7111:50;:::i;7357:184::-;7427:6;7480:2;7468:9;7459:7;7455:23;7451:32;7448:52;;;7496:1;7493;7486:12;7448:52;-1:-1:-1;7519:16:1;;7357:184;-1:-1:-1;7357:184:1:o;7546:390::-;7624:6;7632;7685:2;7673:9;7664:7;7660:23;7656:32;7653:52;;;7701:1;7698;7691:12;7653:52;7737:9;7724:23;7714:33;;7798:2;7787:9;7783:18;7770:32;-1:-1:-1;;;;;7817:6:1;7814:30;7811:50;;;7857:1;7854;7847:12;7811:50;7880;7922:7;7913:6;7902:9;7898:22;7880:50;:::i;7941:248::-;8009:6;8017;8070:2;8058:9;8049:7;8045:23;8041:32;8038:52;;;8086:1;8083;8076:12;8038:52;-1:-1:-1;;8109:23:1;;;8179:2;8164:18;;;8151:32;;-1:-1:-1;7941:248:1:o;8194:257::-;8235:3;8273:5;8267:12;8300:6;8295:3;8288:19;8316:63;8372:6;8365:4;8360:3;8356:14;8349:4;8342:5;8338:16;8316:63;:::i;:::-;8433:2;8412:15;-1:-1:-1;;8408:29:1;8399:39;;;;8440:4;8395:50;;8194:257;-1:-1:-1;;8194:257:1:o;8690:276::-;8821:3;8859:6;8853:13;8875:53;8921:6;8916:3;8909:4;8901:6;8897:17;8875:53;:::i;:::-;8944:16;;;;;8690:276;-1:-1:-1;;8690:276:1:o;8971:470::-;9150:3;9188:6;9182:13;9204:53;9250:6;9245:3;9238:4;9230:6;9226:17;9204:53;:::i;:::-;9320:13;;9279:16;;;;9342:57;9320:13;9279:16;9376:4;9364:17;;9342:57;:::i;:::-;9415:20;;8971:470;-1:-1:-1;;;;8971:470:1:o;10443:488::-;-1:-1:-1;;;;;10712:15:1;;;10694:34;;10764:15;;10759:2;10744:18;;10737:43;10811:2;10796:18;;10789:34;;;10859:3;10854:2;10839:18;;10832:31;;;10637:4;;10880:45;;10905:19;;10897:6;10880:45;:::i;:::-;10872:53;10443:488;-1:-1:-1;;;;;;10443:488:1:o;10936:632::-;11107:2;11159:21;;;11229:13;;11132:18;;;11251:22;;;11078:4;;11107:2;11330:15;;;;11304:2;11289:18;;;11078:4;11373:169;11387:6;11384:1;11381:13;11373:169;;;11448:13;;11436:26;;11517:15;;;;11482:12;;;;11409:1;11402:9;11373:169;;;-1:-1:-1;11559:3:1;;10936:632;-1:-1:-1;;;;;;10936:632:1:o;12342:219::-;12491:2;12480:9;12473:21;12454:4;12511:44;12551:2;12540:9;12536:18;12528:6;12511:44;:::i;15476:356::-;15678:2;15660:21;;;15697:18;;;15690:30;15756:34;15751:2;15736:18;;15729:62;15823:2;15808:18;;15476:356::o;18516:275::-;18587:2;18581:9;18652:2;18633:13;;-1:-1:-1;;18629:27:1;18617:40;;-1:-1:-1;;;;;18672:34:1;;18708:22;;;18669:62;18666:88;;;18734:18;;:::i;:::-;18770:2;18763:22;18516:275;;-1:-1:-1;18516:275:1:o;18796:183::-;18856:4;-1:-1:-1;;;;;18881:6:1;18878:30;18875:56;;;18911:18;;:::i;:::-;-1:-1:-1;18956:1:1;18952:14;18968:4;18948:25;;18796:183::o;18984:128::-;19024:3;19055:1;19051:6;19048:1;19045:13;19042:39;;;19061:18;;:::i;:::-;-1:-1:-1;19097:9:1;;18984:128::o;19117:120::-;19157:1;19183;19173:35;;19188:18;;:::i;:::-;-1:-1:-1;19222:9:1;;19117:120::o;19242:168::-;19282:7;19348:1;19344;19340:6;19336:14;19333:1;19330:21;19325:1;19318:9;19311:17;19307:45;19304:71;;;19355:18;;:::i;:::-;-1:-1:-1;19395:9:1;;19242:168::o;19415:125::-;19455:4;19483:1;19480;19477:8;19474:34;;;19488:18;;:::i;:::-;-1:-1:-1;19525:9:1;;19415:125::o;19545:258::-;19617:1;19627:113;19641:6;19638:1;19635:13;19627:113;;;19717:11;;;19711:18;19698:11;;;19691:39;19663:2;19656:10;19627:113;;;19758:6;19755:1;19752:13;19749:48;;;-1:-1:-1;;19793:1:1;19775:16;;19768:27;19545:258::o;19808:380::-;19887:1;19883:12;;;;19930;;;19951:61;;20005:4;19997:6;19993:17;19983:27;;19951:61;20058:2;20050:6;20047:14;20027:18;20024:38;20021:161;;;20104:10;20099:3;20095:20;20092:1;20085:31;20139:4;20136:1;20129:15;20167:4;20164:1;20157:15;20021:161;;19808:380;;;:::o;20193:135::-;20232:3;-1:-1:-1;;20253:17:1;;20250:43;;;20273:18;;:::i;:::-;-1:-1:-1;20320:1:1;20309:13;;20193:135::o;20333:112::-;20365:1;20391;20381:35;;20396:18;;:::i;:::-;-1:-1:-1;20430:9:1;;20333:112::o;20450:127::-;20511:10;20506:3;20502:20;20499:1;20492:31;20542:4;20539:1;20532:15;20566:4;20563:1;20556:15;20582:127;20643:10;20638:3;20634:20;20631:1;20624:31;20674:4;20671:1;20664:15;20698:4;20695:1;20688:15;20714:127;20775:10;20770:3;20766:20;20763:1;20756:31;20806:4;20803:1;20796:15;20830:4;20827:1;20820:15;20846:127;20907:10;20902:3;20898:20;20895:1;20888:31;20938:4;20935:1;20928:15;20962:4;20959:1;20952:15;20978:127;21039:10;21034:3;21030:20;21027:1;21020:31;21070:4;21067:1;21060:15;21094:4;21091:1;21084:15;21110:131;-1:-1:-1;;;;;21185:31:1;;21175:42;;21165:70;;21231:1;21228;21221:12;21246:131;-1:-1:-1;;;;;;21320:32:1;;21310:43;;21300:71;;21367:1;21364;21357:12

Swarm Source

ipfs://a2bc42b4f4a5db9a6b29e1887523f29f4bc207e2d297fd1310b6ae409d463955
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.