ETH Price: $2,425.34 (-1.68%)
 

Overview

Max Total Supply

304 GOD

Holders

103

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
3 GOD
0x0eB5f39fB777fC5fAC94C5F388B85C79bCc79312
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GodOfDarkness

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-27
*/

// File: theaurfape.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)




abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    
    constructor() {
        _transferOwnership(_msgSender());
    }

    
    function owner() public view virtual returns (address) {
        return _owner;
    }

   
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File @openzeppelin/contracts/utils/[email protected]


// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)




library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    
    function toString(uint256 value) internal pure returns (string memory) {
        

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

    
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}





// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)




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





// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol)




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;
}





// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol)




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




// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)




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);
}





// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Enumerable.sol)




interface IERC721Enumerable is IERC721 {
    
    function totalSupply() external view returns (uint256);

    
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);

    
    function tokenByIndex(uint256 index) external view returns (uint256);
}


// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)


library Counters {
    struct Counter {
        
        uint256 _value; 
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 0;
    }
}


// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)




library Address {
    
    function isContract(address account) internal view returns (bool) {
        

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}




// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)




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


// File contracts/ERC721A.sol




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 = 0;

    
    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) {
        require(index < totalSupply(), 'ERC721A: global index out of bounds');
        return index;
    }

    
    function tokenOfOwnerByIndex(address owner, uint256 index) public view override returns (uint256) {
        require(index < balanceOf(owner), 'ERC721A: owner index out of bounds');
        uint256 numMintedSoFar = totalSupply();
        uint256 tokenIdsIdx = 0;
        address currOwnershipAddr = address(0);
        for (uint256 i = 0; i < numMintedSoFar; i++) {
            TokenOwnership memory ownership = _ownerships[i];
            if (ownership.addr != address(0)) {
                currOwnershipAddr = ownership.addr;
            }
            if (currOwnershipAddr == owner) {
                if (tokenIdsIdx == index) {
                    return i;
                }
                tokenIdsIdx++;
            }
        }
        revert('ERC721A: unable to get token of owner by index');
    }

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

    
    function balanceOf(address owner) public view override returns (uint256) {
        require(owner != address(0), 'ERC721A: balance query for the zero address');
        return uint256(_addressData[owner].balance);
    }

    function _numberMinted(address owner) internal view returns (uint256) {
        require(owner != address(0), 'ERC721A: number minted query for the zero address');
        return uint256(_addressData[owner].numberMinted);
    }

    function ownershipOf(uint256 tokenId) internal view returns (TokenOwnership memory) {
        require(_exists(tokenId), 'ERC721A: owner query for nonexistent token');

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

        revert('ERC721A: unable to determine the owner of token');
    }

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

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

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

    
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), 'ERC721Metadata: URI query for nonexistent token');

        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : '';
    }

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

    
    function approve(address to, uint256 tokenId) public override {
        address owner = ERC721A.ownerOf(tokenId);
        require(to != owner, 'ERC721A: approval to current owner');

        require(
            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
            'ERC721A: approve caller is not owner nor approved for all'
        );

        _approve(to, tokenId, owner);
    }

    
    function getApproved(uint256 tokenId) public view override returns (address) {
        require(_exists(tokenId), 'ERC721A: approved query for nonexistent token');

        return _tokenApprovals[tokenId];
    }

    
    function setApprovalForAll(address operator, bool approved) public override {
        require(operator != _msgSender(), 'ERC721A: approve to caller');

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

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

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

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

    
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public override {
        _transfer(from, to, tokenId);
        require(
            _checkOnERC721Received(from, to, tokenId, _data),
            'ERC721A: transfer to non ERC721Receiver implementer'
        );
    }

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

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

    
    function _safeMint(
        address to,
        uint256 quantity,
        bytes memory _data
    ) internal {
        uint256 startTokenId = currentIndex;
        require(to != address(0), 'ERC721A: mint to the zero address');
        require(!_exists(startTokenId), 'ERC721A: token already minted');
        require(quantity > 0, 'ERC721A: quantity must be greater 0');

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

        AddressData memory addressData = _addressData[to];
        _addressData[to] = AddressData(
            addressData.balance + uint128(quantity),
            addressData.numberMinted + uint128(quantity)
        );
        _ownerships[startTokenId] = TokenOwnership(to, uint64(block.timestamp));

        uint256 updatedIndex = startTokenId;

        for (uint256 i = 0; i < quantity; i++) {
            emit Transfer(address(0), to, updatedIndex);
            require(
                _checkOnERC721Received(address(0), to, updatedIndex, _data),
                'ERC721A: transfer to non ERC721Receiver implementer'
            );
            updatedIndex++;
        }

      currentIndex = updatedIndex;
        _afterTokenTransfers(address(0), to, startTokenId, quantity);
    }

    
    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) private {
        TokenOwnership memory prevOwnership = ownershipOf(tokenId);

        bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr ||
            getApproved(tokenId) == _msgSender() ||
            isApprovedForAll(prevOwnership.addr, _msgSender()));

        require(isApprovedOrOwner, 'ERC721A: transfer caller is not owner nor approved');

        require(prevOwnership.addr == from, 'ERC721A: transfer from incorrect owner');
        require(to != address(0), 'ERC721A: transfer to the zero address');

        _beforeTokenTransfers(from, to, tokenId, 1);

        
        _approve(address(0), tokenId, prevOwnership.addr);

        
        unchecked {
            _addressData[from].balance -= 1;
            _addressData[to].balance += 1;
        }

        _ownerships[tokenId] = TokenOwnership(to, uint64(block.timestamp));

        
        uint256 nextTokenId = tokenId + 1;
        if (_ownerships[nextTokenId].addr == address(0)) {
            if (_exists(nextTokenId)) {
                _ownerships[nextTokenId] = TokenOwnership(prevOwnership.addr, prevOwnership.startTimestamp);
            }
        }

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

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

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

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

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

contract GodOfDarkness is ERC721A, Ownable {

  using Strings for uint256;
  using Counters for Counters.Counter;

  Counters.Counter private supply;

 string baseURI;
  string public baseExtension = ".json";
  uint256 public constant MAX_PER_TX_FREE = 3;
  uint256 public constant MAX_PER_TX = 3;
  uint256 public constant FREE_MAX_SUPPLY = 300;
  uint256 public cost = 0.0003 ether;
  uint256 public maxSupply = 1000;
  uint256 public maxMintAmount = 3;
  bool public paused = true;
  bool public revealed = false;
  string public notRevealedUri;

  constructor(
    string memory _name,
    string memory _symbol,
    string memory _initBaseURI,
    string memory _initNotRevealedUri
  ) ERC721A(_name, _symbol) {
    setBaseURI(_initBaseURI);
    setNotRevealedURI(_initNotRevealedUri);
  }

  // internal
  function _baseURI() internal view virtual override returns (string memory) {
    return baseURI;
  }

  // public
  function mint(uint256 _amount) external payable {
        address _caller = _msgSender();
        require(!paused, "Paused");
        require(maxSupply >= totalSupply() + _amount, "Exceeds max supply");
        require(_amount > 0, "No 0 mints");
        require(tx.origin == _caller, "No contracts");

        if(FREE_MAX_SUPPLY >= totalSupply()){
            require(MAX_PER_TX_FREE >= _amount , "Excess max per free tx");
        }else{
            require(MAX_PER_TX >= _amount , "Excess max per paid tx");
            require(_amount * cost == msg.value, "Invalid funds provided");
        }

        _safeMint(_caller, _amount);
    }

  function walletOfOwner(address _owner)
    public
    view
    returns (uint256[] memory)
  {
    uint256 ownerTokenCount = balanceOf(_owner);
    uint256[] memory tokenIds = new uint256[](ownerTokenCount);
    for (uint256 i; i < ownerTokenCount; i++) {
      tokenIds[i] = tokenOfOwnerByIndex(_owner, i);
    }
    return tokenIds;
  }

  function tokenURI(uint256 tokenId)
    public
    view
    virtual
    override
    returns (string memory)
  {
    require(
      _exists(tokenId),
      "ERC721Metadata: URI query for nonexistent token"
    );
    
    if(revealed == false) {
        return notRevealedUri;
    }

    string memory currentBaseURI = _baseURI();
    return bytes(currentBaseURI).length > 0
        ? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension))
        : "";
  }

  //only owner
  function reveal() public onlyOwner {
      revealed = true;
  }
  
  function setCost(uint256 _newCost) public onlyOwner {
    cost = _newCost;
  }

  function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner {
    maxMintAmount = _newmaxMintAmount;
  }
  
  function setNotRevealedURI(string memory _notRevealedURI) public onlyOwner {
    notRevealedUri = _notRevealedURI;
  }

  function setBaseURI(string memory _newBaseURI) public onlyOwner {
    baseURI = _newBaseURI;
  }

  function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
    baseExtension = _newBaseExtension;
  }

  function pause(bool _state) public onlyOwner {
    paused = _state;
  }
 
  function withdraw() public onlyOwner {
        (bool os, ) = payable(owner()).call{value: address(this).balance}("");
        require(os, "Withdraw failed!");
  }
  function _mintLoop(address _receiver, uint256 _mintAmount) internal {
    for (uint256 i = 1; i <= _mintAmount; i++) {
      supply.increment();
      _safeMint(_receiver, supply.current());
    }
  }

  

    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"},{"internalType":"string","name":"_initNotRevealedUri","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"FREE_MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PER_TX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PER_TX_FREE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmount","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":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","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":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600080556040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600a90816200004e9190620005fc565b50660110d9316ec000600b556103e8600c556003600d556001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff021916908315150217905550348015620000a857600080fd5b5060405162005859380380620058598339818101604052810190620000ce919062000851565b83838160019081620000e19190620005fc565b508060029081620000f39190620005fc565b505050620001166200010a6200014260201b60201c565b6200014a60201b60201c565b62000127826200021060201b60201c565b6200013881620002b460201b60201c565b50505050620009c2565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002206200014260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002466200035860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200029f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029690620009a0565b60405180910390fd5b8060099081620002b09190620005fc565b5050565b620002c46200014260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002ea6200035860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000343576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033a90620009a0565b60405180910390fd5b80600f9081620003549190620005fc565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200040457607f821691505b6020821081036200041a5762000419620003bc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000445565b62000490868362000445565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004dd620004d7620004d184620004a8565b620004b2565b620004a8565b9050919050565b6000819050919050565b620004f983620004bc565b620005116200050882620004e4565b84845462000452565b825550505050565b600090565b6200052862000519565b62000535818484620004ee565b505050565b5b818110156200055d57620005516000826200051e565b6001810190506200053b565b5050565b601f821115620005ac57620005768162000420565b620005818462000435565b8101602085101562000591578190505b620005a9620005a08562000435565b8301826200053a565b50505b505050565b600082821c905092915050565b6000620005d160001984600802620005b1565b1980831691505092915050565b6000620005ec8383620005be565b9150826002028217905092915050565b620006078262000382565b67ffffffffffffffff8111156200062357620006226200038d565b5b6200062f8254620003eb565b6200063c82828562000561565b600060209050601f8311600181146200067457600084156200065f578287015190505b6200066b8582620005de565b865550620006db565b601f198416620006848662000420565b60005b82811015620006ae5784890151825560018201915060208501945060208101905062000687565b86831015620006ce5784890151620006ca601f891682620005be565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200071d8262000701565b810181811067ffffffffffffffff821117156200073f576200073e6200038d565b5b80604052505050565b600062000754620006e3565b905062000762828262000712565b919050565b600067ffffffffffffffff8211156200078557620007846200038d565b5b620007908262000701565b9050602081019050919050565b60005b83811015620007bd578082015181840152602081019050620007a0565b83811115620007cd576000848401525b50505050565b6000620007ea620007e48462000767565b62000748565b905082815260208101848484011115620008095762000808620006fc565b5b620008168482856200079d565b509392505050565b600082601f830112620008365762000835620006f7565b5b815162000848848260208601620007d3565b91505092915050565b600080600080608085870312156200086e576200086d620006ed565b5b600085015167ffffffffffffffff8111156200088f576200088e620006f2565b5b6200089d878288016200081e565b945050602085015167ffffffffffffffff811115620008c157620008c0620006f2565b5b620008cf878288016200081e565b935050604085015167ffffffffffffffff811115620008f357620008f2620006f2565b5b62000901878288016200081e565b925050606085015167ffffffffffffffff811115620009255762000924620006f2565b5b62000933878288016200081e565b91505092959194509250565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620009886020836200093f565b9150620009958262000950565b602082019050919050565b60006020820190508181036000830152620009bb8162000979565b9050919050565b614e8780620009d26000396000f3fe6080604052600436106102305760003560e01c80635c975abb1161012e578063a475b5dd116100ab578063da3ef23f1161006f578063da3ef23f1461081e578063e985e9c514610847578063f2c4ce1e14610884578063f2fde38b146108ad578063f43a22dc146108d657610230565b8063a475b5dd1461074b578063b88d4fde14610762578063c66828621461078b578063c87b56dd146107b6578063d5abeb01146107f357610230565b80638069876d116100f25780638069876d146106855780638da5cb5b146106b057806395d89b41146106db578063a0712d6814610706578063a22cb4651461072257610230565b80635c975abb146105a05780636352211e146105cb57806370a0823114610608578063715018a6146106455780637f00c7a61461065c57610230565b806323b872dd116101bc57806344a0d68a1161018057806344a0d68a146104bb578063463fff79146104e45780634f6ccce71461050f578063518302271461054c57806355f804b31461057757610230565b806323b872dd146103d85780632f745c59146104015780633ccfd60b1461043e57806342842e0e14610455578063438b63001461047e57610230565b8063081c8c4411610203578063081c8c4414610303578063095ea7b31461032e57806313faede61461035757806318160ddd14610382578063239c70ae146103ad57610230565b806301ffc9a71461023557806302329a291461027257806306fdde031461029b578063081812fc146102c6575b600080fd5b34801561024157600080fd5b5061025c600480360381019061025791906131a2565b610901565b60405161026991906131ea565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190613231565b610a4b565b005b3480156102a757600080fd5b506102b0610ae4565b6040516102bd91906132f7565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061334f565b610b76565b6040516102fa91906133bd565b60405180910390f35b34801561030f57600080fd5b50610318610bfb565b60405161032591906132f7565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190613404565b610c89565b005b34801561036357600080fd5b5061036c610da1565b6040516103799190613453565b60405180910390f35b34801561038e57600080fd5b50610397610da7565b6040516103a49190613453565b60405180910390f35b3480156103b957600080fd5b506103c2610db0565b6040516103cf9190613453565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061346e565b610db6565b005b34801561040d57600080fd5b5061042860048036038101906104239190613404565b610dc6565b6040516104359190613453565b60405180910390f35b34801561044a57600080fd5b50610453610fc2565b005b34801561046157600080fd5b5061047c6004803603810190610477919061346e565b6110f4565b005b34801561048a57600080fd5b506104a560048036038101906104a091906134c1565b611114565b6040516104b291906135ac565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd919061334f565b6111c2565b005b3480156104f057600080fd5b506104f9611248565b6040516105069190613453565b60405180910390f35b34801561051b57600080fd5b506105366004803603810190610531919061334f565b61124d565b6040516105439190613453565b60405180910390f35b34801561055857600080fd5b506105616112a0565b60405161056e91906131ea565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190613703565b6112b3565b005b3480156105ac57600080fd5b506105b5611342565b6040516105c291906131ea565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061334f565b611355565b6040516105ff91906133bd565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906134c1565b61136b565b60405161063c9190613453565b60405180910390f35b34801561065157600080fd5b5061065a611453565b005b34801561066857600080fd5b50610683600480360381019061067e919061334f565b6114db565b005b34801561069157600080fd5b5061069a611561565b6040516106a79190613453565b60405180910390f35b3480156106bc57600080fd5b506106c5611567565b6040516106d291906133bd565b60405180910390f35b3480156106e757600080fd5b506106f0611591565b6040516106fd91906132f7565b60405180910390f35b610720600480360381019061071b919061334f565b611623565b005b34801561072e57600080fd5b506107496004803603810190610744919061374c565b611882565b005b34801561075757600080fd5b50610760611a02565b005b34801561076e57600080fd5b506107896004803603810190610784919061382d565b611a9b565b005b34801561079757600080fd5b506107a0611af7565b6040516107ad91906132f7565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d8919061334f565b611b85565b6040516107ea91906132f7565b60405180910390f35b3480156107ff57600080fd5b50610808611cdd565b6040516108159190613453565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190613703565b611ce3565b005b34801561085357600080fd5b5061086e600480360381019061086991906138b0565b611d72565b60405161087b91906131ea565b60405180910390f35b34801561089057600080fd5b506108ab60048036038101906108a69190613703565b611e06565b005b3480156108b957600080fd5b506108d460048036038101906108cf91906134c1565b611e95565b005b3480156108e257600080fd5b506108eb611f8c565b6040516108f89190613453565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a3457507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a445750610a4382611f91565b5b9050919050565b610a53611ffb565b73ffffffffffffffffffffffffffffffffffffffff16610a71611567565b73ffffffffffffffffffffffffffffffffffffffff1614610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe9061393c565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b606060018054610af39061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1f9061398b565b8015610b6c5780601f10610b4157610100808354040283529160200191610b6c565b820191906000526020600020905b815481529060010190602001808311610b4f57829003601f168201915b5050505050905090565b6000610b8182612003565b610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790613a2e565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600f8054610c089061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c349061398b565b8015610c815780601f10610c5657610100808354040283529160200191610c81565b820191906000526020600020905b815481529060010190602001808311610c6457829003601f168201915b505050505081565b6000610c9482611355565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90613ac0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d23611ffb565b73ffffffffffffffffffffffffffffffffffffffff161480610d525750610d5181610d4c611ffb565b611d72565b5b610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890613b52565b60405180910390fd5b610d9c838383612010565b505050565b600b5481565b60008054905090565b600d5481565b610dc18383836120c2565b505050565b6000610dd18361136b565b8210610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990613be4565b60405180910390fd5b6000610e1c610da7565b905060008060005b83811015610f80576000600360008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610f1657806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6c57868403610f5d578195505050505050610fbc565b8380610f6890613c33565b9450505b508080610f7890613c33565b915050610e24565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390613ced565b60405180910390fd5b92915050565b610fca611ffb565b73ffffffffffffffffffffffffffffffffffffffff16610fe8611567565b73ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110359061393c565b60405180910390fd5b6000611048611567565b73ffffffffffffffffffffffffffffffffffffffff164760405161106b90613d3e565b60006040518083038185875af1925050503d80600081146110a8576040519150601f19603f3d011682016040523d82523d6000602084013e6110ad565b606091505b50509050806110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613d9f565b60405180910390fd5b50565b61110f83838360405180602001604052806000815250611a9b565b505050565b606060006111218361136b565b905060008167ffffffffffffffff81111561113f5761113e6135d8565b5b60405190808252806020026020018201604052801561116d5781602001602082028036833780820191505090505b50905060005b828110156111b7576111858582610dc6565b82828151811061119857611197613dbf565b5b60200260200101818152505080806111af90613c33565b915050611173565b508092505050919050565b6111ca611ffb565b73ffffffffffffffffffffffffffffffffffffffff166111e8611567565b73ffffffffffffffffffffffffffffffffffffffff161461123e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112359061393c565b60405180910390fd5b80600b8190555050565b600381565b6000611257610da7565b8210611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613e60565b60405180910390fd5b819050919050565b600e60019054906101000a900460ff1681565b6112bb611ffb565b73ffffffffffffffffffffffffffffffffffffffff166112d9611567565b73ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113269061393c565b60405180910390fd5b806009908161133e919061402c565b5050565b600e60009054906101000a900460ff1681565b600061136082612667565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290614170565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b61145b611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611479611567565b73ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c69061393c565b60405180910390fd5b6114d960006127c2565b565b6114e3611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611501611567565b73ffffffffffffffffffffffffffffffffffffffff1614611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9061393c565b60405180910390fd5b80600d8190555050565b61012c81565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546115a09061398b565b80601f01602080910402602001604051908101604052809291908181526020018280546115cc9061398b565b80156116195780601f106115ee57610100808354040283529160200191611619565b820191906000526020600020905b8154815290600101906020018083116115fc57829003601f168201915b5050505050905090565b600061162d611ffb565b9050600e60009054906101000a900460ff161561167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906141dc565b60405180910390fd5b81611688610da7565b61169291906141fc565b600c5410156116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd9061429e565b60405180910390fd5b60008211611719576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117109061430a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90614376565b60405180910390fd5b61178f610da7565b61012c106117e05781600310156117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906143e2565b60405180910390fd5b611874565b8160031015611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b9061444e565b60405180910390fd5b34600b5483611833919061446e565b14611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a90614514565b60405180910390fd5b5b61187e8183612888565b5050565b61188a611ffb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee90614580565b60405180910390fd5b8060066000611904611ffb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166119b1611ffb565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119f691906131ea565b60405180910390a35050565b611a0a611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611a28611567565b73ffffffffffffffffffffffffffffffffffffffff1614611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a759061393c565b60405180910390fd5b6001600e60016101000a81548160ff021916908315150217905550565b611aa68484846120c2565b611ab2848484846128a6565b611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890614612565b60405180910390fd5b50505050565b600a8054611b049061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054611b309061398b565b8015611b7d5780601f10611b5257610100808354040283529160200191611b7d565b820191906000526020600020905b815481529060010190602001808311611b6057829003601f168201915b505050505081565b6060611b9082612003565b611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc6906146a4565b60405180910390fd5b60001515600e60019054906101000a900460ff16151503611c7c57600f8054611bf79061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c239061398b565b8015611c705780601f10611c4557610100808354040283529160200191611c70565b820191906000526020600020905b815481529060010190602001808311611c5357829003601f168201915b50505050509050611cd8565b6000611c86612a2d565b90506000815111611ca65760405180602001604052806000815250611cd4565b80611cb084612abf565b600a604051602001611cc493929190614783565b6040516020818303038152906040525b9150505b919050565b600c5481565b611ceb611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611d09611567565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d569061393c565b60405180910390fd5b80600a9081611d6e919061402c565b5050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611e0e611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611e2c611567565b73ffffffffffffffffffffffffffffffffffffffff1614611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e799061393c565b60405180910390fd5b80600f9081611e91919061402c565b5050565b611e9d611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611ebb611567565b73ffffffffffffffffffffffffffffffffffffffff1614611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f089061393c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7790614826565b60405180910390fd5b611f89816127c2565b50565b600381565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6000805482109050919050565b826005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006120cd82612667565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff166120f4611ffb565b73ffffffffffffffffffffffffffffffffffffffff1614806121505750612119611ffb565b73ffffffffffffffffffffffffffffffffffffffff1661213884610b76565b73ffffffffffffffffffffffffffffffffffffffff16145b8061216c575061216b8260000151612166611ffb565b611d72565b5b9050806121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a5906148b8565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614612220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122179061494a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361228f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612286906149dc565b60405180910390fd5b61229c8585856001612c1f565b6122ac6000848460000151612010565b6001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506003600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555090505060006001846124b291906141fc565b9050600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036125f75761252781612003565b156125f6576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506003600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461265f8686866001612c25565b505050505050565b61266f6130fc565b61267882612003565b6126b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ae90614a6e565b60405180910390fd5b60008290505b6000600360008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146127a95780925050506127bd565b5080806127b590614a8e565b9150506126bd565b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6128a2828260405180602001604052806000815250612c2b565b5050565b60006128c78473ffffffffffffffffffffffffffffffffffffffff166130e9565b15612a20578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026128f0611ffb565b8786866040518563ffffffff1660e01b81526004016129129493929190614b0c565b6020604051808303816000875af192505050801561294e57506040513d601f19601f8201168201806040525081019061294b9190614b6d565b60015b6129d0573d806000811461297e576040519150601f19603f3d011682016040523d82523d6000602084013e612983565b606091505b5060008151036129c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bf90614612565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a25565b600190505b949350505050565b606060098054612a3c9061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054612a689061398b565b8015612ab55780601f10612a8a57610100808354040283529160200191612ab5565b820191906000526020600020905b815481529060010190602001808311612a9857829003601f168201915b5050505050905090565b606060008203612b06576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612c1a565b600082905060005b60008214612b38578080612b2190613c33565b915050600a82612b319190614bc9565b9150612b0e565b60008167ffffffffffffffff811115612b5457612b536135d8565b5b6040519080825280601f01601f191660200182016040528015612b865781602001600182028036833780820191505090505b5090505b60008514612c1357600182612b9f9190614bfa565b9150600a85612bae9190614c2e565b6030612bba91906141fc565b60f81b818381518110612bd057612bcf613dbf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612c0c9190614bc9565b9450612b8a565b8093505050505b919050565b50505050565b50505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9790614cd1565b60405180910390fd5b612ca981612003565b15612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce090614d3d565b60405180910390fd5b60008311612d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2390614dcf565b60405180910390fd5b612d396000858386612c1f565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506040518060400160405280858360000151612e369190614e0b565b6fffffffffffffffffffffffffffffffff168152602001858360200151612e5d9190614e0b565b6fffffffffffffffffffffffffffffffff16815250600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506003600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b858110156130cc57818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461306c60008884886128a6565b6130ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a290614612565b60405180910390fd5b81806130b690613c33565b92505080806130c490613c33565b915050612ffb565b50806000819055506130e16000878588612c25565b505050505050565b600080823b905060008111915050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61317f8161314a565b811461318a57600080fd5b50565b60008135905061319c81613176565b92915050565b6000602082840312156131b8576131b7613140565b5b60006131c68482850161318d565b91505092915050565b60008115159050919050565b6131e4816131cf565b82525050565b60006020820190506131ff60008301846131db565b92915050565b61320e816131cf565b811461321957600080fd5b50565b60008135905061322b81613205565b92915050565b60006020828403121561324757613246613140565b5b60006132558482850161321c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329857808201518184015260208101905061327d565b838111156132a7576000848401525b50505050565b6000601f19601f8301169050919050565b60006132c98261325e565b6132d38185613269565b93506132e381856020860161327a565b6132ec816132ad565b840191505092915050565b6000602082019050818103600083015261331181846132be565b905092915050565b6000819050919050565b61332c81613319565b811461333757600080fd5b50565b60008135905061334981613323565b92915050565b60006020828403121561336557613364613140565b5b60006133738482850161333a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133a78261337c565b9050919050565b6133b78161339c565b82525050565b60006020820190506133d260008301846133ae565b92915050565b6133e18161339c565b81146133ec57600080fd5b50565b6000813590506133fe816133d8565b92915050565b6000806040838503121561341b5761341a613140565b5b6000613429858286016133ef565b925050602061343a8582860161333a565b9150509250929050565b61344d81613319565b82525050565b60006020820190506134686000830184613444565b92915050565b60008060006060848603121561348757613486613140565b5b6000613495868287016133ef565b93505060206134a6868287016133ef565b92505060406134b78682870161333a565b9150509250925092565b6000602082840312156134d7576134d6613140565b5b60006134e5848285016133ef565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352381613319565b82525050565b6000613535838361351a565b60208301905092915050565b6000602082019050919050565b6000613559826134ee565b61356381856134f9565b935061356e8361350a565b8060005b8381101561359f5781516135868882613529565b975061359183613541565b925050600181019050613572565b5085935050505092915050565b600060208201905081810360008301526135c6818461354e565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613610826132ad565b810181811067ffffffffffffffff8211171561362f5761362e6135d8565b5b80604052505050565b6000613642613136565b905061364e8282613607565b919050565b600067ffffffffffffffff82111561366e5761366d6135d8565b5b613677826132ad565b9050602081019050919050565b82818337600083830152505050565b60006136a66136a184613653565b613638565b9050828152602081018484840111156136c2576136c16135d3565b5b6136cd848285613684565b509392505050565b600082601f8301126136ea576136e96135ce565b5b81356136fa848260208601613693565b91505092915050565b60006020828403121561371957613718613140565b5b600082013567ffffffffffffffff81111561373757613736613145565b5b613743848285016136d5565b91505092915050565b6000806040838503121561376357613762613140565b5b6000613771858286016133ef565b92505060206137828582860161321c565b9150509250929050565b600067ffffffffffffffff8211156137a7576137a66135d8565b5b6137b0826132ad565b9050602081019050919050565b60006137d06137cb8461378c565b613638565b9050828152602081018484840111156137ec576137eb6135d3565b5b6137f7848285613684565b509392505050565b600082601f830112613814576138136135ce565b5b81356138248482602086016137bd565b91505092915050565b6000806000806080858703121561384757613846613140565b5b6000613855878288016133ef565b9450506020613866878288016133ef565b93505060406138778782880161333a565b925050606085013567ffffffffffffffff81111561389857613897613145565b5b6138a4878288016137ff565b91505092959194509250565b600080604083850312156138c7576138c6613140565b5b60006138d5858286016133ef565b92505060206138e6858286016133ef565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613926602083613269565b9150613931826138f0565b602082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139a357607f821691505b6020821081036139b6576139b561395c565b5b50919050565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b6000613a18602d83613269565b9150613a23826139bc565b604082019050919050565b60006020820190508181036000830152613a4781613a0b565b9050919050565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aaa602283613269565b9150613ab582613a4e565b604082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b6000613b3c603983613269565b9150613b4782613ae0565b604082019050919050565b60006020820190508181036000830152613b6b81613b2f565b9050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bce602283613269565b9150613bd982613b72565b604082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c3e82613319565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c7057613c6f613c04565b5b600182019050919050565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b6000613cd7602e83613269565b9150613ce282613c7b565b604082019050919050565b60006020820190508181036000830152613d0681613cca565b9050919050565b600081905092915050565b50565b6000613d28600083613d0d565b9150613d3382613d18565b600082019050919050565b6000613d4982613d1b565b9150819050919050565b7f5769746864726177206661696c65642100000000000000000000000000000000600082015250565b6000613d89601083613269565b9150613d9482613d53565b602082019050919050565b60006020820190508181036000830152613db881613d7c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e4a602383613269565b9150613e5582613dee565b604082019050919050565b60006020820190508181036000830152613e7981613e3d565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613ee27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ea5565b613eec8683613ea5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613f29613f24613f1f84613319565b613f04565b613319565b9050919050565b6000819050919050565b613f4383613f0e565b613f57613f4f82613f30565b848454613eb2565b825550505050565b600090565b613f6c613f5f565b613f77818484613f3a565b505050565b5b81811015613f9b57613f90600082613f64565b600181019050613f7d565b5050565b601f821115613fe057613fb181613e80565b613fba84613e95565b81016020851015613fc9578190505b613fdd613fd585613e95565b830182613f7c565b50505b505050565b600082821c905092915050565b600061400360001984600802613fe5565b1980831691505092915050565b600061401c8383613ff2565b9150826002028217905092915050565b6140358261325e565b67ffffffffffffffff81111561404e5761404d6135d8565b5b614058825461398b565b614063828285613f9f565b600060209050601f8311600181146140965760008415614084578287015190505b61408e8582614010565b8655506140f6565b601f1984166140a486613e80565b60005b828110156140cc578489015182556001820191506020850194506020810190506140a7565b868310156140e957848901516140e5601f891682613ff2565b8355505b6001600288020188555050505b505050505050565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b600061415a602b83613269565b9150614165826140fe565b604082019050919050565b600060208201905081810360008301526141898161414d565b9050919050565b7f5061757365640000000000000000000000000000000000000000000000000000600082015250565b60006141c6600683613269565b91506141d182614190565b602082019050919050565b600060208201905081810360008301526141f5816141b9565b9050919050565b600061420782613319565b915061421283613319565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561424757614246613c04565b5b828201905092915050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b6000614288601283613269565b915061429382614252565b602082019050919050565b600060208201905081810360008301526142b78161427b565b9050919050565b7f4e6f2030206d696e747300000000000000000000000000000000000000000000600082015250565b60006142f4600a83613269565b91506142ff826142be565b602082019050919050565b60006020820190508181036000830152614323816142e7565b9050919050565b7f4e6f20636f6e7472616374730000000000000000000000000000000000000000600082015250565b6000614360600c83613269565b915061436b8261432a565b602082019050919050565b6000602082019050818103600083015261438f81614353565b9050919050565b7f457863657373206d617820706572206672656520747800000000000000000000600082015250565b60006143cc601683613269565b91506143d782614396565b602082019050919050565b600060208201905081810360008301526143fb816143bf565b9050919050565b7f457863657373206d617820706572207061696420747800000000000000000000600082015250565b6000614438601683613269565b915061444382614402565b602082019050919050565b600060208201905081810360008301526144678161442b565b9050919050565b600061447982613319565b915061448483613319565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144bd576144bc613c04565b5b828202905092915050565b7f496e76616c69642066756e64732070726f766964656400000000000000000000600082015250565b60006144fe601683613269565b9150614509826144c8565b602082019050919050565b6000602082019050818103600083015261452d816144f1565b9050919050565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b600061456a601a83613269565b915061457582614534565b602082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b60006145fc603383613269565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061468e602f83613269565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b600081905092915050565b60006146da8261325e565b6146e481856146c4565b93506146f481856020860161327a565b80840191505092915050565b6000815461470d8161398b565b61471781866146c4565b9450600182166000811461473257600181146147475761477a565b60ff198316865281151582028601935061477a565b61475085613e80565b60005b8381101561477257815481890152600182019150602081019050614753565b838801955050505b50505092915050565b600061478f82866146cf565b915061479b82856146cf565b91506147a78284614700565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614810602683613269565b915061481b826147b4565b604082019050919050565b6000602082019050818103600083015261483f81614803565b9050919050565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b60006148a2603283613269565b91506148ad82614846565b604082019050919050565b600060208201905081810360008301526148d181614895565b9050919050565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b6000614934602683613269565b915061493f826148d8565b604082019050919050565b6000602082019050818103600083015261496381614927565b9050919050565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149c6602583613269565b91506149d18261496a565b604082019050919050565b600060208201905081810360008301526149f5816149b9565b9050919050565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b6000614a58602a83613269565b9150614a63826149fc565b604082019050919050565b60006020820190508181036000830152614a8781614a4b565b9050919050565b6000614a9982613319565b915060008203614aac57614aab613c04565b5b600182039050919050565b600081519050919050565b600082825260208201905092915050565b6000614ade82614ab7565b614ae88185614ac2565b9350614af881856020860161327a565b614b01816132ad565b840191505092915050565b6000608082019050614b2160008301876133ae565b614b2e60208301866133ae565b614b3b6040830185613444565b8181036060830152614b4d8184614ad3565b905095945050505050565b600081519050614b6781613176565b92915050565b600060208284031215614b8357614b82613140565b5b6000614b9184828501614b58565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614bd482613319565b9150614bdf83613319565b925082614bef57614bee614b9a565b5b828204905092915050565b6000614c0582613319565b9150614c1083613319565b925082821015614c2357614c22613c04565b5b828203905092915050565b6000614c3982613319565b9150614c4483613319565b925082614c5457614c53614b9a565b5b828206905092915050565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cbb602183613269565b9150614cc682614c5f565b604082019050919050565b60006020820190508181036000830152614cea81614cae565b9050919050565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b6000614d27601d83613269565b9150614d3282614cf1565b602082019050919050565b60006020820190508181036000830152614d5681614d1a565b9050919050565b7f455243373231413a207175616e74697479206d7573742062652067726561746560008201527f7220300000000000000000000000000000000000000000000000000000000000602082015250565b6000614db9602383613269565b9150614dc482614d5d565b604082019050919050565b60006020820190508181036000830152614de881614dac565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6000614e1682614def565b9150614e2183614def565b9250826fffffffffffffffffffffffffffffffff03821115614e4657614e45613c04565b5b82820190509291505056fea264697066735822122046a17bb21df895d4ad8b39eac6fa5abe44649f0576be7446f799409079967b5564736f6c634300080f0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000f476f64204f66204461726b6e65737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003474f44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d665463545634724d656f56454e35626f73636476635265476e6f6f735645737972667131703353574a6d41420000000000000000000000

Deployed Bytecode

0x6080604052600436106102305760003560e01c80635c975abb1161012e578063a475b5dd116100ab578063da3ef23f1161006f578063da3ef23f1461081e578063e985e9c514610847578063f2c4ce1e14610884578063f2fde38b146108ad578063f43a22dc146108d657610230565b8063a475b5dd1461074b578063b88d4fde14610762578063c66828621461078b578063c87b56dd146107b6578063d5abeb01146107f357610230565b80638069876d116100f25780638069876d146106855780638da5cb5b146106b057806395d89b41146106db578063a0712d6814610706578063a22cb4651461072257610230565b80635c975abb146105a05780636352211e146105cb57806370a0823114610608578063715018a6146106455780637f00c7a61461065c57610230565b806323b872dd116101bc57806344a0d68a1161018057806344a0d68a146104bb578063463fff79146104e45780634f6ccce71461050f578063518302271461054c57806355f804b31461057757610230565b806323b872dd146103d85780632f745c59146104015780633ccfd60b1461043e57806342842e0e14610455578063438b63001461047e57610230565b8063081c8c4411610203578063081c8c4414610303578063095ea7b31461032e57806313faede61461035757806318160ddd14610382578063239c70ae146103ad57610230565b806301ffc9a71461023557806302329a291461027257806306fdde031461029b578063081812fc146102c6575b600080fd5b34801561024157600080fd5b5061025c600480360381019061025791906131a2565b610901565b60405161026991906131ea565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190613231565b610a4b565b005b3480156102a757600080fd5b506102b0610ae4565b6040516102bd91906132f7565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061334f565b610b76565b6040516102fa91906133bd565b60405180910390f35b34801561030f57600080fd5b50610318610bfb565b60405161032591906132f7565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190613404565b610c89565b005b34801561036357600080fd5b5061036c610da1565b6040516103799190613453565b60405180910390f35b34801561038e57600080fd5b50610397610da7565b6040516103a49190613453565b60405180910390f35b3480156103b957600080fd5b506103c2610db0565b6040516103cf9190613453565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061346e565b610db6565b005b34801561040d57600080fd5b5061042860048036038101906104239190613404565b610dc6565b6040516104359190613453565b60405180910390f35b34801561044a57600080fd5b50610453610fc2565b005b34801561046157600080fd5b5061047c6004803603810190610477919061346e565b6110f4565b005b34801561048a57600080fd5b506104a560048036038101906104a091906134c1565b611114565b6040516104b291906135ac565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd919061334f565b6111c2565b005b3480156104f057600080fd5b506104f9611248565b6040516105069190613453565b60405180910390f35b34801561051b57600080fd5b506105366004803603810190610531919061334f565b61124d565b6040516105439190613453565b60405180910390f35b34801561055857600080fd5b506105616112a0565b60405161056e91906131ea565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190613703565b6112b3565b005b3480156105ac57600080fd5b506105b5611342565b6040516105c291906131ea565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061334f565b611355565b6040516105ff91906133bd565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906134c1565b61136b565b60405161063c9190613453565b60405180910390f35b34801561065157600080fd5b5061065a611453565b005b34801561066857600080fd5b50610683600480360381019061067e919061334f565b6114db565b005b34801561069157600080fd5b5061069a611561565b6040516106a79190613453565b60405180910390f35b3480156106bc57600080fd5b506106c5611567565b6040516106d291906133bd565b60405180910390f35b3480156106e757600080fd5b506106f0611591565b6040516106fd91906132f7565b60405180910390f35b610720600480360381019061071b919061334f565b611623565b005b34801561072e57600080fd5b506107496004803603810190610744919061374c565b611882565b005b34801561075757600080fd5b50610760611a02565b005b34801561076e57600080fd5b506107896004803603810190610784919061382d565b611a9b565b005b34801561079757600080fd5b506107a0611af7565b6040516107ad91906132f7565b60405180910390f35b3480156107c257600080fd5b506107dd60048036038101906107d8919061334f565b611b85565b6040516107ea91906132f7565b60405180910390f35b3480156107ff57600080fd5b50610808611cdd565b6040516108159190613453565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190613703565b611ce3565b005b34801561085357600080fd5b5061086e600480360381019061086991906138b0565b611d72565b60405161087b91906131ea565b60405180910390f35b34801561089057600080fd5b506108ab60048036038101906108a69190613703565b611e06565b005b3480156108b957600080fd5b506108d460048036038101906108cf91906134c1565b611e95565b005b3480156108e257600080fd5b506108eb611f8c565b6040516108f89190613453565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a3457507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a445750610a4382611f91565b5b9050919050565b610a53611ffb565b73ffffffffffffffffffffffffffffffffffffffff16610a71611567565b73ffffffffffffffffffffffffffffffffffffffff1614610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe9061393c565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b606060018054610af39061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1f9061398b565b8015610b6c5780601f10610b4157610100808354040283529160200191610b6c565b820191906000526020600020905b815481529060010190602001808311610b4f57829003601f168201915b5050505050905090565b6000610b8182612003565b610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790613a2e565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600f8054610c089061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c349061398b565b8015610c815780601f10610c5657610100808354040283529160200191610c81565b820191906000526020600020905b815481529060010190602001808311610c6457829003601f168201915b505050505081565b6000610c9482611355565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90613ac0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d23611ffb565b73ffffffffffffffffffffffffffffffffffffffff161480610d525750610d5181610d4c611ffb565b611d72565b5b610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890613b52565b60405180910390fd5b610d9c838383612010565b505050565b600b5481565b60008054905090565b600d5481565b610dc18383836120c2565b505050565b6000610dd18361136b565b8210610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990613be4565b60405180910390fd5b6000610e1c610da7565b905060008060005b83811015610f80576000600360008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610f1657806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6c57868403610f5d578195505050505050610fbc565b8380610f6890613c33565b9450505b508080610f7890613c33565b915050610e24565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb390613ced565b60405180910390fd5b92915050565b610fca611ffb565b73ffffffffffffffffffffffffffffffffffffffff16610fe8611567565b73ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110359061393c565b60405180910390fd5b6000611048611567565b73ffffffffffffffffffffffffffffffffffffffff164760405161106b90613d3e565b60006040518083038185875af1925050503d80600081146110a8576040519150601f19603f3d011682016040523d82523d6000602084013e6110ad565b606091505b50509050806110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613d9f565b60405180910390fd5b50565b61110f83838360405180602001604052806000815250611a9b565b505050565b606060006111218361136b565b905060008167ffffffffffffffff81111561113f5761113e6135d8565b5b60405190808252806020026020018201604052801561116d5781602001602082028036833780820191505090505b50905060005b828110156111b7576111858582610dc6565b82828151811061119857611197613dbf565b5b60200260200101818152505080806111af90613c33565b915050611173565b508092505050919050565b6111ca611ffb565b73ffffffffffffffffffffffffffffffffffffffff166111e8611567565b73ffffffffffffffffffffffffffffffffffffffff161461123e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112359061393c565b60405180910390fd5b80600b8190555050565b600381565b6000611257610da7565b8210611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613e60565b60405180910390fd5b819050919050565b600e60019054906101000a900460ff1681565b6112bb611ffb565b73ffffffffffffffffffffffffffffffffffffffff166112d9611567565b73ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113269061393c565b60405180910390fd5b806009908161133e919061402c565b5050565b600e60009054906101000a900460ff1681565b600061136082612667565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290614170565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b61145b611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611479611567565b73ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c69061393c565b60405180910390fd5b6114d960006127c2565b565b6114e3611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611501611567565b73ffffffffffffffffffffffffffffffffffffffff1614611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9061393c565b60405180910390fd5b80600d8190555050565b61012c81565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546115a09061398b565b80601f01602080910402602001604051908101604052809291908181526020018280546115cc9061398b565b80156116195780601f106115ee57610100808354040283529160200191611619565b820191906000526020600020905b8154815290600101906020018083116115fc57829003601f168201915b5050505050905090565b600061162d611ffb565b9050600e60009054906101000a900460ff161561167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906141dc565b60405180910390fd5b81611688610da7565b61169291906141fc565b600c5410156116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd9061429e565b60405180910390fd5b60008211611719576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117109061430a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90614376565b60405180910390fd5b61178f610da7565b61012c106117e05781600310156117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906143e2565b60405180910390fd5b611874565b8160031015611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b9061444e565b60405180910390fd5b34600b5483611833919061446e565b14611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a90614514565b60405180910390fd5b5b61187e8183612888565b5050565b61188a611ffb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee90614580565b60405180910390fd5b8060066000611904611ffb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166119b1611ffb565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119f691906131ea565b60405180910390a35050565b611a0a611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611a28611567565b73ffffffffffffffffffffffffffffffffffffffff1614611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a759061393c565b60405180910390fd5b6001600e60016101000a81548160ff021916908315150217905550565b611aa68484846120c2565b611ab2848484846128a6565b611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890614612565b60405180910390fd5b50505050565b600a8054611b049061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054611b309061398b565b8015611b7d5780601f10611b5257610100808354040283529160200191611b7d565b820191906000526020600020905b815481529060010190602001808311611b6057829003601f168201915b505050505081565b6060611b9082612003565b611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc6906146a4565b60405180910390fd5b60001515600e60019054906101000a900460ff16151503611c7c57600f8054611bf79061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c239061398b565b8015611c705780601f10611c4557610100808354040283529160200191611c70565b820191906000526020600020905b815481529060010190602001808311611c5357829003601f168201915b50505050509050611cd8565b6000611c86612a2d565b90506000815111611ca65760405180602001604052806000815250611cd4565b80611cb084612abf565b600a604051602001611cc493929190614783565b6040516020818303038152906040525b9150505b919050565b600c5481565b611ceb611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611d09611567565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d569061393c565b60405180910390fd5b80600a9081611d6e919061402c565b5050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611e0e611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611e2c611567565b73ffffffffffffffffffffffffffffffffffffffff1614611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e799061393c565b60405180910390fd5b80600f9081611e91919061402c565b5050565b611e9d611ffb565b73ffffffffffffffffffffffffffffffffffffffff16611ebb611567565b73ffffffffffffffffffffffffffffffffffffffff1614611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f089061393c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7790614826565b60405180910390fd5b611f89816127c2565b50565b600381565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6000805482109050919050565b826005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006120cd82612667565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff166120f4611ffb565b73ffffffffffffffffffffffffffffffffffffffff1614806121505750612119611ffb565b73ffffffffffffffffffffffffffffffffffffffff1661213884610b76565b73ffffffffffffffffffffffffffffffffffffffff16145b8061216c575061216b8260000151612166611ffb565b611d72565b5b9050806121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a5906148b8565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614612220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122179061494a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361228f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612286906149dc565b60405180910390fd5b61229c8585856001612c1f565b6122ac6000848460000151612010565b6001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff160192506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506003600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555090505060006001846124b291906141fc565b9050600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036125f75761252781612003565b156125f6576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506003600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461265f8686866001612c25565b505050505050565b61266f6130fc565b61267882612003565b6126b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ae90614a6e565b60405180910390fd5b60008290505b6000600360008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146127a95780925050506127bd565b5080806127b590614a8e565b9150506126bd565b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6128a2828260405180602001604052806000815250612c2b565b5050565b60006128c78473ffffffffffffffffffffffffffffffffffffffff166130e9565b15612a20578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026128f0611ffb565b8786866040518563ffffffff1660e01b81526004016129129493929190614b0c565b6020604051808303816000875af192505050801561294e57506040513d601f19601f8201168201806040525081019061294b9190614b6d565b60015b6129d0573d806000811461297e576040519150601f19603f3d011682016040523d82523d6000602084013e612983565b606091505b5060008151036129c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bf90614612565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a25565b600190505b949350505050565b606060098054612a3c9061398b565b80601f0160208091040260200160405190810160405280929190818152602001828054612a689061398b565b8015612ab55780601f10612a8a57610100808354040283529160200191612ab5565b820191906000526020600020905b815481529060010190602001808311612a9857829003601f168201915b5050505050905090565b606060008203612b06576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612c1a565b600082905060005b60008214612b38578080612b2190613c33565b915050600a82612b319190614bc9565b9150612b0e565b60008167ffffffffffffffff811115612b5457612b536135d8565b5b6040519080825280601f01601f191660200182016040528015612b865781602001600182028036833780820191505090505b5090505b60008514612c1357600182612b9f9190614bfa565b9150600a85612bae9190614c2e565b6030612bba91906141fc565b60f81b818381518110612bd057612bcf613dbf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612c0c9190614bc9565b9450612b8a565b8093505050505b919050565b50505050565b50505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9790614cd1565b60405180910390fd5b612ca981612003565b15612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce090614d3d565b60405180910390fd5b60008311612d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2390614dcf565b60405180910390fd5b612d396000858386612c1f565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506040518060400160405280858360000151612e369190614e0b565b6fffffffffffffffffffffffffffffffff168152602001858360200151612e5d9190614e0b565b6fffffffffffffffffffffffffffffffff16815250600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506003600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b858110156130cc57818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461306c60008884886128a6565b6130ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a290614612565b60405180910390fd5b81806130b690613c33565b92505080806130c490613c33565b915050612ffb565b50806000819055506130e16000878588612c25565b505050505050565b600080823b905060008111915050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61317f8161314a565b811461318a57600080fd5b50565b60008135905061319c81613176565b92915050565b6000602082840312156131b8576131b7613140565b5b60006131c68482850161318d565b91505092915050565b60008115159050919050565b6131e4816131cf565b82525050565b60006020820190506131ff60008301846131db565b92915050565b61320e816131cf565b811461321957600080fd5b50565b60008135905061322b81613205565b92915050565b60006020828403121561324757613246613140565b5b60006132558482850161321c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329857808201518184015260208101905061327d565b838111156132a7576000848401525b50505050565b6000601f19601f8301169050919050565b60006132c98261325e565b6132d38185613269565b93506132e381856020860161327a565b6132ec816132ad565b840191505092915050565b6000602082019050818103600083015261331181846132be565b905092915050565b6000819050919050565b61332c81613319565b811461333757600080fd5b50565b60008135905061334981613323565b92915050565b60006020828403121561336557613364613140565b5b60006133738482850161333a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133a78261337c565b9050919050565b6133b78161339c565b82525050565b60006020820190506133d260008301846133ae565b92915050565b6133e18161339c565b81146133ec57600080fd5b50565b6000813590506133fe816133d8565b92915050565b6000806040838503121561341b5761341a613140565b5b6000613429858286016133ef565b925050602061343a8582860161333a565b9150509250929050565b61344d81613319565b82525050565b60006020820190506134686000830184613444565b92915050565b60008060006060848603121561348757613486613140565b5b6000613495868287016133ef565b93505060206134a6868287016133ef565b92505060406134b78682870161333a565b9150509250925092565b6000602082840312156134d7576134d6613140565b5b60006134e5848285016133ef565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352381613319565b82525050565b6000613535838361351a565b60208301905092915050565b6000602082019050919050565b6000613559826134ee565b61356381856134f9565b935061356e8361350a565b8060005b8381101561359f5781516135868882613529565b975061359183613541565b925050600181019050613572565b5085935050505092915050565b600060208201905081810360008301526135c6818461354e565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613610826132ad565b810181811067ffffffffffffffff8211171561362f5761362e6135d8565b5b80604052505050565b6000613642613136565b905061364e8282613607565b919050565b600067ffffffffffffffff82111561366e5761366d6135d8565b5b613677826132ad565b9050602081019050919050565b82818337600083830152505050565b60006136a66136a184613653565b613638565b9050828152602081018484840111156136c2576136c16135d3565b5b6136cd848285613684565b509392505050565b600082601f8301126136ea576136e96135ce565b5b81356136fa848260208601613693565b91505092915050565b60006020828403121561371957613718613140565b5b600082013567ffffffffffffffff81111561373757613736613145565b5b613743848285016136d5565b91505092915050565b6000806040838503121561376357613762613140565b5b6000613771858286016133ef565b92505060206137828582860161321c565b9150509250929050565b600067ffffffffffffffff8211156137a7576137a66135d8565b5b6137b0826132ad565b9050602081019050919050565b60006137d06137cb8461378c565b613638565b9050828152602081018484840111156137ec576137eb6135d3565b5b6137f7848285613684565b509392505050565b600082601f830112613814576138136135ce565b5b81356138248482602086016137bd565b91505092915050565b6000806000806080858703121561384757613846613140565b5b6000613855878288016133ef565b9450506020613866878288016133ef565b93505060406138778782880161333a565b925050606085013567ffffffffffffffff81111561389857613897613145565b5b6138a4878288016137ff565b91505092959194509250565b600080604083850312156138c7576138c6613140565b5b60006138d5858286016133ef565b92505060206138e6858286016133ef565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613926602083613269565b9150613931826138f0565b602082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139a357607f821691505b6020821081036139b6576139b561395c565b5b50919050565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b6000613a18602d83613269565b9150613a23826139bc565b604082019050919050565b60006020820190508181036000830152613a4781613a0b565b9050919050565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aaa602283613269565b9150613ab582613a4e565b604082019050919050565b60006020820190508181036000830152613ad981613a9d565b9050919050565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b6000613b3c603983613269565b9150613b4782613ae0565b604082019050919050565b60006020820190508181036000830152613b6b81613b2f565b9050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bce602283613269565b9150613bd982613b72565b604082019050919050565b60006020820190508181036000830152613bfd81613bc1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c3e82613319565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c7057613c6f613c04565b5b600182019050919050565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b6000613cd7602e83613269565b9150613ce282613c7b565b604082019050919050565b60006020820190508181036000830152613d0681613cca565b9050919050565b600081905092915050565b50565b6000613d28600083613d0d565b9150613d3382613d18565b600082019050919050565b6000613d4982613d1b565b9150819050919050565b7f5769746864726177206661696c65642100000000000000000000000000000000600082015250565b6000613d89601083613269565b9150613d9482613d53565b602082019050919050565b60006020820190508181036000830152613db881613d7c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e4a602383613269565b9150613e5582613dee565b604082019050919050565b60006020820190508181036000830152613e7981613e3d565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613ee27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ea5565b613eec8683613ea5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613f29613f24613f1f84613319565b613f04565b613319565b9050919050565b6000819050919050565b613f4383613f0e565b613f57613f4f82613f30565b848454613eb2565b825550505050565b600090565b613f6c613f5f565b613f77818484613f3a565b505050565b5b81811015613f9b57613f90600082613f64565b600181019050613f7d565b5050565b601f821115613fe057613fb181613e80565b613fba84613e95565b81016020851015613fc9578190505b613fdd613fd585613e95565b830182613f7c565b50505b505050565b600082821c905092915050565b600061400360001984600802613fe5565b1980831691505092915050565b600061401c8383613ff2565b9150826002028217905092915050565b6140358261325e565b67ffffffffffffffff81111561404e5761404d6135d8565b5b614058825461398b565b614063828285613f9f565b600060209050601f8311600181146140965760008415614084578287015190505b61408e8582614010565b8655506140f6565b601f1984166140a486613e80565b60005b828110156140cc578489015182556001820191506020850194506020810190506140a7565b868310156140e957848901516140e5601f891682613ff2565b8355505b6001600288020188555050505b505050505050565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b600061415a602b83613269565b9150614165826140fe565b604082019050919050565b600060208201905081810360008301526141898161414d565b9050919050565b7f5061757365640000000000000000000000000000000000000000000000000000600082015250565b60006141c6600683613269565b91506141d182614190565b602082019050919050565b600060208201905081810360008301526141f5816141b9565b9050919050565b600061420782613319565b915061421283613319565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561424757614246613c04565b5b828201905092915050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b6000614288601283613269565b915061429382614252565b602082019050919050565b600060208201905081810360008301526142b78161427b565b9050919050565b7f4e6f2030206d696e747300000000000000000000000000000000000000000000600082015250565b60006142f4600a83613269565b91506142ff826142be565b602082019050919050565b60006020820190508181036000830152614323816142e7565b9050919050565b7f4e6f20636f6e7472616374730000000000000000000000000000000000000000600082015250565b6000614360600c83613269565b915061436b8261432a565b602082019050919050565b6000602082019050818103600083015261438f81614353565b9050919050565b7f457863657373206d617820706572206672656520747800000000000000000000600082015250565b60006143cc601683613269565b91506143d782614396565b602082019050919050565b600060208201905081810360008301526143fb816143bf565b9050919050565b7f457863657373206d617820706572207061696420747800000000000000000000600082015250565b6000614438601683613269565b915061444382614402565b602082019050919050565b600060208201905081810360008301526144678161442b565b9050919050565b600061447982613319565b915061448483613319565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156144bd576144bc613c04565b5b828202905092915050565b7f496e76616c69642066756e64732070726f766964656400000000000000000000600082015250565b60006144fe601683613269565b9150614509826144c8565b602082019050919050565b6000602082019050818103600083015261452d816144f1565b9050919050565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b600061456a601a83613269565b915061457582614534565b602082019050919050565b600060208201905081810360008301526145998161455d565b9050919050565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b60006145fc603383613269565b9150614607826145a0565b604082019050919050565b6000602082019050818103600083015261462b816145ef565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b600061468e602f83613269565b915061469982614632565b604082019050919050565b600060208201905081810360008301526146bd81614681565b9050919050565b600081905092915050565b60006146da8261325e565b6146e481856146c4565b93506146f481856020860161327a565b80840191505092915050565b6000815461470d8161398b565b61471781866146c4565b9450600182166000811461473257600181146147475761477a565b60ff198316865281151582028601935061477a565b61475085613e80565b60005b8381101561477257815481890152600182019150602081019050614753565b838801955050505b50505092915050565b600061478f82866146cf565b915061479b82856146cf565b91506147a78284614700565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614810602683613269565b915061481b826147b4565b604082019050919050565b6000602082019050818103600083015261483f81614803565b9050919050565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b60006148a2603283613269565b91506148ad82614846565b604082019050919050565b600060208201905081810360008301526148d181614895565b9050919050565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b6000614934602683613269565b915061493f826148d8565b604082019050919050565b6000602082019050818103600083015261496381614927565b9050919050565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149c6602583613269565b91506149d18261496a565b604082019050919050565b600060208201905081810360008301526149f5816149b9565b9050919050565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b6000614a58602a83613269565b9150614a63826149fc565b604082019050919050565b60006020820190508181036000830152614a8781614a4b565b9050919050565b6000614a9982613319565b915060008203614aac57614aab613c04565b5b600182039050919050565b600081519050919050565b600082825260208201905092915050565b6000614ade82614ab7565b614ae88185614ac2565b9350614af881856020860161327a565b614b01816132ad565b840191505092915050565b6000608082019050614b2160008301876133ae565b614b2e60208301866133ae565b614b3b6040830185613444565b8181036060830152614b4d8184614ad3565b905095945050505050565b600081519050614b6781613176565b92915050565b600060208284031215614b8357614b82613140565b5b6000614b9184828501614b58565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614bd482613319565b9150614bdf83613319565b925082614bef57614bee614b9a565b5b828204905092915050565b6000614c0582613319565b9150614c1083613319565b925082821015614c2357614c22613c04565b5b828203905092915050565b6000614c3982613319565b9150614c4483613319565b925082614c5457614c53614b9a565b5b828206905092915050565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cbb602183613269565b9150614cc682614c5f565b604082019050919050565b60006020820190508181036000830152614cea81614cae565b9050919050565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b6000614d27601d83613269565b9150614d3282614cf1565b602082019050919050565b60006020820190508181036000830152614d5681614d1a565b9050919050565b7f455243373231413a207175616e74697479206d7573742062652067726561746560008201527f7220300000000000000000000000000000000000000000000000000000000000602082015250565b6000614db9602383613269565b9150614dc482614d5d565b604082019050919050565b60006020820190508181036000830152614de881614dac565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6000614e1682614def565b9150614e2183614def565b9250826fffffffffffffffffffffffffffffffff03821115614e4657614e45613c04565b5b82820190509291505056fea264697066735822122046a17bb21df895d4ad8b39eac6fa5abe44649f0576be7446f799409079967b5564736f6c634300080f0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000f476f64204f66204461726b6e65737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003474f44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d665463545634724d656f56454e35626f73636476635265476e6f6f735645737972667131703353574a6d41420000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): God Of Darkness
Arg [1] : _symbol (string): GOD
Arg [2] : _initBaseURI (string):
Arg [3] : _initNotRevealedUri (string): ipfs://QmfTcTV4rMeoVEN5boscdvcReGnoosVEsyrfq1p3SWJmAB

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 476f64204f66204461726b6e6573730000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 474f440000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000035
Arg [10] : 697066733a2f2f516d665463545634724d656f56454e35626f73636476635265
Arg [11] : 476e6f6f735645737972667131703353574a6d41420000000000000000000000


Deployed Bytecode Sourcemap

20803:3609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12510:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23941:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13986:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15101:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21339:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14674:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21164:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11358:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21239:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15809:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11673:823;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24021:165;;;;;;;;;;;;;:::i;:::-;;15983:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22427:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23373:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21023:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11472:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21306:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23709:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21276:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13848:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12896:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;972:103;;;;;;;;;;;;;:::i;:::-;;23459:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21114:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;738:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14100:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21766:655;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15329:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23300:65;;;;;;;;;;;;;:::i;:::-;;16174:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20981:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22781:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21203:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23813:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15631:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23583:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1089:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21071:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12510:372;12612:4;12664:25;12649:40;;;:11;:40;;;;:105;;;;12721:33;12706:48;;;:11;:48;;;;12649:105;:172;;;;12786:35;12771:50;;;:11;:50;;;;12649:172;:225;;;;12838:36;12862:11;12838:23;:36::i;:::-;12649:225;12629:245;;12510:372;;;:::o;23941:73::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24002:6:::1;23993;;:15;;;;;;;;;;;;;;;;;;23941:73:::0;:::o;13986:100::-;14040:13;14073:5;14066:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13986:100;:::o;15101:214::-;15169:7;15197:16;15205:7;15197;:16::i;:::-;15189:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15283:15;:24;15299:7;15283:24;;;;;;;;;;;;;;;;;;;;;15276:31;;15101:214;;;:::o;21339:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14674:413::-;14747:13;14763:24;14779:7;14763:15;:24::i;:::-;14747:40;;14812:5;14806:11;;:2;:11;;;14798:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14907:5;14891:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;14916:37;14933:5;14940:12;:10;:12::i;:::-;14916:16;:37::i;:::-;14891:62;14869:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;15051:28;15060:2;15064:7;15073:5;15051:8;:28::i;:::-;14736:351;14674:413;;:::o;21164:34::-;;;;:::o;11358:100::-;11411:7;11438:12;;11431:19;;11358:100;:::o;21239:32::-;;;;:::o;15809:162::-;15935:28;15945:4;15951:2;15955:7;15935:9;:28::i;:::-;15809:162;;;:::o;11673:823::-;11762:7;11798:16;11808:5;11798:9;:16::i;:::-;11790:5;:24;11782:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11864:22;11889:13;:11;:13::i;:::-;11864:38;;11913:19;11947:25;12001:9;11996:426;12020:14;12016:1;:18;11996:426;;;12056:31;12090:11;:14;12102:1;12090:14;;;;;;;;;;;12056:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12149:1;12123:28;;:9;:14;;;:28;;;12119:103;;12192:9;:14;;;12172:34;;12119:103;12261:5;12240:26;;:17;:26;;;12236:175;;12306:5;12291:11;:20;12287:77;;12343:1;12336:8;;;;;;;;;12287:77;12382:13;;;;;:::i;:::-;;;;12236:175;12041:381;12036:3;;;;;:::i;:::-;;;;11996:426;;;;12432:56;;;;;;;;;;:::i;:::-;;;;;;;;11673:823;;;;;:::o;24021:165::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24070:7:::1;24091;:5;:7::i;:::-;24083:21;;24112;24083:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24069:69;;;24157:2;24149:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;24058:128;24021:165::o:0;15983:177::-;16113:39;16130:4;16136:2;16140:7;16113:39;;;;;;;;;;;;:16;:39::i;:::-;15983:177;;;:::o;22427:348::-;22502:16;22530:23;22556:17;22566:6;22556:9;:17::i;:::-;22530:43;;22580:25;22622:15;22608:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22580:58;;22650:9;22645:103;22665:15;22661:1;:19;22645:103;;;22710:30;22730:6;22738:1;22710:19;:30::i;:::-;22696:8;22705:1;22696:11;;;;;;;;:::i;:::-;;;;;;;:44;;;;;22682:3;;;;;:::i;:::-;;;;22645:103;;;;22761:8;22754:15;;;;22427:348;;;:::o;23373:80::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23439:8:::1;23432:4;:15;;;;23373:80:::0;:::o;21023:43::-;21065:1;21023:43;:::o;11472:187::-;11539:7;11575:13;:11;:13::i;:::-;11567:5;:21;11559:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11646:5;11639:12;;11472:187;;;:::o;21306:28::-;;;;;;;;;;;;;:::o;23709:98::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23790:11:::1;23780:7;:21;;;;;;:::i;:::-;;23709:98:::0;:::o;21276:25::-;;;;;;;;;;;;;:::o;13848:124::-;13912:7;13939:20;13951:7;13939:11;:20::i;:::-;:25;;;13932:32;;13848:124;;;:::o;12896:221::-;12960:7;13005:1;12988:19;;:5;:19;;;12980:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13081:12;:19;13094:5;13081:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;13073:36;;13066:43;;12896:221;;;:::o;972:103::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1037:30:::1;1064:1;1037:18;:30::i;:::-;972:103::o:0;23459:116::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23552:17:::1;23536:13;:33;;;;23459:116:::0;:::o;21114:45::-;21156:3;21114:45;:::o;738:87::-;784:7;811:6;;;;;;;;;;;804:13;;738:87;:::o;14100:104::-;14156:13;14189:7;14182:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14100:104;:::o;21766:655::-;21825:15;21843:12;:10;:12::i;:::-;21825:30;;21875:6;;;;;;;;;;;21874:7;21866:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;21940:7;21924:13;:11;:13::i;:::-;:23;;;;:::i;:::-;21911:9;;:36;;21903:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21999:1;21989:7;:11;21981:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;22047:7;22034:20;;:9;:20;;;22026:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;22106:13;:11;:13::i;:::-;21156:3;22087:32;22084:290;;22162:7;21065:1;22143:26;;22135:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;22084:290;;;22250:7;21108:1;22236:21;;22228:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;22326:9;22318:4;;22308:7;:14;;;;:::i;:::-;:27;22300:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;22084:290;22386:27;22396:7;22405;22386:9;:27::i;:::-;21814:607;21766:655;:::o;15329:288::-;15436:12;:10;:12::i;:::-;15424:24;;:8;:24;;;15416:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15537:8;15492:18;:32;15511:12;:10;:12::i;:::-;15492:32;;;;;;;;;;;;;;;:42;15525:8;15492:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;15590:8;15561:48;;15576:12;:10;:12::i;:::-;15561:48;;;15600:8;15561:48;;;;;;:::i;:::-;;;;;;;;15329:288;;:::o;23300:65::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23355:4:::1;23344:8;;:15;;;;;;;;;;;;;;;;;;23300:65::o:0;16174:355::-;16333:28;16343:4;16349:2;16353:7;16333:9;:28::i;:::-;16394:48;16417:4;16423:2;16427:7;16436:5;16394:22;:48::i;:::-;16372:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;16174:355;;;;:::o;20981:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22781:497::-;22879:13;22920:16;22928:7;22920;:16::i;:::-;22904:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;23029:5;23017:17;;:8;;;;;;;;;;;:17;;;23014:62;;23054:14;23047:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23014:62;23084:28;23115:10;:8;:10::i;:::-;23084:41;;23170:1;23145:14;23139:28;:32;:133;;;;;;;;;;;;;;;;;23207:14;23223:18;:7;:16;:18::i;:::-;23243:13;23190:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23139:133;23132:140;;;22781:497;;;;:::o;21203:31::-;;;;:::o;23813:122::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23912:17:::1;23896:13;:33;;;;;;:::i;:::-;;23813:122:::0;:::o;15631:164::-;15728:4;15752:18;:25;15771:5;15752:25;;;;;;;;;;;;;;;:35;15778:8;15752:35;;;;;;;;;;;;;;;;;;;;;;;;;15745:42;;15631:164;;;;:::o;23583:120::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23682:15:::1;23665:14;:32;;;;;;:::i;:::-;;23583:120:::0;:::o;1089:201::-;889:12;:10;:12::i;:::-;878:23;;:7;:5;:7::i;:::-;:23;;;870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1198:1:::1;1178:22;;:8;:22;;::::0;1170:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1254:28;1273:8;1254:18;:28::i;:::-;1089:201:::0;:::o;21071:38::-;21108:1;21071:38;:::o;10281:157::-;10366:4;10405:25;10390:40;;;:11;:40;;;;10383:47;;10281:157;;;:::o;145:98::-;198:7;225:10;218:17;;145:98;:::o;16543:111::-;16600:4;16634:12;;16624:7;:22;16617:29;;16543:111;;;:::o;19437:196::-;19579:2;19552:15;:24;19568:7;19552:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19617:7;19613:2;19597:28;;19606:5;19597:28;;;;;;;;;;;;19437:196;;;:::o;18056:1367::-;18171:35;18209:20;18221:7;18209:11;:20::i;:::-;18171:58;;18242:22;18284:13;:18;;;18268:34;;:12;:10;:12::i;:::-;:34;;;:87;;;;18343:12;:10;:12::i;:::-;18319:36;;:20;18331:7;18319:11;:20::i;:::-;:36;;;18268:87;:154;;;;18372:50;18389:13;:18;;;18409:12;:10;:12::i;:::-;18372:16;:50::i;:::-;18268:154;18242:181;;18444:17;18436:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18559:4;18537:26;;:13;:18;;;:26;;;18529:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;18639:1;18625:16;;:2;:16;;;18617:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18696:43;18718:4;18724:2;18728:7;18737:1;18696:21;:43::i;:::-;18762:49;18779:1;18783:7;18792:13;:18;;;18762:8;:49::i;:::-;18889:1;18859:12;:18;18872:4;18859:18;;;;;;;;;;;;;;;:26;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18933:1;18905:12;:16;18918:2;18905:16;;;;;;;;;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18981:43;;;;;;;;18996:2;18981:43;;;;;;19007:15;18981:43;;;;;18958:11;:20;18970:7;18958:20;;;;;;;;;;;:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19047:19;19079:1;19069:7;:11;;;;:::i;:::-;19047:33;;19136:1;19095:43;;:11;:24;19107:11;19095:24;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;19091:227;;19159:20;19167:11;19159:7;:20::i;:::-;19155:152;;;19227:64;;;;;;;;19242:13;:18;;;19227:64;;;;;;19262:13;:28;;;19227:64;;;;;19200:11;:24;19212:11;19200:24;;;;;;;;;;;:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19155:152;19091:227;19354:7;19350:2;19335:27;;19344:4;19335:27;;;;;;;;;;;;19373:42;19394:4;19400:2;19404:7;19413:1;19373:20;:42::i;:::-;18160:1263;;;18056:1367;;;:::o;13362:472::-;13423:21;;:::i;:::-;13465:16;13473:7;13465;:16::i;:::-;13457:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13546:12;13561:7;13546:22;;13541:216;13595:31;13629:11;:17;13641:4;13629:17;;;;;;;;;;;13595:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13691:1;13665:28;;:9;:14;;;:28;;;13661:85;;13721:9;13714:16;;;;;;13661:85;13580:177;13572:6;;;;;:::i;:::-;;;;13541:216;;13362:472;;;;:::o;1304:191::-;1378:16;1397:6;;;;;;;;;;;1378:25;;1423:8;1414:6;;:17;;;;;;;;;;;;;;;;;;1478:8;1447:40;;1468:8;1447:40;;;;;;;;;;;;1367:128;1304:191;:::o;16662:104::-;16731:27;16741:2;16745:8;16731:27;;;;;;;;;;;;:9;:27::i;:::-;16662:104;;:::o;19647:804::-;19802:4;19823:15;:2;:13;;;:15::i;:::-;19819:625;;;19875:2;19859:36;;;19896:12;:10;:12::i;:::-;19910:4;19916:7;19925:5;19859:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;19855:534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20122:1;20105:6;:13;:18;20101:273;;20148:61;;;;;;;;;;:::i;:::-;;;;;;;;20101:273;20324:6;20318:13;20309:6;20305:2;20301:15;20294:38;19855:534;19992:45;;;19982:55;;;:6;:55;;;;19975:62;;;;;19819:625;20428:4;20421:11;;19647:804;;;;;;;:::o;21645:102::-;21705:13;21734:7;21727:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21645:102;:::o;1723:544::-;1779:13;1830:1;1821:5;:10;1817:53;;1848:10;;;;;;;;;;;;;;;;;;;;;1817:53;1880:12;1895:5;1880:20;;1911:14;1936:78;1951:1;1943:4;:9;1936:78;;1969:8;;;;;:::i;:::-;;;;2000:2;1992:10;;;;;:::i;:::-;;;1936:78;;;2024:19;2056:6;2046:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2024:39;;2074:154;2090:1;2081:5;:10;2074:154;;2118:1;2108:11;;;;;:::i;:::-;;;2185:2;2177:5;:10;;;;:::i;:::-;2164:2;:24;;;;:::i;:::-;2151:39;;2134:6;2141;2134:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;2214:2;2205:11;;;;;:::i;:::-;;;2074:154;;;2252:6;2238:21;;;;;1723:544;;;;:::o;20465:159::-;;;;;:::o;20638:158::-;;;;;:::o;16780:1262::-;16903:20;16926:12;;16903:35;;16971:1;16957:16;;:2;:16;;;16949:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17031:21;17039:12;17031:7;:21::i;:::-;17030:22;17022:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17116:1;17105:8;:12;17097:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;17170:61;17200:1;17204:2;17208:12;17222:8;17170:21;:61::i;:::-;17244:30;17277:12;:16;17290:2;17277:16;;;;;;;;;;;;;;;17244:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17323:135;;;;;;;;17379:8;17349:11;:19;;;:39;;;;:::i;:::-;17323:135;;;;;;17438:8;17403:11;:24;;;:44;;;;:::i;:::-;17323:135;;;;;17304:12;:16;17317:2;17304:16;;;;;;;;;;;;;;;:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17497:43;;;;;;;;17512:2;17497:43;;;;;;17523:15;17497:43;;;;;17469:11;:25;17481:12;17469:25;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17553:20;17576:12;17553:35;;17606:9;17601:325;17625:8;17621:1;:12;17601:325;;;17685:12;17681:2;17660:38;;17677:1;17660:38;;;;;;;;;;;;17739:59;17770:1;17774:2;17778:12;17792:5;17739:22;:59::i;:::-;17713:172;;;;;;;;;;;;:::i;:::-;;;;;;;;;17900:14;;;;;:::i;:::-;;;;17635:3;;;;;:::i;:::-;;;;17601:325;;;;17951:12;17936;:27;;;;17974:60;18003:1;18007:2;18011:12;18025:8;17974:20;:60::i;:::-;16892:1150;;;16780:1262;;;:::o;6531:208::-;6591:4;6620:12;6687:7;6675:20;6667:28;;6730:1;6723:4;:8;6716:15;;;6531:208;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:116::-;1588:21;1603:5;1588:21;:::i;:::-;1581:5;1578:32;1568:60;;1624:1;1621;1614:12;1568:60;1518:116;:::o;1640:133::-;1683:5;1721:6;1708:20;1699:29;;1737:30;1761:5;1737:30;:::i;:::-;1640:133;;;;:::o;1779:323::-;1835:6;1884:2;1872:9;1863:7;1859:23;1855:32;1852:119;;;1890:79;;:::i;:::-;1852:119;2010:1;2035:50;2077:7;2068:6;2057:9;2053:22;2035:50;:::i;:::-;2025:60;;1981:114;1779:323;;;;:::o;2108:99::-;2160:6;2194:5;2188:12;2178:22;;2108:99;;;:::o;2213:169::-;2297:11;2331:6;2326:3;2319:19;2371:4;2366:3;2362:14;2347:29;;2213:169;;;;:::o;2388:307::-;2456:1;2466:113;2480:6;2477:1;2474:13;2466:113;;;2565:1;2560:3;2556:11;2550:18;2546:1;2541:3;2537:11;2530:39;2502:2;2499:1;2495:10;2490:15;;2466:113;;;2597:6;2594:1;2591:13;2588:101;;;2677:1;2668:6;2663:3;2659:16;2652:27;2588:101;2437:258;2388:307;;;:::o;2701:102::-;2742:6;2793:2;2789:7;2784:2;2777:5;2773:14;2769:28;2759:38;;2701:102;;;:::o;2809:364::-;2897:3;2925:39;2958:5;2925:39;:::i;:::-;2980:71;3044:6;3039:3;2980:71;:::i;:::-;2973:78;;3060:52;3105:6;3100:3;3093:4;3086:5;3082:16;3060:52;:::i;:::-;3137:29;3159:6;3137:29;:::i;:::-;3132:3;3128:39;3121:46;;2901:272;2809:364;;;;:::o;3179:313::-;3292:4;3330:2;3319:9;3315:18;3307:26;;3379:9;3373:4;3369:20;3365:1;3354:9;3350:17;3343:47;3407:78;3480:4;3471:6;3407:78;:::i;:::-;3399:86;;3179:313;;;;:::o;3498:77::-;3535:7;3564:5;3553:16;;3498:77;;;:::o;3581:122::-;3654:24;3672:5;3654:24;:::i;:::-;3647:5;3644:35;3634:63;;3693:1;3690;3683:12;3634:63;3581:122;:::o;3709:139::-;3755:5;3793:6;3780:20;3771:29;;3809:33;3836:5;3809:33;:::i;:::-;3709:139;;;;:::o;3854:329::-;3913:6;3962:2;3950:9;3941:7;3937:23;3933:32;3930:119;;;3968:79;;:::i;:::-;3930:119;4088:1;4113:53;4158:7;4149:6;4138:9;4134:22;4113:53;:::i;:::-;4103:63;;4059:117;3854:329;;;;:::o;4189:126::-;4226:7;4266:42;4259:5;4255:54;4244:65;;4189:126;;;:::o;4321:96::-;4358:7;4387:24;4405:5;4387:24;:::i;:::-;4376:35;;4321:96;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:122::-;4848:24;4866:5;4848:24;:::i;:::-;4841:5;4838:35;4828:63;;4887:1;4884;4877:12;4828:63;4775:122;:::o;4903:139::-;4949:5;4987:6;4974:20;4965:29;;5003:33;5030:5;5003:33;:::i;:::-;4903:139;;;;:::o;5048:474::-;5116:6;5124;5173:2;5161:9;5152:7;5148:23;5144:32;5141:119;;;5179:79;;:::i;:::-;5141:119;5299:1;5324:53;5369:7;5360:6;5349:9;5345:22;5324:53;:::i;:::-;5314:63;;5270:117;5426:2;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5397:118;5048:474;;;;;:::o;5528:118::-;5615:24;5633:5;5615:24;:::i;:::-;5610:3;5603:37;5528:118;;:::o;5652:222::-;5745:4;5783:2;5772:9;5768:18;5760:26;;5796:71;5864:1;5853:9;5849:17;5840:6;5796:71;:::i;:::-;5652:222;;;;:::o;5880:619::-;5957:6;5965;5973;6022:2;6010:9;6001:7;5997:23;5993:32;5990:119;;;6028:79;;:::i;:::-;5990:119;6148:1;6173:53;6218:7;6209:6;6198:9;6194:22;6173:53;:::i;:::-;6163:63;;6119:117;6275:2;6301:53;6346:7;6337:6;6326:9;6322:22;6301:53;:::i;:::-;6291:63;;6246:118;6403:2;6429:53;6474:7;6465:6;6454:9;6450:22;6429:53;:::i;:::-;6419:63;;6374:118;5880:619;;;;;:::o;6505:329::-;6564:6;6613:2;6601:9;6592:7;6588:23;6584:32;6581:119;;;6619:79;;:::i;:::-;6581:119;6739:1;6764:53;6809:7;6800:6;6789:9;6785:22;6764:53;:::i;:::-;6754:63;;6710:117;6505:329;;;;:::o;6840:114::-;6907:6;6941:5;6935:12;6925:22;;6840:114;;;:::o;6960:184::-;7059:11;7093:6;7088:3;7081:19;7133:4;7128:3;7124:14;7109:29;;6960:184;;;;:::o;7150:132::-;7217:4;7240:3;7232:11;;7270:4;7265:3;7261:14;7253:22;;7150:132;;;:::o;7288:108::-;7365:24;7383:5;7365:24;:::i;:::-;7360:3;7353:37;7288:108;;:::o;7402:179::-;7471:10;7492:46;7534:3;7526:6;7492:46;:::i;:::-;7570:4;7565:3;7561:14;7547:28;;7402:179;;;;:::o;7587:113::-;7657:4;7689;7684:3;7680:14;7672:22;;7587:113;;;:::o;7736:732::-;7855:3;7884:54;7932:5;7884:54;:::i;:::-;7954:86;8033:6;8028:3;7954:86;:::i;:::-;7947:93;;8064:56;8114:5;8064:56;:::i;:::-;8143:7;8174:1;8159:284;8184:6;8181:1;8178:13;8159:284;;;8260:6;8254:13;8287:63;8346:3;8331:13;8287:63;:::i;:::-;8280:70;;8373:60;8426:6;8373:60;:::i;:::-;8363:70;;8219:224;8206:1;8203;8199:9;8194:14;;8159:284;;;8163:14;8459:3;8452:10;;7860:608;;;7736:732;;;;:::o;8474:373::-;8617:4;8655:2;8644:9;8640:18;8632:26;;8704:9;8698:4;8694:20;8690:1;8679:9;8675:17;8668:47;8732:108;8835:4;8826:6;8732:108;:::i;:::-;8724:116;;8474:373;;;;:::o;8853:117::-;8962:1;8959;8952:12;8976:117;9085:1;9082;9075:12;9099:180;9147:77;9144:1;9137:88;9244:4;9241:1;9234:15;9268:4;9265:1;9258:15;9285:281;9368:27;9390:4;9368:27;:::i;:::-;9360:6;9356:40;9498:6;9486:10;9483:22;9462:18;9450:10;9447:34;9444:62;9441:88;;;9509:18;;:::i;:::-;9441:88;9549:10;9545:2;9538:22;9328:238;9285:281;;:::o;9572:129::-;9606:6;9633:20;;:::i;:::-;9623:30;;9662:33;9690:4;9682:6;9662:33;:::i;:::-;9572:129;;;:::o;9707:308::-;9769:4;9859:18;9851:6;9848:30;9845:56;;;9881:18;;:::i;:::-;9845:56;9919:29;9941:6;9919:29;:::i;:::-;9911:37;;10003:4;9997;9993:15;9985:23;;9707:308;;;:::o;10021:154::-;10105:6;10100:3;10095;10082:30;10167:1;10158:6;10153:3;10149:16;10142:27;10021:154;;;:::o;10181:412::-;10259:5;10284:66;10300:49;10342:6;10300:49;:::i;:::-;10284:66;:::i;:::-;10275:75;;10373:6;10366:5;10359:21;10411:4;10404:5;10400:16;10449:3;10440:6;10435:3;10431:16;10428:25;10425:112;;;10456:79;;:::i;:::-;10425:112;10546:41;10580:6;10575:3;10570;10546:41;:::i;:::-;10265:328;10181:412;;;;;:::o;10613:340::-;10669:5;10718:3;10711:4;10703:6;10699:17;10695:27;10685:122;;10726:79;;:::i;:::-;10685:122;10843:6;10830:20;10868:79;10943:3;10935:6;10928:4;10920:6;10916:17;10868:79;:::i;:::-;10859:88;;10675:278;10613:340;;;;:::o;10959:509::-;11028:6;11077:2;11065:9;11056:7;11052:23;11048:32;11045:119;;;11083:79;;:::i;:::-;11045:119;11231:1;11220:9;11216:17;11203:31;11261:18;11253:6;11250:30;11247:117;;;11283:79;;:::i;:::-;11247:117;11388:63;11443:7;11434:6;11423:9;11419:22;11388:63;:::i;:::-;11378:73;;11174:287;10959:509;;;;:::o;11474:468::-;11539:6;11547;11596:2;11584:9;11575:7;11571:23;11567:32;11564:119;;;11602:79;;:::i;:::-;11564:119;11722:1;11747:53;11792:7;11783:6;11772:9;11768:22;11747:53;:::i;:::-;11737:63;;11693:117;11849:2;11875:50;11917:7;11908:6;11897:9;11893:22;11875:50;:::i;:::-;11865:60;;11820:115;11474:468;;;;;:::o;11948:307::-;12009:4;12099:18;12091:6;12088:30;12085:56;;;12121:18;;:::i;:::-;12085:56;12159:29;12181:6;12159:29;:::i;:::-;12151:37;;12243:4;12237;12233:15;12225:23;;11948:307;;;:::o;12261:410::-;12338:5;12363:65;12379:48;12420:6;12379:48;:::i;:::-;12363:65;:::i;:::-;12354:74;;12451:6;12444:5;12437:21;12489:4;12482:5;12478:16;12527:3;12518:6;12513:3;12509:16;12506:25;12503:112;;;12534:79;;:::i;:::-;12503:112;12624:41;12658:6;12653:3;12648;12624:41;:::i;:::-;12344:327;12261:410;;;;;:::o;12690:338::-;12745:5;12794:3;12787:4;12779:6;12775:17;12771:27;12761:122;;12802:79;;:::i;:::-;12761:122;12919:6;12906:20;12944:78;13018:3;13010:6;13003:4;12995:6;12991:17;12944:78;:::i;:::-;12935:87;;12751:277;12690:338;;;;:::o;13034:943::-;13129:6;13137;13145;13153;13202:3;13190:9;13181:7;13177:23;13173:33;13170:120;;;13209:79;;:::i;:::-;13170:120;13329:1;13354:53;13399:7;13390:6;13379:9;13375:22;13354:53;:::i;:::-;13344:63;;13300:117;13456:2;13482:53;13527:7;13518:6;13507:9;13503:22;13482:53;:::i;:::-;13472:63;;13427:118;13584:2;13610:53;13655:7;13646:6;13635:9;13631:22;13610:53;:::i;:::-;13600:63;;13555:118;13740:2;13729:9;13725:18;13712:32;13771:18;13763:6;13760:30;13757:117;;;13793:79;;:::i;:::-;13757:117;13898:62;13952:7;13943:6;13932:9;13928:22;13898:62;:::i;:::-;13888:72;;13683:287;13034:943;;;;;;;:::o;13983:474::-;14051:6;14059;14108:2;14096:9;14087:7;14083:23;14079:32;14076:119;;;14114:79;;:::i;:::-;14076:119;14234:1;14259:53;14304:7;14295:6;14284:9;14280:22;14259:53;:::i;:::-;14249:63;;14205:117;14361:2;14387:53;14432:7;14423:6;14412:9;14408:22;14387:53;:::i;:::-;14377:63;;14332:118;13983:474;;;;;:::o;14463:182::-;14603:34;14599:1;14591:6;14587:14;14580:58;14463:182;:::o;14651:366::-;14793:3;14814:67;14878:2;14873:3;14814:67;:::i;:::-;14807:74;;14890:93;14979:3;14890:93;:::i;:::-;15008:2;15003:3;14999:12;14992:19;;14651:366;;;:::o;15023:419::-;15189:4;15227:2;15216:9;15212:18;15204:26;;15276:9;15270:4;15266:20;15262:1;15251:9;15247:17;15240:47;15304:131;15430:4;15304:131;:::i;:::-;15296:139;;15023:419;;;:::o;15448:180::-;15496:77;15493:1;15486:88;15593:4;15590:1;15583:15;15617:4;15614:1;15607:15;15634:320;15678:6;15715:1;15709:4;15705:12;15695:22;;15762:1;15756:4;15752:12;15783:18;15773:81;;15839:4;15831:6;15827:17;15817:27;;15773:81;15901:2;15893:6;15890:14;15870:18;15867:38;15864:84;;15920:18;;:::i;:::-;15864:84;15685:269;15634:320;;;:::o;15960:232::-;16100:34;16096:1;16088:6;16084:14;16077:58;16169:15;16164:2;16156:6;16152:15;16145:40;15960:232;:::o;16198:366::-;16340:3;16361:67;16425:2;16420:3;16361:67;:::i;:::-;16354:74;;16437:93;16526:3;16437:93;:::i;:::-;16555:2;16550:3;16546:12;16539:19;;16198:366;;;:::o;16570:419::-;16736:4;16774:2;16763:9;16759:18;16751:26;;16823:9;16817:4;16813:20;16809:1;16798:9;16794:17;16787:47;16851:131;16977:4;16851:131;:::i;:::-;16843:139;;16570:419;;;:::o;16995:221::-;17135:34;17131:1;17123:6;17119:14;17112:58;17204:4;17199:2;17191:6;17187:15;17180:29;16995:221;:::o;17222:366::-;17364:3;17385:67;17449:2;17444:3;17385:67;:::i;:::-;17378:74;;17461:93;17550:3;17461:93;:::i;:::-;17579:2;17574:3;17570:12;17563:19;;17222:366;;;:::o;17594:419::-;17760:4;17798:2;17787:9;17783:18;17775:26;;17847:9;17841:4;17837:20;17833:1;17822:9;17818:17;17811:47;17875:131;18001:4;17875:131;:::i;:::-;17867:139;;17594:419;;;:::o;18019:244::-;18159:34;18155:1;18147:6;18143:14;18136:58;18228:27;18223:2;18215:6;18211:15;18204:52;18019:244;:::o;18269:366::-;18411:3;18432:67;18496:2;18491:3;18432:67;:::i;:::-;18425:74;;18508:93;18597:3;18508:93;:::i;:::-;18626:2;18621:3;18617:12;18610:19;;18269:366;;;:::o;18641:419::-;18807:4;18845:2;18834:9;18830:18;18822:26;;18894:9;18888:4;18884:20;18880:1;18869:9;18865:17;18858:47;18922:131;19048:4;18922:131;:::i;:::-;18914:139;;18641:419;;;:::o;19066:221::-;19206:34;19202:1;19194:6;19190:14;19183:58;19275:4;19270:2;19262:6;19258:15;19251:29;19066:221;:::o;19293:366::-;19435:3;19456:67;19520:2;19515:3;19456:67;:::i;:::-;19449:74;;19532:93;19621:3;19532:93;:::i;:::-;19650:2;19645:3;19641:12;19634:19;;19293:366;;;:::o;19665:419::-;19831:4;19869:2;19858:9;19854:18;19846:26;;19918:9;19912:4;19908:20;19904:1;19893:9;19889:17;19882:47;19946:131;20072:4;19946:131;:::i;:::-;19938:139;;19665:419;;;:::o;20090:180::-;20138:77;20135:1;20128:88;20235:4;20232:1;20225:15;20259:4;20256:1;20249:15;20276:233;20315:3;20338:24;20356:5;20338:24;:::i;:::-;20329:33;;20384:66;20377:5;20374:77;20371:103;;20454:18;;:::i;:::-;20371:103;20501:1;20494:5;20490:13;20483:20;;20276:233;;;:::o;20515:::-;20655:34;20651:1;20643:6;20639:14;20632:58;20724:16;20719:2;20711:6;20707:15;20700:41;20515:233;:::o;20754:366::-;20896:3;20917:67;20981:2;20976:3;20917:67;:::i;:::-;20910:74;;20993:93;21082:3;20993:93;:::i;:::-;21111:2;21106:3;21102:12;21095:19;;20754:366;;;:::o;21126:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21379:9;21373:4;21369:20;21365:1;21354:9;21350:17;21343:47;21407:131;21533:4;21407:131;:::i;:::-;21399:139;;21126:419;;;:::o;21551:147::-;21652:11;21689:3;21674:18;;21551:147;;;;:::o;21704:114::-;;:::o;21824:398::-;21983:3;22004:83;22085:1;22080:3;22004:83;:::i;:::-;21997:90;;22096:93;22185:3;22096:93;:::i;:::-;22214:1;22209:3;22205:11;22198:18;;21824:398;;;:::o;22228:379::-;22412:3;22434:147;22577:3;22434:147;:::i;:::-;22427:154;;22598:3;22591:10;;22228:379;;;:::o;22613:166::-;22753:18;22749:1;22741:6;22737:14;22730:42;22613:166;:::o;22785:366::-;22927:3;22948:67;23012:2;23007:3;22948:67;:::i;:::-;22941:74;;23024:93;23113:3;23024:93;:::i;:::-;23142:2;23137:3;23133:12;23126:19;;22785:366;;;:::o;23157:419::-;23323:4;23361:2;23350:9;23346:18;23338:26;;23410:9;23404:4;23400:20;23396:1;23385:9;23381:17;23374:47;23438:131;23564:4;23438:131;:::i;:::-;23430:139;;23157:419;;;:::o;23582:180::-;23630:77;23627:1;23620:88;23727:4;23724:1;23717:15;23751:4;23748:1;23741:15;23768:222;23908:34;23904:1;23896:6;23892:14;23885:58;23977:5;23972:2;23964:6;23960:15;23953:30;23768:222;:::o;23996:366::-;24138:3;24159:67;24223:2;24218:3;24159:67;:::i;:::-;24152:74;;24235:93;24324:3;24235:93;:::i;:::-;24353:2;24348:3;24344:12;24337:19;;23996:366;;;:::o;24368:419::-;24534:4;24572:2;24561:9;24557:18;24549:26;;24621:9;24615:4;24611:20;24607:1;24596:9;24592:17;24585:47;24649:131;24775:4;24649:131;:::i;:::-;24641:139;;24368:419;;;:::o;24793:141::-;24842:4;24865:3;24857:11;;24888:3;24885:1;24878:14;24922:4;24919:1;24909:18;24901:26;;24793:141;;;:::o;24940:93::-;24977:6;25024:2;25019;25012:5;25008:14;25004:23;24994:33;;24940:93;;;:::o;25039:107::-;25083:8;25133:5;25127:4;25123:16;25102:37;;25039:107;;;;:::o;25152:393::-;25221:6;25271:1;25259:10;25255:18;25294:97;25324:66;25313:9;25294:97;:::i;:::-;25412:39;25442:8;25431:9;25412:39;:::i;:::-;25400:51;;25484:4;25480:9;25473:5;25469:21;25460:30;;25533:4;25523:8;25519:19;25512:5;25509:30;25499:40;;25228:317;;25152:393;;;;;:::o;25551:60::-;25579:3;25600:5;25593:12;;25551:60;;;:::o;25617:142::-;25667:9;25700:53;25718:34;25727:24;25745:5;25727:24;:::i;:::-;25718:34;:::i;:::-;25700:53;:::i;:::-;25687:66;;25617:142;;;:::o;25765:75::-;25808:3;25829:5;25822:12;;25765:75;;;:::o;25846:269::-;25956:39;25987:7;25956:39;:::i;:::-;26017:91;26066:41;26090:16;26066:41;:::i;:::-;26058:6;26051:4;26045:11;26017:91;:::i;:::-;26011:4;26004:105;25922:193;25846:269;;;:::o;26121:73::-;26166:3;26121:73;:::o;26200:189::-;26277:32;;:::i;:::-;26318:65;26376:6;26368;26362:4;26318:65;:::i;:::-;26253:136;26200:189;;:::o;26395:186::-;26455:120;26472:3;26465:5;26462:14;26455:120;;;26526:39;26563:1;26556:5;26526:39;:::i;:::-;26499:1;26492:5;26488:13;26479:22;;26455:120;;;26395:186;;:::o;26587:543::-;26688:2;26683:3;26680:11;26677:446;;;26722:38;26754:5;26722:38;:::i;:::-;26806:29;26824:10;26806:29;:::i;:::-;26796:8;26792:44;26989:2;26977:10;26974:18;26971:49;;;27010:8;26995:23;;26971:49;27033:80;27089:22;27107:3;27089:22;:::i;:::-;27079:8;27075:37;27062:11;27033:80;:::i;:::-;26692:431;;26677:446;26587:543;;;:::o;27136:117::-;27190:8;27240:5;27234:4;27230:16;27209:37;;27136:117;;;;:::o;27259:169::-;27303:6;27336:51;27384:1;27380:6;27372:5;27369:1;27365:13;27336:51;:::i;:::-;27332:56;27417:4;27411;27407:15;27397:25;;27310:118;27259:169;;;;:::o;27433:295::-;27509:4;27655:29;27680:3;27674:4;27655:29;:::i;:::-;27647:37;;27717:3;27714:1;27710:11;27704:4;27701:21;27693:29;;27433:295;;;;:::o;27733:1395::-;27850:37;27883:3;27850:37;:::i;:::-;27952:18;27944:6;27941:30;27938:56;;;27974:18;;:::i;:::-;27938:56;28018:38;28050:4;28044:11;28018:38;:::i;:::-;28103:67;28163:6;28155;28149:4;28103:67;:::i;:::-;28197:1;28221:4;28208:17;;28253:2;28245:6;28242:14;28270:1;28265:618;;;;28927:1;28944:6;28941:77;;;28993:9;28988:3;28984:19;28978:26;28969:35;;28941:77;29044:67;29104:6;29097:5;29044:67;:::i;:::-;29038:4;29031:81;28900:222;28235:887;;28265:618;28317:4;28313:9;28305:6;28301:22;28351:37;28383:4;28351:37;:::i;:::-;28410:1;28424:208;28438:7;28435:1;28432:14;28424:208;;;28517:9;28512:3;28508:19;28502:26;28494:6;28487:42;28568:1;28560:6;28556:14;28546:24;;28615:2;28604:9;28600:18;28587:31;;28461:4;28458:1;28454:12;28449:17;;28424:208;;;28660:6;28651:7;28648:19;28645:179;;;28718:9;28713:3;28709:19;28703:26;28761:48;28803:4;28795:6;28791:17;28780:9;28761:48;:::i;:::-;28753:6;28746:64;28668:156;28645:179;28870:1;28866;28858:6;28854:14;28850:22;28844:4;28837:36;28272:611;;;28235:887;;27825:1303;;;27733:1395;;:::o;29134:230::-;29274:34;29270:1;29262:6;29258:14;29251:58;29343:13;29338:2;29330:6;29326:15;29319:38;29134:230;:::o;29370:366::-;29512:3;29533:67;29597:2;29592:3;29533:67;:::i;:::-;29526:74;;29609:93;29698:3;29609:93;:::i;:::-;29727:2;29722:3;29718:12;29711:19;;29370:366;;;:::o;29742:419::-;29908:4;29946:2;29935:9;29931:18;29923:26;;29995:9;29989:4;29985:20;29981:1;29970:9;29966:17;29959:47;30023:131;30149:4;30023:131;:::i;:::-;30015:139;;29742:419;;;:::o;30167:156::-;30307:8;30303:1;30295:6;30291:14;30284:32;30167:156;:::o;30329:365::-;30471:3;30492:66;30556:1;30551:3;30492:66;:::i;:::-;30485:73;;30567:93;30656:3;30567:93;:::i;:::-;30685:2;30680:3;30676:12;30669:19;;30329:365;;;:::o;30700:419::-;30866:4;30904:2;30893:9;30889:18;30881:26;;30953:9;30947:4;30943:20;30939:1;30928:9;30924:17;30917:47;30981:131;31107:4;30981:131;:::i;:::-;30973:139;;30700:419;;;:::o;31125:305::-;31165:3;31184:20;31202:1;31184:20;:::i;:::-;31179:25;;31218:20;31236:1;31218:20;:::i;:::-;31213:25;;31372:1;31304:66;31300:74;31297:1;31294:81;31291:107;;;31378:18;;:::i;:::-;31291:107;31422:1;31419;31415:9;31408:16;;31125:305;;;;:::o;31436:168::-;31576:20;31572:1;31564:6;31560:14;31553:44;31436:168;:::o;31610:366::-;31752:3;31773:67;31837:2;31832:3;31773:67;:::i;:::-;31766:74;;31849:93;31938:3;31849:93;:::i;:::-;31967:2;31962:3;31958:12;31951:19;;31610:366;;;:::o;31982:419::-;32148:4;32186:2;32175:9;32171:18;32163:26;;32235:9;32229:4;32225:20;32221:1;32210:9;32206:17;32199:47;32263:131;32389:4;32263:131;:::i;:::-;32255:139;;31982:419;;;:::o;32407:160::-;32547:12;32543:1;32535:6;32531:14;32524:36;32407:160;:::o;32573:366::-;32715:3;32736:67;32800:2;32795:3;32736:67;:::i;:::-;32729:74;;32812:93;32901:3;32812:93;:::i;:::-;32930:2;32925:3;32921:12;32914:19;;32573:366;;;:::o;32945:419::-;33111:4;33149:2;33138:9;33134:18;33126:26;;33198:9;33192:4;33188:20;33184:1;33173:9;33169:17;33162:47;33226:131;33352:4;33226:131;:::i;:::-;33218:139;;32945:419;;;:::o;33370:162::-;33510:14;33506:1;33498:6;33494:14;33487:38;33370:162;:::o;33538:366::-;33680:3;33701:67;33765:2;33760:3;33701:67;:::i;:::-;33694:74;;33777:93;33866:3;33777:93;:::i;:::-;33895:2;33890:3;33886:12;33879:19;;33538:366;;;:::o;33910:419::-;34076:4;34114:2;34103:9;34099:18;34091:26;;34163:9;34157:4;34153:20;34149:1;34138:9;34134:17;34127:47;34191:131;34317:4;34191:131;:::i;:::-;34183:139;;33910:419;;;:::o;34335:172::-;34475:24;34471:1;34463:6;34459:14;34452:48;34335:172;:::o;34513:366::-;34655:3;34676:67;34740:2;34735:3;34676:67;:::i;:::-;34669:74;;34752:93;34841:3;34752:93;:::i;:::-;34870:2;34865:3;34861:12;34854:19;;34513:366;;;:::o;34885:419::-;35051:4;35089:2;35078:9;35074:18;35066:26;;35138:9;35132:4;35128:20;35124:1;35113:9;35109:17;35102:47;35166:131;35292:4;35166:131;:::i;:::-;35158:139;;34885:419;;;:::o;35310:172::-;35450:24;35446:1;35438:6;35434:14;35427:48;35310:172;:::o;35488:366::-;35630:3;35651:67;35715:2;35710:3;35651:67;:::i;:::-;35644:74;;35727:93;35816:3;35727:93;:::i;:::-;35845:2;35840:3;35836:12;35829:19;;35488:366;;;:::o;35860:419::-;36026:4;36064:2;36053:9;36049:18;36041:26;;36113:9;36107:4;36103:20;36099:1;36088:9;36084:17;36077:47;36141:131;36267:4;36141:131;:::i;:::-;36133:139;;35860:419;;;:::o;36285:348::-;36325:7;36348:20;36366:1;36348:20;:::i;:::-;36343:25;;36382:20;36400:1;36382:20;:::i;:::-;36377:25;;36570:1;36502:66;36498:74;36495:1;36492:81;36487:1;36480:9;36473:17;36469:105;36466:131;;;36577:18;;:::i;:::-;36466:131;36625:1;36622;36618:9;36607:20;;36285:348;;;;:::o;36639:172::-;36779:24;36775:1;36767:6;36763:14;36756:48;36639:172;:::o;36817:366::-;36959:3;36980:67;37044:2;37039:3;36980:67;:::i;:::-;36973:74;;37056:93;37145:3;37056:93;:::i;:::-;37174:2;37169:3;37165:12;37158:19;;36817:366;;;:::o;37189:419::-;37355:4;37393:2;37382:9;37378:18;37370:26;;37442:9;37436:4;37432:20;37428:1;37417:9;37413:17;37406:47;37470:131;37596:4;37470:131;:::i;:::-;37462:139;;37189:419;;;:::o;37614:176::-;37754:28;37750:1;37742:6;37738:14;37731:52;37614:176;:::o;37796:366::-;37938:3;37959:67;38023:2;38018:3;37959:67;:::i;:::-;37952:74;;38035:93;38124:3;38035:93;:::i;:::-;38153:2;38148:3;38144:12;38137:19;;37796:366;;;:::o;38168:419::-;38334:4;38372:2;38361:9;38357:18;38349:26;;38421:9;38415:4;38411:20;38407:1;38396:9;38392:17;38385:47;38449:131;38575:4;38449:131;:::i;:::-;38441:139;;38168:419;;;:::o;38593:238::-;38733:34;38729:1;38721:6;38717:14;38710:58;38802:21;38797:2;38789:6;38785:15;38778:46;38593:238;:::o;38837:366::-;38979:3;39000:67;39064:2;39059:3;39000:67;:::i;:::-;38993:74;;39076:93;39165:3;39076:93;:::i;:::-;39194:2;39189:3;39185:12;39178:19;;38837:366;;;:::o;39209:419::-;39375:4;39413:2;39402:9;39398:18;39390:26;;39462:9;39456:4;39452:20;39448:1;39437:9;39433:17;39426:47;39490:131;39616:4;39490:131;:::i;:::-;39482:139;;39209:419;;;:::o;39634:234::-;39774:34;39770:1;39762:6;39758:14;39751:58;39843:17;39838:2;39830:6;39826:15;39819:42;39634:234;:::o;39874:366::-;40016:3;40037:67;40101:2;40096:3;40037:67;:::i;:::-;40030:74;;40113:93;40202:3;40113:93;:::i;:::-;40231:2;40226:3;40222:12;40215:19;;39874:366;;;:::o;40246:419::-;40412:4;40450:2;40439:9;40435:18;40427:26;;40499:9;40493:4;40489:20;40485:1;40474:9;40470:17;40463:47;40527:131;40653:4;40527:131;:::i;:::-;40519:139;;40246:419;;;:::o;40671:148::-;40773:11;40810:3;40795:18;;40671:148;;;;:::o;40825:377::-;40931:3;40959:39;40992:5;40959:39;:::i;:::-;41014:89;41096:6;41091:3;41014:89;:::i;:::-;41007:96;;41112:52;41157:6;41152:3;41145:4;41138:5;41134:16;41112:52;:::i;:::-;41189:6;41184:3;41180:16;41173:23;;40935:267;40825:377;;;;:::o;41232:874::-;41335:3;41372:5;41366:12;41401:36;41427:9;41401:36;:::i;:::-;41453:89;41535:6;41530:3;41453:89;:::i;:::-;41446:96;;41573:1;41562:9;41558:17;41589:1;41584:166;;;;41764:1;41759:341;;;;41551:549;;41584:166;41668:4;41664:9;41653;41649:25;41644:3;41637:38;41730:6;41723:14;41716:22;41708:6;41704:35;41699:3;41695:45;41688:52;;41584:166;;41759:341;41826:38;41858:5;41826:38;:::i;:::-;41886:1;41900:154;41914:6;41911:1;41908:13;41900:154;;;41988:7;41982:14;41978:1;41973:3;41969:11;41962:35;42038:1;42029:7;42025:15;42014:26;;41936:4;41933:1;41929:12;41924:17;;41900:154;;;42083:6;42078:3;42074:16;42067:23;;41766:334;;41551:549;;41339:767;;41232:874;;;;:::o;42112:589::-;42337:3;42359:95;42450:3;42441:6;42359:95;:::i;:::-;42352:102;;42471:95;42562:3;42553:6;42471:95;:::i;:::-;42464:102;;42583:92;42671:3;42662:6;42583:92;:::i;:::-;42576:99;;42692:3;42685:10;;42112:589;;;;;;:::o;42707:225::-;42847:34;42843:1;42835:6;42831:14;42824:58;42916:8;42911:2;42903:6;42899:15;42892:33;42707:225;:::o;42938:366::-;43080:3;43101:67;43165:2;43160:3;43101:67;:::i;:::-;43094:74;;43177:93;43266:3;43177:93;:::i;:::-;43295:2;43290:3;43286:12;43279:19;;42938:366;;;:::o;43310:419::-;43476:4;43514:2;43503:9;43499:18;43491:26;;43563:9;43557:4;43553:20;43549:1;43538:9;43534:17;43527:47;43591:131;43717:4;43591:131;:::i;:::-;43583:139;;43310:419;;;:::o;43735:237::-;43875:34;43871:1;43863:6;43859:14;43852:58;43944:20;43939:2;43931:6;43927:15;43920:45;43735:237;:::o;43978:366::-;44120:3;44141:67;44205:2;44200:3;44141:67;:::i;:::-;44134:74;;44217:93;44306:3;44217:93;:::i;:::-;44335:2;44330:3;44326:12;44319:19;;43978:366;;;:::o;44350:419::-;44516:4;44554:2;44543:9;44539:18;44531:26;;44603:9;44597:4;44593:20;44589:1;44578:9;44574:17;44567:47;44631:131;44757:4;44631:131;:::i;:::-;44623:139;;44350:419;;;:::o;44775:225::-;44915:34;44911:1;44903:6;44899:14;44892:58;44984:8;44979:2;44971:6;44967:15;44960:33;44775:225;:::o;45006:366::-;45148:3;45169:67;45233:2;45228:3;45169:67;:::i;:::-;45162:74;;45245:93;45334:3;45245:93;:::i;:::-;45363:2;45358:3;45354:12;45347:19;;45006:366;;;:::o;45378:419::-;45544:4;45582:2;45571:9;45567:18;45559:26;;45631:9;45625:4;45621:20;45617:1;45606:9;45602:17;45595:47;45659:131;45785:4;45659:131;:::i;:::-;45651:139;;45378:419;;;:::o;45803:224::-;45943:34;45939:1;45931:6;45927:14;45920:58;46012:7;46007:2;45999:6;45995:15;45988:32;45803:224;:::o;46033:366::-;46175:3;46196:67;46260:2;46255:3;46196:67;:::i;:::-;46189:74;;46272:93;46361:3;46272:93;:::i;:::-;46390:2;46385:3;46381:12;46374:19;;46033:366;;;:::o;46405:419::-;46571:4;46609:2;46598:9;46594:18;46586:26;;46658:9;46652:4;46648:20;46644:1;46633:9;46629:17;46622:47;46686:131;46812:4;46686:131;:::i;:::-;46678:139;;46405:419;;;:::o;46830:229::-;46970:34;46966:1;46958:6;46954:14;46947:58;47039:12;47034:2;47026:6;47022:15;47015:37;46830:229;:::o;47065:366::-;47207:3;47228:67;47292:2;47287:3;47228:67;:::i;:::-;47221:74;;47304:93;47393:3;47304:93;:::i;:::-;47422:2;47417:3;47413:12;47406:19;;47065:366;;;:::o;47437:419::-;47603:4;47641:2;47630:9;47626:18;47618:26;;47690:9;47684:4;47680:20;47676:1;47665:9;47661:17;47654:47;47718:131;47844:4;47718:131;:::i;:::-;47710:139;;47437:419;;;:::o;47862:171::-;47901:3;47924:24;47942:5;47924:24;:::i;:::-;47915:33;;47970:4;47963:5;47960:15;47957:41;;47978:18;;:::i;:::-;47957:41;48025:1;48018:5;48014:13;48007:20;;47862:171;;;:::o;49076:98::-;49127:6;49161:5;49155:12;49145:22;;49076:98;;;:::o;49180:168::-;49263:11;49297:6;49292:3;49285:19;49337:4;49332:3;49328:14;49313:29;;49180:168;;;;:::o;49354:360::-;49440:3;49468:38;49500:5;49468:38;:::i;:::-;49522:70;49585:6;49580:3;49522:70;:::i;:::-;49515:77;;49601:52;49646:6;49641:3;49634:4;49627:5;49623:16;49601:52;:::i;:::-;49678:29;49700:6;49678:29;:::i;:::-;49673:3;49669:39;49662:46;;49444:270;49354:360;;;;:::o;49720:640::-;49915:4;49953:3;49942:9;49938:19;49930:27;;49967:71;50035:1;50024:9;50020:17;50011:6;49967:71;:::i;:::-;50048:72;50116:2;50105:9;50101:18;50092:6;50048:72;:::i;:::-;50130;50198:2;50187:9;50183:18;50174:6;50130:72;:::i;:::-;50249:9;50243:4;50239:20;50234:2;50223:9;50219:18;50212:48;50277:76;50348:4;50339:6;50277:76;:::i;:::-;50269:84;;49720:640;;;;;;;:::o;50366:141::-;50422:5;50453:6;50447:13;50438:22;;50469:32;50495:5;50469:32;:::i;:::-;50366:141;;;;:::o;50513:349::-;50582:6;50631:2;50619:9;50610:7;50606:23;50602:32;50599:119;;;50637:79;;:::i;:::-;50599:119;50757:1;50782:63;50837:7;50828:6;50817:9;50813:22;50782:63;:::i;:::-;50772:73;;50728:127;50513:349;;;;:::o;50868:180::-;50916:77;50913:1;50906:88;51013:4;51010:1;51003:15;51037:4;51034:1;51027:15;51054:185;51094:1;51111:20;51129:1;51111:20;:::i;:::-;51106:25;;51145:20;51163:1;51145:20;:::i;:::-;51140:25;;51184:1;51174:35;;51189:18;;:::i;:::-;51174:35;51231:1;51228;51224:9;51219:14;;51054:185;;;;:::o;51245:191::-;51285:4;51305:20;51323:1;51305:20;:::i;:::-;51300:25;;51339:20;51357:1;51339:20;:::i;:::-;51334:25;;51378:1;51375;51372:8;51369:34;;;51383:18;;:::i;:::-;51369:34;51428:1;51425;51421:9;51413:17;;51245:191;;;;:::o;51442:176::-;51474:1;51491:20;51509:1;51491:20;:::i;:::-;51486:25;;51525:20;51543:1;51525:20;:::i;:::-;51520:25;;51564:1;51554:35;;51569:18;;:::i;:::-;51554:35;51610:1;51607;51603:9;51598:14;;51442:176;;;;:::o;51624:220::-;51764:34;51760:1;51752:6;51748:14;51741:58;51833:3;51828:2;51820:6;51816:15;51809:28;51624:220;:::o;51850:366::-;51992:3;52013:67;52077:2;52072:3;52013:67;:::i;:::-;52006:74;;52089:93;52178:3;52089:93;:::i;:::-;52207:2;52202:3;52198:12;52191:19;;51850:366;;;:::o;52222:419::-;52388:4;52426:2;52415:9;52411:18;52403:26;;52475:9;52469:4;52465:20;52461:1;52450:9;52446:17;52439:47;52503:131;52629:4;52503:131;:::i;:::-;52495:139;;52222:419;;;:::o;52647:179::-;52787:31;52783:1;52775:6;52771:14;52764:55;52647:179;:::o;52832:366::-;52974:3;52995:67;53059:2;53054:3;52995:67;:::i;:::-;52988:74;;53071:93;53160:3;53071:93;:::i;:::-;53189:2;53184:3;53180:12;53173:19;;52832:366;;;:::o;53204:419::-;53370:4;53408:2;53397:9;53393:18;53385:26;;53457:9;53451:4;53447:20;53443:1;53432:9;53428:17;53421:47;53485:131;53611:4;53485:131;:::i;:::-;53477:139;;53204:419;;;:::o;53629:222::-;53769:34;53765:1;53757:6;53753:14;53746:58;53838:5;53833:2;53825:6;53821:15;53814:30;53629:222;:::o;53857:366::-;53999:3;54020:67;54084:2;54079:3;54020:67;:::i;:::-;54013:74;;54096:93;54185:3;54096:93;:::i;:::-;54214:2;54209:3;54205:12;54198:19;;53857:366;;;:::o;54229:419::-;54395:4;54433:2;54422:9;54418:18;54410:26;;54482:9;54476:4;54472:20;54468:1;54457:9;54453:17;54446:47;54510:131;54636:4;54510:131;:::i;:::-;54502:139;;54229:419;;;:::o;54654:118::-;54691:7;54731:34;54724:5;54720:46;54709:57;;54654:118;;;:::o;54778:273::-;54818:3;54837:20;54855:1;54837:20;:::i;:::-;54832:25;;54871:20;54889:1;54871:20;:::i;:::-;54866:25;;54993:1;54957:34;54953:42;54950:1;54947:49;54944:75;;;54999:18;;:::i;:::-;54944:75;55043:1;55040;55036:9;55029:16;;54778:273;;;;:::o

Swarm Source

ipfs://46a17bb21df895d4ad8b39eac6fa5abe44649f0576be7446f799409079967b55
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.