[ { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "AuctionStillActive", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "InsufficientTokensRemanining", "type": "error" }, { "inputs": [], "name": "InvalidConfiguration", "type": "error" }, { "inputs": [], "name": "InvalidPayment", "type": "error" }, { "inputs": [], "name": "InvalidRoyaltyPercentage", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "NoRebateAvailable", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "PaymentFailed", "type": "error" }, { "inputs": [], "name": "SaleNotActive", "type": "error" }, { "inputs": [], "name": "TooManyMintsRequested", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnknownToken", "type": "error" }, { "anonymous": false, "inputs": [], "name": "AlbaEjected", "type": "event" }, { "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newMax", "type": "uint256" } ], "name": "MaxSalePiecesReduced", "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": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "PaymentFlushed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "RebateClaimed", "type": "event" }, { "anonymous": false, "inputs": [], "name": "ReservesReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "enum SaleType", "name": "saleType", "type": "uint8" }, { "internalType": "uint32", "name": "maxSalePieces", "type": "uint32" }, { "internalType": "uint32", "name": "numReserved", "type": "uint32" }, { "internalType": "uint16", "name": "numRetained", "type": "uint16" }, { "internalType": "uint16", "name": "numAlba", "type": "uint16" }, { "internalType": "uint40", "name": "startTime", "type": "uint40" }, { "internalType": "uint40", "name": "auctionEndTime", "type": "uint40" }, { "internalType": "bool", "name": "hasRebate", "type": "bool" }, { "internalType": "uint256", "name": "initialPrice", "type": "uint256" }, { "internalType": "uint256", "name": "finalPrice", "type": "uint256" } ], "indexed": false, "internalType": "struct SaleConfig", "name": "newConfig", "type": "tuple" } ], "name": "SaleConfigChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "SaleFinished", "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": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_REDUCE_BUFFER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_ARTIST", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_MANAGER", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "albaDelegate", "outputs": [ { "internalType": "contract IAlbaDelegate", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "assumeTotalOwnership", "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": [ { "components": [ { "internalType": "enum SaleType", "name": "saleType", "type": "uint8" }, { "internalType": "uint32", "name": "maxSalePieces", "type": "uint32" }, { "internalType": "uint32", "name": "numReserved", "type": "uint32" }, { "internalType": "uint16", "name": "numRetained", "type": "uint16" }, { "internalType": "uint16", "name": "numAlba", "type": "uint16" }, { "internalType": "uint40", "name": "startTime", "type": "uint40" }, { "internalType": "uint40", "name": "auctionEndTime", "type": "uint40" }, { "internalType": "bool", "name": "hasRebate", "type": "bool" }, { "internalType": "uint256", "name": "initialPrice", "type": "uint256" }, { "internalType": "uint256", "name": "finalPrice", "type": "uint256" } ], "internalType": "struct SaleConfig", "name": "newConf", "type": "tuple" } ], "name": "changeSaleConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "recipient", "type": "address" } ], "name": "claimRebate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "closeSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "collectionConfig", "outputs": [ { "internalType": "bytes16", "name": "uuid", "type": "bytes16" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "token", "type": "string" }, { "internalType": "string", "name": "slug", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "finalSalePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flushPaymentToSplitter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flushablePayments", "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": [], "name": "getPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getRebateAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IAlbaDelegate", "name": "_albaDelegate", "type": "address" }, { "components": [ { "internalType": "bytes16", "name": "uuid", "type": "bytes16" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "token", "type": "string" }, { "internalType": "string", "name": "slug", "type": "string" }, { "internalType": "bytes16[]", "name": "dependencies", "type": "bytes16[]" }, { "internalType": "string[]", "name": "metadataKeys", "type": "string[]" }, { "internalType": "string[]", "name": "metadataValues", "type": "string[]" } ], "internalType": "struct CollectionConfig", "name": "_config", "type": "tuple" }, { "components": [ { "internalType": "enum SaleType", "name": "saleType", "type": "uint8" }, { "internalType": "uint32", "name": "maxSalePieces", "type": "uint32" }, { "internalType": "uint32", "name": "numReserved", "type": "uint32" }, { "internalType": "uint16", "name": "numRetained", "type": "uint16" }, { "internalType": "uint16", "name": "numAlba", "type": "uint16" }, { "internalType": "uint40", "name": "startTime", "type": "uint40" }, { "internalType": "uint40", "name": "auctionEndTime", "type": "uint40" }, { "internalType": "bool", "name": "hasRebate", "type": "bool" }, { "internalType": "uint256", "name": "initialPrice", "type": "uint256" }, { "internalType": "uint256", "name": "finalPrice", "type": "uint256" } ], "internalType": "struct SaleConfig", "name": "_saleConfig", "type": "tuple" }, { "components": [ { "internalType": "address[]", "name": "primaryPayees", "type": "address[]" }, { "internalType": "uint256[]", "name": "primaryShareBasisPoints", "type": "uint256[]" }, { "internalType": "address[]", "name": "secondaryPayees", "type": "address[]" }, { "internalType": "uint256[]", "name": "secondaryShareBasisPoints", "type": "uint256[]" }, { "internalType": "uint16", "name": "royaltyBasisPoints", "type": "uint16" } ], "internalType": "struct PaymentConfig", "name": "_paymentConfig", "type": "tuple" }, { "internalType": "address", "name": "albaManager", "type": "address" }, { "internalType": "address[]", "name": "artists", "type": "address[]" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSaleClosed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "metadata", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes16", "name": "collectionId", "type": "bytes16" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint16", "name": "num", "type": "uint16" }, { "internalType": "uint32", "name": "nonce", "type": "uint32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint16", "name": "num", "type": "uint16" } ], "name": "mintAlba", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "mintPrices", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes16", "name": "collectionId", "type": "bytes16" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint16", "name": "num", "type": "uint16" }, { "internalType": "uint16", "name": "maxMints", "type": "uint16" }, { "internalType": "uint32", "name": "nonce", "type": "uint32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mintReserved", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "num", "type": "uint16" } ], "name": "mintRetained", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes16", "name": "collectionId", "type": "bytes16" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint16", "name": "num", "type": "uint16" }, { "internalType": "uint32", "name": "nonce", "type": "uint32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mintTimeLimited", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "numAlbaMinted", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "numReservedMinted", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "numRetainedMinted", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paymentSplitter", "outputs": [ { "internalType": "contract IPaymentSplitter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paymentSplitterRoyalties", "outputs": [ { "internalType": "contract IPaymentSplitter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "newTotal", "type": "uint32" } ], "name": "reduceMaxSalePiecesTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "releaseReserves", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes16", "name": "collectionId", "type": "bytes16" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint16", "name": "maxMints", "type": "uint16" }, { "internalType": "uint32", "name": "nonce", "type": "uint32" } ], "name": "reservesUsed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltyBasisPoints", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "type": "function" }, { "inputs": [], "name": "saleConfig", "outputs": [ { "internalType": "enum SaleType", "name": "saleType", "type": "uint8" }, { "internalType": "uint32", "name": "maxSalePieces", "type": "uint32" }, { "internalType": "uint32", "name": "numReserved", "type": "uint32" }, { "internalType": "uint16", "name": "numRetained", "type": "uint16" }, { "internalType": "uint16", "name": "numAlba", "type": "uint16" }, { "internalType": "uint40", "name": "startTime", "type": "uint40" }, { "internalType": "uint40", "name": "auctionEndTime", "type": "uint40" }, { "internalType": "bool", "name": "hasRebate", "type": "bool" }, { "internalType": "uint256", "name": "initialPrice", "type": "uint256" }, { "internalType": "uint256", "name": "finalPrice", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IAlbaDelegate", "name": "newDelegate", "type": "address" } ], "name": "setDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "newRoyaltyBasisPoints", "type": "uint16" } ], "name": "setRoyalyPercentage", "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": "tokenId", "type": "uint256" } ], "name": "tokenHTML", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenSeed", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string[]", "name": "keys", "type": "string[]" }, { "internalType": "string[]", "name": "values", "type": "string[]" } ], "name": "writeMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506200001d3362000023565b6200007e565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b615f18806200008e6000396000f3fe6080604052600436106103c35760003560e01c806384778eba116101f2578063bb011cbb1161010d578063d547741f116100a0578063ed4a6b0c1161006f578063ed4a6b0c14610b8d578063ee55efee14610bad578063f2fde38b14610bc2578063f5b944eb14610be257600080fd5b8063d547741f14610b1a578063e756d96914610b3a578063e985e9c514610b5a578063ec06789d14610b7a57600080fd5b8063c9910973116100dc578063c991097314610aa7578063ca15c87314610ac7578063ca5eb5e114610ae7578063d2e8281f14610b0757600080fd5b8063bb011cbb14610a3b578063bf964b4e14610a50578063c56ca30614610a70578063c87b56dd14610a8757600080fd5b80639acd26d511610185578063acfc035211610154578063acfc0352146109d3578063b45e01e9146109f3578063b79bebaf14610a08578063b88d4fde14610a2857600080fd5b80639acd26d514610966578063a217fddf14610989578063a22cb4651461099e578063a404d794146109be57600080fd5b806390aa0b0f116101c157806390aa0b0f1461088d57806391d148541461091c57806395d89b411461093c57806398d5fdca1461095157600080fd5b806384778eba1461081e5780638c1478a2146108335780638da5cb5b146108495780639010d07c1461086d57600080fd5b806336568abe116102e257806369005cd611610275578063774c96ce11610244578063774c96ce146107ab5780637ea249ad146107be5780637ec9704f146107de57806380a6dfa0146107fe57600080fd5b806369005cd61461072f5780636b34d7251461075157806370a0823114610776578063715018a61461079657600080fd5b806342842e0e116102b157806342842e0e146106bc5780635c21f6d8146106cf5780635f516836146106ef5780636352211e1461070f57600080fd5b806336568abe1461061557806337fe26b91461063557806339fd52c31461065557806342260b5d1461068757600080fd5b80631e1a268b1161035a5780632a55205a116103295780632a55205a146105765780632c316c1d146105b55780632f2ff15d146105d5578063357b6217146105f557600080fd5b80631e1a268b146104f157806323b872dd14610512578063248a9ca314610525578063249672151461055657600080fd5b8063095ea7b311610396578063095ea7b3146104875780630a62ae411461049c578063146bc04e146104bc57806318160ddd146104dc57600080fd5b806301ffc9a7146103c857806303366c41146103fd57806306fdde031461042d578063081812fc1461044f575b600080fd5b3480156103d457600080fd5b506103e86103e336600461453c565b610c04565b60405190151581526020015b60405180910390f35b34801561040957600080fd5b5061041f600080516020615ea383398151915281565b6040519081526020016103f4565b34801561043957600080fd5b50610442610c3f565b6040516103f491906145a9565b34801561045b57600080fd5b5061046f61046a3660046145bc565b610cda565b6040516001600160a01b0390911681526020016103f4565b61049a6104953660046145f5565b610d27565b005b3480156104a857600080fd5b5061049a6104b7366004614691565b610d37565b3480156104c857600080fd5b5061049a6104d7366004614761565b611396565b3480156104e857600080fd5b5061041f6114c0565b3480156104fd57600080fd5b50600f546103e890600160b01b900460ff1681565b61049a61052036600461477e565b6114df565b34801561053157600080fd5b5061041f6105403660046145bc565b6000908152600160208190526040909120015490565b34801561056257600080fd5b5061049a6105713660046147bf565b6116f4565b34801561058257600080fd5b506105966105913660046147dc565b611859565b604080516001600160a01b0390931683526020830191909152016103f4565b3480156105c157600080fd5b5061049a6105d0366004614819565b611898565b3480156105e157600080fd5b5061049a6105f0366004614836565b611962565b34801561060157600080fd5b5061049a610610366004614819565b61198d565b34801561062157600080fd5b5061049a610630366004614836565b611a2d565b34801561064157600080fd5b5061041f610650366004614899565b611aa7565b34801561066157600080fd5b506011546106729063ffffffff1681565b60405163ffffffff90911681526020016103f4565b34801561069357600080fd5b50600f546106a990600160a01b900461ffff1681565b60405161ffff90911681526020016103f4565b61049a6106ca36600461477e565b611ad1565b3480156106db57600080fd5b5061049a6106ea3660046148f5565b611aec565b3480156106fb57600080fd5b5061041f61070a3660046145bc565b611ca1565b34801561071b57600080fd5b5061046f61072a3660046145bc565b611d31565b34801561073b57600080fd5b506011546106a990600160301b900461ffff1681565b34801561075d57600080fd5b50610766611d3c565b6040516103f49493929190614912565b34801561078257600080fd5b5061041f610791366004614761565b611ef4565b3480156107a257600080fd5b5061049a611f5c565b61049a6107b93660046149a7565b611f70565b3480156107ca57600080fd5b5061041f6107d93660046145f5565b61216c565b3480156107ea57600080fd5b5061041f6107f9366004614761565b61219d565b34801561080a57600080fd5b50610442610819366004614b28565b6122d7565b34801561082a57600080fd5b5061049a61237c565b34801561083f57600080fd5b5061041f60125481565b34801561085557600080fd5b506000546201000090046001600160a01b031661046f565b34801561087957600080fd5b5061046f6108883660046147dc565b6124b8565b34801561089957600080fd5b506004546005546006546109069260ff8082169363ffffffff6101008404811694600160281b85049091169361ffff600160481b8204811694600160581b83049091169364ffffffffff600160681b8404811694600160901b850490911693600160b81b9004909216918a565b6040516103f49a99989796959493929190614b94565b34801561092857600080fd5b506103e8610937366004614836565b6124d7565b34801561094857600080fd5b50610442612502565b34801561095d57600080fd5b5061041f61251a565b34801561097257600080fd5b506011546106a990640100000000900461ffff1681565b34801561099557600080fd5b5061041f600081565b3480156109aa57600080fd5b5061049a6109b9366004614c1a565b6125a5565b3480156109ca57600080fd5b5061049a612622565b3480156109df57600080fd5b5061049a6109ee366004614c48565b6126ea565b3480156109ff57600080fd5b5061041f612823565b348015610a1457600080fd5b50610442610a233660046145bc565b612892565b61049a610a36366004614c76565b61294b565b348015610a4757600080fd5b5061049a612995565b348015610a5c57600080fd5b50600f5461046f906001600160a01b031681565b348015610a7c57600080fd5b5061041f62093a8081565b348015610a9357600080fd5b50610442610aa23660046145bc565b612b72565b348015610ab357600080fd5b5061049a610ac2366004614d93565b612bce565b348015610ad357600080fd5b5061041f610ae23660046145bc565b612cc3565b348015610af357600080fd5b5061049a610b02366004614761565b612cda565b61049a610b15366004614df6565b612d30565b348015610b2657600080fd5b5061049a610b35366004614836565b612e6a565b348015610b4657600080fd5b5060035461046f906001600160a01b031681565b348015610b6657600080fd5b506103e8610b75366004614e83565b612e90565b61049a610b88366004614df6565b612ecd565b348015610b9957600080fd5b50600e5461046f906001600160a01b031681565b348015610bb957600080fd5b5061049a612ff3565b348015610bce57600080fd5b5061049a610bdd366004614761565b6130fe565b348015610bee57600080fd5b5061041f600080516020615e8383398151915281565b6000610c0f82613174565b80610c1e5750610c1e826131c2565b80610c3957506001600160e01b0319821663152a902d60e11b145b92915050565b6060610c496131e7565b6002018054610c5790614eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8390614eb1565b8015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050905090565b6000610ce58261320b565b610d02576040516333d1c03960e21b815260040160405180910390fd5b610d0a6131e7565b60009283526006016020525060409020546001600160a01b031690565b610d3382826001613247565b5050565b600080516020615ec383398151915254610100900460ff16610d6c57600080516020615ec38339815191525460ff1615610d70565b303b155b610de75760405162461bcd60e51b815260206004820152603760248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f20697320616c726561647920696e697469616c697a656400000000000000000060648201526084015b60405180910390fd5b600080516020615ec383398151915254610100900460ff16158015610e2357600080516020615ec3833981519152805461ffff19166101011790555b600054610100900460ff1615808015610e435750600054600160ff909116105b80610e5d5750303b158015610e5d575060005460ff166001145b610ec05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dde565b6000805460ff191660011790558015610ee3576000805461ff0019166101001790555b826000819003610f065760405163c52a9bd360e01b815260040160405180910390fd5b610f92610f1660208b018b614ee5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f589250505060408c018c614ee5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132fc92505050565b610f9d60008761333a565b610fb5600080516020615e838339815191528761333a565b60005b8181101561101057610ffe600080516020615ea3833981519152878784818110610fe457610fe4614f2b565b9050602002016020810190610ff99190614761565b61333a565b8061100881614f57565b915050610fb8565b50600380546001600160a01b0319166001600160a01b038c161790558860076110398282615230565b5061104c905060a0880160808901614819565b600f805461ffff92909216600160a01b0261ffff60a01b1990921691909117905561108461107f368a90038a018a615402565b613344565b87600461109182826154f2565b505060405163bacf749160e01b815273d47d5f3cb05d4fc80b8b8a828e0626bc3a02c44e9063bacf7491906110cc908a908e90600401615763565b6040805180830381865af41580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c9190615837565b600f80546001600160a01b039283166001600160a01b031991821617909155600e8054939092169216919091179055600c54156112f5576112f56007600501805480602002602001604051908101604052809291908181526020016000905b8282101561121757838290600052602060002001805461118a90614eb1565b80601f01602080910402602001604051908101604052809291908181526020018280546111b690614eb1565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b50505050508152602001906001019061116b565b505050506007600601805480602002602001604051908101604052809291908181526020016000905b828210156112ec57838290600052602060002001805461125f90614eb1565b80601f016020809104026020016040519081016040528092919081815260200182805461128b90614eb1565b80156112d85780601f106112ad576101008083540402835291602001916112d8565b820191906000526020600020905b8154815290600101906020018083116112bb57829003601f168201915b505050505081526020019060010190611240565b50505050612bce565b6113258585600081811061130b5761130b614f2b565b90506020020160208101906113209190614761565b6135ff565b50801561136c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50801561138c57600080516020615ec3833981519152805461ff00191690555b5050505050505050565b60006113a13361219d565b9050806000036113c457604051631b33a9b960e11b815260040160405180910390fd5b3360009081526014602052604081206113dc916144f4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611429576040519150601f19603f3d011682016040523d82523d6000602084013e61142e565b606091505b50509050806114715760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610dde565b604080513381526001600160a01b03851660208201529081018390527f6d8c333bddf62a96b71c9e7d33a50120f1a1a46c94289b529f813a6ec3fbc488906060015b60405180910390a1505050565b6000806114cb6131e7565b600101546114d76131e7565b540303919050565b60006114ea8261365a565b9050836001600160a01b0316816001600160a01b03161461151d5760405162a1148160e81b815260040160405180910390fd5b600080611529846136ff565b9150915061154e81876115393390565b6001600160a01b039081169116811491141790565b6115795761155c8633612e90565b61157957604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166115a057604051633a954ecd60e21b815260040160405180910390fd5b80156115ab57600082555b6115b36131e7565b6001600160a01b03871660009081526005919091016020526040902080546000190190556115df6131e7565b6001600160a01b0386166000908152600591909101602052604090208054600101905561162c85611611888287613727565b600160e11b174260a01b176001600160a01b03919091161790565b6116346131e7565b60008681526004919091016020526040812091909155600160e11b841690036116aa57600184016116636131e7565b6000828152600491909101602052604081205490036116a8576116846131e7565b5481146116a857836116946131e7565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b61170c600080516020615e83833981519152336124d7565b15801561172e575061172c600080516020615ea3833981519152336124d7565b155b1561174b576040516282b42960e81b815260040160405180910390fd5b600360009054906101000a90046001600160a01b03166001600160a01b031663becee8146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190615866565b6004546117dd9190600160681b900464ffffffffff1661587f565b42106117fc5760405163c52a9bd360e01b815260040160405180910390fd5b61180e61107f36839003830183615402565b80600461181b82826154f2565b9050507f2b4af2afe566e73a74e66c021d2430e915158858051a2986507682f58300df0f600460405161184e9190615892565b60405180910390a150565b600f546000908190600160a01b900461ffff1661187861271085615925565b61188291906150d3565b600f546001600160a01b03169590945092505050565b6118b0600080516020615ea3833981519152336124d7565b6118cc576040516282b42960e81b815260040160405180910390fd5b60045460115461ffff600160481b9092048216916118f591849164010000000090910416615947565b61ffff16111561191857604051630f196e0f60e21b815260040160405180910390fd5b80601160048282829054906101000a900461ffff166119379190615947565b92506101000a81548161ffff021916908361ffff16021790555061195f338261ffff1661374a565b50565b6000828152600160208190526040909120015461197e816138a4565b61198883836138ae565b505050565b6119a5600080516020615e83833981519152336124d7565b1580156119c757506119c5600080516020615ea3833981519152336124d7565b155b156119e4576040516282b42960e81b815260040160405180910390fd5b6127108161ffff161115611a0b5760405163134aed6960e21b815260040160405180910390fd5b600f805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b6001600160a01b0381163314611a9d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dde565b610d3382826138d0565b600080611ab6868686866138f2565b6000908152601060205260409020549150505b949350505050565b6119888383836040518060200160405280600081525061294b565b611b04600080516020615e83833981519152336124d7565b158015611b265750611b24600080516020615ea3833981519152336124d7565b155b15611b43576040516282b42960e81b815260040160405180910390fd5b600f54600160b01b900460ff1680611b6a5750600454600160681b900464ffffffffff1642105b15611b885760405163b7b2409760e01b815260040160405180910390fd5b600454611ba79062093a8090600160681b900464ffffffffff16615962565b421015611bc75760405163c52a9bd360e01b815260040160405180910390fd5b611bcf6139d1565b8163ffffffff16111580611bf4575060045463ffffffff610100909104811690821610155b15611c125760405163c52a9bd360e01b815260040160405180910390fd5b600454600160281b900463ffffffff1615801590611c44575060045460115463ffffffff600160281b90920482169116105b15611c5157611c5161237c565b6004805464ffffffff00191661010063ffffffff8416908102919091179091556040519081527fdf59cbfdd7be2f761f91be74e6a7ae19c163c601feb064f51cc62e387a33412a9060200161184e565b600081611cad8161320b565b611cca57604051638698bf3760e01b815260040160405180910390fd5b6000611cd584613a09565b6060908101516040513090921b6001600160601b031916602083015260e881901b6001600160e81b0319166034830152603782018690529150605701604051602081830303815290604052805190602001209250505b50919050565b6000610c398261365a565b600780546008805460809290921b9291611d5590614eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8190614eb1565b8015611dce5780601f10611da357610100808354040283529160200191611dce565b820191906000526020600020905b815481529060010190602001808311611db157829003601f168201915b505050505090806002018054611de390614eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054611e0f90614eb1565b8015611e5c5780601f10611e3157610100808354040283529160200191611e5c565b820191906000526020600020905b815481529060010190602001808311611e3f57829003601f168201915b505050505090806003018054611e7190614eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9d90614eb1565b8015611eea5780601f10611ebf57610100808354040283529160200191611eea565b820191906000526020600020905b815481529060010190602001808311611ecd57829003601f168201915b5050505050905084565b60006001600160a01b038216611f1d576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03611f2d6131e7565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b611f64613a80565b611f6e60006135ff565b565b600f54600160b01b900460ff1680611f975750600454600160681b900464ffffffffff1642105b15611fb55760405163b7b2409760e01b815260040160405180910390fd5b6000611fc3888887876138f2565b60035460405163cb3f5efd60e01b81529192506001600160a01b03169063cb3f5efd90611ff89084908790879060040161599e565b60006040518083038186803b15801561201057600080fd5b505afa158015612024573d6000803e3d6000fd5b50505060008281526010602052604090205461ffff808816925061204a91908916615962565b11156120695760405163342e754760e21b815260040160405180910390fd5b60045460115463ffffffff600160281b90920482169161208f9161ffff8a1691166159b8565b63ffffffff1611156120b457604051630f196e0f60e21b815260040160405180910390fd5b600454610100900463ffffffff1661ffff87166120cf6139d1565b6120d99190615962565b11156120f857604051630f196e0f60e21b815260040160405180910390fd5b6000818152601060205260408120805461ffff8916929061211a908490615962565b90915550506011805461ffff8816919060009061213e90849063ffffffff166159b8565b92506101000a81548163ffffffff021916908363ffffffff16021790555061138c878761ffff166001613ae1565b6014602052816000526040600020818154811061218857600080fd5b90600052602060002001600091509150505481565b600454600090600160901b900464ffffffffff16421080156121bf5750601254155b156121cc57506000919050565b6001600160a01b03821660009081526014602052604081205490036121f357506000919050565b600080601254116122065760065461220a565b6012545b90506000805b6001600160a01b0385166000908152601460205260409020548110156122cf576001600160a01b038516600090815260146020526040902080548491908390811061225d5761225d614f2b565b906000526020600020015411156122bd576001600160a01b038516600090815260146020526040902080548491908390811061229b5761229b614f2b565b90600052602060002001546122b0919061587f565b6122ba9083615962565b91505b806122c781614f57565b915050612210565b509392505050565b8051602081830181018051601582529282019190930120915280546122fb90614eb1565b80601f016020809104026020016040519081016040528092919081815260200182805461232790614eb1565b80156123745780601f1061234957610100808354040283529160200191612374565b820191906000526020600020905b81548152906001019060200180831161235757829003601f168201915b505050505081565b612394600080516020615e83833981519152336124d7565b1580156123b657506123b4600080516020615ea3833981519152336124d7565b155b156123d3576040516282b42960e81b815260040160405180910390fd5b600f54600160b01b900460ff16806123fa5750600454600160681b900464ffffffffff1642105b156124185760405163b7b2409760e01b815260040160405180910390fd5b600454600160901b900464ffffffffff1642101561244957604051630ca00c6160e01b815260040160405180910390fd5b60045460115463ffffffff600160281b909204821691161015611f6e576011546004805468ffffffff0000000000191663ffffffff909216600160281b029190911790556040517f31d3f5c743c51d955be3eb25850b4674ff70cecbf66917bf5798402e79f0d87590600090a1565b60008281526002602052604081206124d09083613bc0565b9392505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606061250c6131e7565b6003018054610c5790614eb1565b600060125460001461252d575060125490565b6040516373a5726b60e01b81526004808201527319bc0b68a262a0f56a812bd0cabe1466fc1ca875906373a5726b90602401602060405180830381865af415801561257c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a09190615866565b905090565b806125ae6131e7565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61262a613a80565b600454600160901b900464ffffffffff1642101561265b57604051630ca00c6160e01b815260040160405180910390fd5b6000612676600080516020615e8383398151915260006124b8565b90506126836000336138ae565b61269b600080516020615e83833981519152336138ae565b6126b3600080516020615e83833981519152826138d0565b6126be6000826138d0565b6040517f6040e61f478cab6309d426e690027716f353f33e0c0a2e00637aad97a55aa40a90600090a150565b600360009054906101000a90046001600160a01b03166001600160a01b0316637a69a41b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561273d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276191906159d5565b6001600160a01b0316336001600160a01b031614612791576040516282b42960e81b815260040160405180910390fd5b60045460115461ffff600160581b9092048216916127b9918491600160301b90910416615947565b61ffff1611156127dc5760405163342e754760e21b815260040160405180910390fd5b80601160068282829054906101000a900461ffff166127fb9190615947565b92506101000a81548161ffff021916908361ffff160217905550610d33828261ffff1661374a565b600454600090600160b81b900460ff16158061284e5750600454600160901b900464ffffffffff1642105b806128595750601354155b156128645750600090565b60006012546000036128785760065461287c565b6012545b90508060135461288c91906150d3565b91505090565b60608161289e8161320b565b6128bb57604051638698bf3760e01b815260040160405180910390fd5b6003546007546001600160a01b039091169063e6ecd1bb9060801b856128e081611ca1565b6040516001600160e01b031960e086901b16815261290693929190600b906004016159f2565b600060405180830381865afa158015612923573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124d09190810190615af6565b6129568484846114df565b6001600160a01b0383163b1561298f5761297284848484613bcc565b61298f576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6129ad600080516020615e83833981519152336124d7565b1580156129cf57506129cd600080516020615ea3833981519152336124d7565b155b156129ec576040516282b42960e81b815260040160405180910390fd5b600060045460ff166003811115612a0557612a05614b5c565b1480612a275750600360045460ff166003811115612a2557612a25614b5c565b145b15612a455760405163c52a9bd360e01b815260040160405180910390fd5b600454600160901b900464ffffffffff16421015612a7657604051630ca00c6160e01b815260040160405180910390fd5b601354600003612a995760405163c52a9bd360e01b815260040160405180910390fd5b6000601254600003612aad57600654612ab1565b6012545b9050600081601354612ac391906150d3565b60006013819055600e5460405192935090916001600160a01b039091169083908381818185875af1925050503d8060008114612b1b576040519150601f19603f3d011682016040523d82523d6000602084013e612b20565b606091505b5050905080612b42576040516307a4ced160e51b815260040160405180910390fd5b6040518281527f89b30d91afe451fad93250252429a175014da30702be5cdcba095813737baabc906020016114b3565b606081612b7e8161320b565b612b9b57604051638698bf3760e01b815260040160405180910390fd5b6003546040516310773d1560e21b81526001600160a01b03909116906341dcf45490612906908690600a90600401615b3e565b612be6600080516020615e83833981519152336124d7565b158015612c085750612c06600080516020615ea3833981519152336124d7565b155b15612c25576040516282b42960e81b815260040160405180910390fd5b8051825114612c475760405163c52a9bd360e01b815260040160405180910390fd5b60005b825181101561198857818181518110612c6557612c65614f2b565b60200260200101516015848381518110612c8157612c81614f2b565b6020026020010151604051612c969190615bd1565b90815260200160405180910390209081612cb09190615bed565b5080612cbb81614f57565b915050612c4a565b6000818152600260205260408120610c3990613cb4565b612cf2600080516020615e83833981519152336124d7565b612d0e576040516282b42960e81b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600f54600160b01b900460ff1680612d575750600454600160681b900464ffffffffff1642105b15612d755760405163b7b2409760e01b815260040160405180910390fd5b60115460009063ffffffff16612d896139d1565b612d93919061587f565b600454909150600090612dba9063ffffffff600160281b8204811691610100900416615cac565b63ffffffff16905080612dd161ffff881684615962565b1115612df057604051630f196e0f60e21b815260040160405180910390fd5b60035460405163031ffc5160e51b81526001600160a01b03909116906363ff8a2090612e2a908b908b908b908b908b908b90600401615cc9565b60006040518083038186803b158015612e4257600080fd5b505afa158015612e56573d6000803e3d6000fd5b5050505061138c878761ffff166000613ae1565b60008281526001602081905260409091200154612e86816138a4565b61198883836138d0565b6000612e9a6131e7565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b600f54600160b01b900460ff1680612ef45750600454600160681b900464ffffffffff1642105b15612f125760405163b7b2409760e01b815260040160405180910390fd5b600360045460ff166003811115612f2b57612f2b614b5c565b14612f495760405163c52a9bd360e01b815260040160405180910390fd5b600454600160901b900464ffffffffff164210612f795760405163b7b2409760e01b815260040160405180910390fd5b60035460405163031ffc5160e51b81526001600160a01b03909116906363ff8a2090612fb390899089908990899089908990600401615cc9565b60006040518083038186803b158015612fcb57600080fd5b505afa158015612fdf573d6000803e3d6000fd5b505050506116ec858561ffff166000613ae1565b61300b600080516020615e83833981519152336124d7565b15801561302d575061302b600080516020615ea3833981519152336124d7565b155b1561304a576040516282b42960e81b815260040160405180910390fd5b600f54600160b01b900460ff16806130715750600454600160681b900464ffffffffff1642105b1561308f5760405163b7b2409760e01b815260040160405180910390fd5b600454600160901b900464ffffffffff164210156130c057604051630ca00c6160e01b815260040160405180910390fd5b600f805460ff60b01b1916600160b01b1790556040517f0734f1adc097bd79a3404c9d255d53ced9e8fef12f9718038823aa8265e51c3490600090a1565b613106613a80565b6001600160a01b03811661316b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dde565b61195f816135ff565b60006301ffc9a760e01b6001600160e01b0319831614806131a557506380ac58cd60e01b6001600160e01b03198316145b80610c395750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b03198216635a05180f60e01b1480610c395750610c3982613cbe565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4090565b60006132156131e7565b5482108015610c395750600160e01b61322c6131e7565b60008481526004919091016020526040902054161592915050565b600061325283611d31565b9050811561329157336001600160a01b03821614613291576132748133612e90565b613291576040516367d9dca160e11b815260040160405180910390fd5b8361329a6131e7565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b600080516020615ec383398151915254610100900460ff166133305760405162461bcd60e51b8152600401610dde90615d14565b610d338282613cf3565b610d3382826138ae565b60a0810151600454600160681b900464ffffffffff9081169116148015906133f65750600360009054906101000a90046001600160a01b03166001600160a01b031663becee8146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133de9190615866565b6133e89042615962565b8160a0015164ffffffffff16105b156134145760405163c52a9bd360e01b815260040160405180910390fd5b60038151600381111561342957613429614b5c565b0361348d5760c081015164ffffffffff16158061344f5750604081015163ffffffff1615155b806134635750602081015163ffffffff1615155b8061346f57508060e001515b1561348d5760405163c52a9bd360e01b815260040160405180910390fd5b6000815160038111156134a2576134a2614b5c565b03613514578060e00151806134c1575060c081015164ffffffffff1615155b156134df5760405163c52a9bd360e01b815260040160405180910390fd5b806020015163ffffffff16816040015163ffffffff1611156135145760405163c52a9bd360e01b815260040160405180910390fd5b60028151600381111561352957613529614b5c565b0361195f578060a0015164ffffffffff168160c0015164ffffffffff16116135645760405163c52a9bd360e01b815260040160405180910390fd5b8061012001518161010001511161358e5760405163c52a9bd360e01b815260040160405180910390fd5b611c208160a001518260c001516135a59190615d68565b64ffffffffff1611156135cb5760405163c52a9bd360e01b815260040160405180910390fd5b806020015163ffffffff16816040015163ffffffff161061195f5760405163c52a9bd360e01b815260040160405180910390fd5b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60006136646131e7565b600083815260049190910160205260408120549150600160e01b821690036136e657806000036136e1576136966131e7565b5482106136b657604051636f96cda160e11b815260040160405180910390fd5b6136be6131e7565b6000199092016000818152600493909301602052604090922054905080156136b6575b919050565b604051636f96cda160e11b815260040160405180910390fd5b600080600061370c6131e7565b60009485526006016020525050604090912080549092909150565b600060e882811c9061373a868684613d66565b62ffffff16901b95945050505050565b60006137546131e7565b54905060008290036137795760405163b562e8dd60e01b815260040160405180910390fd5b68010000000000000001820261378d6131e7565b6001600160a01b03851660009081526005919091016020526040812080549092019091556137df9084906137c2908281613727565b6001851460e11b174260a01b176001600160a01b03919091161790565b6137e76131e7565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461387157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613839565b508160000361389257604051622e076360e81b815260040160405180910390fd5b8061389b6131e7565b55506119889050565b61195f8133613d8d565b6138b88282613de6565b60008281526002602052604090206119889082613e51565b6138da8282613e66565b60008281526002602052604090206119889082613ecd565b6040516001600160f81b031960208201526001600160801b0319851660218201526001600160601b0319606085901b1660318201526001600160f01b031960f084901b1660458201526001600160e01b031960e083901b16604782015246604b8201526000906139c890606b01604051602081830303815290604052805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b95945050505050565b60115460009061ffff600160301b82048116916401000000009004166139f56114c0565b6139ff919061587f565b6125a0919061587f565b604080516080810182526000808252602082018190529181018290526060810191909152610c39613a398361365a565b604080516080810182526001600160a01b038316815260a083901c6001600160401b03166020820152600160e01b831615159181019190915260e89190911c606082015290565b6000546001600160a01b0362010000909104163314611f6e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610dde565b6000613aeb61251a565b90506000613af982856150d3565b905080341015613b1c5760405163078d696560e31b815260040160405180910390fd5b600454600160b81b900460ff1615613b4257613b3b8585858585613ee2565b5050505050565b600e546040516000916001600160a01b03169034908381818185875af1925050503d8060008114613b8f576040519150601f19603f3d011682016040523d82523d6000602084013e613b94565b606091505b5050905080613bb6576040516307a4ced160e51b815260040160405180910390fd5b6116ec868661374a565b60006124d0838361417b565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290613c01903390899088908890600401615d86565b6020604051808303816000875af1925050508015613c3c575060408051601f3d908101601f19168201909252613c3991810190615dc3565b60015b613c9a573d808015613c6a576040519150601f19603f3d011682016040523d82523d6000602084013e613c6f565b606091505b508051600003613c92576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611ac9565b6000610c39825490565b60006001600160e01b03198216637965db0b60e01b1480610c3957506301ffc9a760e01b6001600160e01b0319831614610c39565b600080516020615ec383398151915254610100900460ff16613d275760405162461bcd60e51b8152600401610dde90615d14565b81613d306131e7565b60020190613d3e9082615bed565b5080613d486131e7565b60030190613d569082615bed565b506000613d616131e7565b555050565b60006001600160a01b038416613d8657613d7f836141a5565b90506124d0565b5092915050565b613d9782826124d7565b610d3357613da481614205565b613daf836020614217565b604051602001613dc0929190615de0565b60408051601f198184030181529082905262461bcd60e51b8252610dde916004016145a9565b613df082826124d7565b610d335760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b60006124d0836001600160a01b0384166143b2565b613e7082826124d7565b15610d335760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006124d0836001600160a01b038416614401565b82613f855760115460009063ffffffff16613efb6139d1565b613f05919061587f565b600454909150600090613f2c9063ffffffff600160281b8204811691610100900416615cac565b63ffffffff1690506012546000148015613f4e575080613f4c8784615962565b145b15613f825760128490556040517f0734f1adc097bd79a3404c9d255d53ced9e8fef12f9718038823aa8265e51c3490600090a15b50505b34811060008115613f9d57613f9a833461587f565b90505b601254158015613fae575060065484115b15614050576001600160a01b0387166000908152601460205260409020613fd58286615962565b815460018181018455600093845260208420909101919091559091505b86811015614037576001600160a01b0388166000908152601460209081526040822080546001810182559083529120018590558061402f81614f57565b915050613ff2565b50856013600082825461404a9190615962565b90915550505b80156140c157604051600090339083908381818185875af1925050503d8060008114614098576040519150601f19603f3d011682016040523d82523d6000602084013e61409d565b606091505b50509050806140bf576040516307a4ced160e51b815260040160405180910390fd5b505b6012541515806140d2575060065484145b806140ed5750600454600160901b900464ffffffffff164210155b1561416857600e546040516000916001600160a01b03169085908381818185875af1925050503d806000811461413f576040519150601f19603f3d011682016040523d82523d6000602084013e614144565b606091505b5050905080614166576040516307a4ced160e51b815260040160405180910390fd5b505b614172878761374a565b50505050505050565b600082600001828154811061419257614192614f2b565b9060005260206000200154905092915050565b600042446141b460014361587f565b6040805160208101949094528301919091524060608083019190915283901b6001600160601b03191660808201526094016040516020818303038152906040528051906020012060e81c9050919050565b6060610c396001600160a01b03831660145b606060006142268360026150d3565b614231906002615962565b6001600160401b0381111561424857614248614a34565b6040519080825280601f01601f191660200182016040528015614272576020820181803683370190505b509050600360fc1b8160008151811061428d5761428d614f2b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106142bc576142bc614f2b565b60200101906001600160f81b031916908160001a90535060006142e08460026150d3565b6142eb906001615962565b90505b6001811115614363576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061431f5761431f614f2b565b1a60f81b82828151811061433557614335614f2b565b60200101906001600160f81b031916908160001a90535060049490941c9361435c81615e55565b90506142ee565b5083156124d05760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dde565b60008181526001830160205260408120546143f957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c39565b506000610c39565b600081815260018301602052604081205480156144ea57600061442560018361587f565b85549091506000906144399060019061587f565b905081811461449e57600086600001828154811061445957614459614f2b565b906000526020600020015490508087600001848154811061447c5761447c614f2b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806144af576144af615e6c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610c39565b6000915050610c39565b508054600082559060005260206000209081019061195f91905b80821115614522576000815560010161450e565b5090565b6001600160e01b03198116811461195f57600080fd5b60006020828403121561454e57600080fd5b81356124d081614526565b60005b8381101561457457818101518382015260200161455c565b50506000910152565b60008151808452614595816020860160208601614559565b601f01601f19169290920160200192915050565b6020815260006124d0602083018461457d565b6000602082840312156145ce57600080fd5b5035919050565b6001600160a01b038116811461195f57600080fd5b80356136e1816145d5565b6000806040838503121561460857600080fd5b8235614613816145d5565b946020939093013593505050565b60006101408284031215611d2b57600080fd5b600060a08284031215611d2b57600080fd5b60008083601f84011261465857600080fd5b5081356001600160401b0381111561466f57600080fd5b6020830191508360208260051b850101111561468a57600080fd5b9250929050565b60008060008060008060006101e0888a0312156146ad57600080fd5b87356146b8816145d5565b965060208801356001600160401b03808211156146d457600080fd5b9089019060e0828c0312156146e857600080fd5b8197506146f88b60408c01614621565b96506101808a013591508082111561470f57600080fd5b61471b8b838c01614634565b955061472a6101a08b016145ea565b94506101c08a013591508082111561474157600080fd5b5061474e8a828b01614646565b989b979a50959850939692959293505050565b60006020828403121561477357600080fd5b81356124d0816145d5565b60008060006060848603121561479357600080fd5b833561479e816145d5565b925060208401356147ae816145d5565b929592945050506040919091013590565b600061014082840312156147d257600080fd5b6124d08383614621565b600080604083850312156147ef57600080fd5b50508035926020909101359150565b61ffff8116811461195f57600080fd5b80356136e1816147fe565b60006020828403121561482b57600080fd5b81356124d0816147fe565b6000806040838503121561484957600080fd5b82359150602083013561485b816145d5565b809150509250929050565b6001600160801b03198116811461195f57600080fd5b63ffffffff8116811461195f57600080fd5b80356136e18161487c565b600080600080608085870312156148af57600080fd5b84356148ba81614866565b935060208501356148ca816145d5565b925060408501356148da816147fe565b915060608501356148ea8161487c565b939692955090935050565b60006020828403121561490757600080fd5b81356124d08161487c565b6001600160801b031985168152608060208201526000614935608083018661457d565b8281036040840152614947818661457d565b9050828103606084015261495b818561457d565b979650505050505050565b60008083601f84011261497857600080fd5b5081356001600160401b0381111561498f57600080fd5b60208301915083602082850101111561468a57600080fd5b600080600080600080600060c0888a0312156149c257600080fd5b87356149cd81614866565b965060208801356149dd816145d5565b955060408801356149ed816147fe565b945060608801356149fd816147fe565b93506080880135614a0d8161487c565b925060a08801356001600160401b03811115614a2857600080fd5b61474e8a828b01614966565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b0381118282101715614a6d57614a6d614a34565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614a9b57614a9b614a34565b604052919050565b60006001600160401b03821115614abc57614abc614a34565b50601f01601f191660200190565b6000614add614ad884614aa3565b614a73565b9050828152838383011115614af157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614b1957600080fd5b6124d083833560208501614aca565b600060208284031215614b3a57600080fd5b81356001600160401b03811115614b5057600080fd5b611ac984828501614b08565b634e487b7160e01b600052602160045260246000fd5b60048110614b9057634e487b7160e01b600052602160045260246000fd5b9052565b6101408101614ba3828d614b72565b63ffffffff9a8b1660208301529890991660408a015261ffff96871660608a015294909516608088015264ffffffffff92831660a0880152911660c0860152151560e085015261010084019190915261012090920191909152919050565b801515811461195f57600080fd5b80356136e181614c01565b60008060408385031215614c2d57600080fd5b8235614c38816145d5565b9150602083013561485b81614c01565b60008060408385031215614c5b57600080fd5b8235614c66816145d5565b9150602083013561485b816147fe565b60008060008060808587031215614c8c57600080fd5b8435614c97816145d5565b93506020850135614ca7816145d5565b92506040850135915060608501356001600160401b03811115614cc957600080fd5b8501601f81018713614cda57600080fd5b614ce987823560208401614aca565b91505092959194509250565b600082601f830112614d0657600080fd5b813560206001600160401b0380831115614d2257614d22614a34565b8260051b614d31838201614a73565b9384528581018301938381019088861115614d4b57600080fd5b84880192505b85831015614d8757823584811115614d695760008081fd5b614d778a87838c0101614b08565b8352509184019190840190614d51565b98975050505050505050565b60008060408385031215614da657600080fd5b82356001600160401b0380821115614dbd57600080fd5b614dc986838701614cf5565b93506020850135915080821115614ddf57600080fd5b50614dec85828601614cf5565b9150509250929050565b60008060008060008060a08789031215614e0f57600080fd5b8635614e1a81614866565b95506020870135614e2a816145d5565b94506040870135614e3a816147fe565b93506060870135614e4a8161487c565b925060808701356001600160401b03811115614e6557600080fd5b614e7189828a01614966565b979a9699509497509295939492505050565b60008060408385031215614e9657600080fd5b8235614ea1816145d5565b9150602083013561485b816145d5565b600181811c90821680614ec557607f821691505b602082108103611d2b57634e487b7160e01b600052602260045260246000fd5b6000808335601e19843603018112614efc57600080fd5b8301803591506001600160401b03821115614f1657600080fd5b60200191503681900382131561468a57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614f6957614f69614f41565b5060010190565b60008135610c3981614866565b5b81811015610d335760008155600101614f7e565b601f82111561198857806000526020600020601f840160051c81016020851015614fb95750805b613b3b601f850160051c830182614f7d565b6001600160401b03831115614fe257614fe2614a34565b614ff683614ff08354614eb1565b83614f92565b6000601f84116001811461502a57600085156150125750838201355b600019600387901b1c1916600186901b178355613b3b565b600083815260209020601f19861690835b8281101561505b578685013582556020948501946001909201910161503b565b50868210156150785760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000808335601e198436030181126150a157600080fd5b8301803591506001600160401b038211156150bb57600080fd5b6020019150600581901b360382131561468a57600080fd5b8082028115828204841417610c3957610c39614f41565b600160401b8211156150fe576150fe614a34565b805482825580831015611988578160005260206000206001840160011c810160108560041b168015615141576000198083018054828460200360031b1c16815550505b50613b3b6001840160011c830182614f7d565b600160401b83111561516857615168614a34565b8054838255808410156151f1576000828152602081208581019083015b808210156151ed576151978254614eb1565b80156151e157601f808211600181146151b2578585556151de565b6000858152602090206151cf83850160051c820160018301614f7d565b50600085815260208120818755555b50505b50600182019150615185565b5050505b5060008181526020812083915b858110156116ec576152108386614ee5565b61521b818386614fcb565b505060209290920191600191820191016151fe565b813561523b81614866565b8060801c6001600160801b0319835416178255506001602061525f81850185614ee5565b61526c8183868801614fcb565b5050600261527d6040860186614ee5565b61528a8183858901614fcb565b50506152996060860186614ee5565b6152a7818360038901614fcb565b505060048085016152bb608088018861508a565b6001600160401b038111156152d2576152d2614a34565b6152dc81846150ea565b6000928352602083209281881c905b8181101561534b576000805b8881101561533f5761533261531461530e88614f70565b60801c90565b6001600160801b03908116838b1b60031b90811b91901b1984161790565b958a019591508a016152f7565b508582015588016152eb565b506001198216955085820386831461538b576000805b828110156153855761537861531461530e88614f70565b958a019591508a01615361565b50858301555b5050505050505050506153a160a083018361508a565b6153af818360058601615154565b50506153be60c083018361508a565b61298f818360068601615154565b6004811061195f57600080fd5b80356136e1816153cc565b64ffffffffff8116811461195f57600080fd5b80356136e1816153e4565b6000610140828403121561541557600080fd5b61541d614a4a565b615426836153d9565b81526154346020840161488e565b60208201526154456040840161488e565b60408201526154566060840161480e565b60608201526154676080840161480e565b608082015261547860a084016153f7565b60a082015261548960c084016153f7565b60c082015261549a60e08401614c0f565b60e08201526101008381013590820152610120928301359281019290925250919050565b60008135610c398161487c565b60008135610c39816147fe565b60008135610c39816153e4565b60008135610c3981614c01565b81356154fd816153cc565b6004811061551b57634e487b7160e01b600052602160045260246000fd5b60ff1982541660ff821681178355505061555661553a602084016154be565b825464ffffffff00191660089190911b64ffffffff0016178255565b615589615565604084016154be565b825468ffffffff0000000000191660289190911b68ffffffff000000000016178255565b6155c0615598606084016154cb565b82546affff000000000000000000191660489190911b6affff00000000000000000016178255565b6155ef6155cf608084016154cb565b82805461ffff60581b191660589290921b61ffff60581b16919091179055565b6156246155fe60a084016154d8565b82805464ffffffffff60681b191660689290921b64ffffffffff60681b16919091179055565b61565961563360c084016154d8565b82805464ffffffffff60901b191660909290921b64ffffffffff60901b16919091179055565b61568661566860e084016154e5565b82805460ff60b81b191691151560b81b60ff60b81b16919091179055565b610100820135600182015561012082013560028201555050565b6000808335601e198436030181126156b757600080fd5b83016020810192503590506001600160401b038111156156d657600080fd5b8060051b360382131561468a57600080fd5b8183526000602080850194508260005b8581101561572657813561570b816145d5565b6001600160a01b0316875295820195908201906001016156f8565b509495945050505050565b81835260006001600160fb1b0383111561574a57600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061577384856156a0565b60a0604085015261578860e0850182846156e8565b91505061579860208601866156a0565b603f19808685030160608701526157b0848385615731565b93506157bf60408901896156a0565b93509150808685030160808701526157d88484846156e8565b93506157e760608901896156a0565b93509150808685030160a087015250615801838383615731565b925050506080850135615813816147fe565b61ffff1660c08401526001600160a01b039390931660209092019190915250919050565b6000806040838503121561584a57600080fd5b8251615855816145d5565b602084015190925061485b816145d5565b60006020828403121561587857600080fd5b5051919050565b81810381811115610c3957610c39614f41565b81546101408201906158a78360ff8316614b72565b63ffffffff600882901c81166020850152602882901c16604084015261ffff604882901c81166060850152605882901c16608084015264ffffffffff606882901c811660a0850152609082901c1660c084015260ff60b882901c16151560e08401525060018301546101008301526002909201546101209091015290565b60008261594257634e487b7160e01b600052601260045260246000fd5b500490565b61ffff818116838216019080821115613d8657613d86614f41565b80820180821115610c3957610c39614f41565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8381526040602082015260006139c8604083018486615975565b63ffffffff818116838216019080821115613d8657613d86614f41565b6000602082840312156159e757600080fd5b81516124d0816145d5565b600060808083016001600160801b031980891685526020888187015260408881880152846060880152838854615a2c818790815260200190565b60008b81526020812097509092505b60018281830110615a4c5750615a76565b87546001600160801b0319818b1b8116865290881616868501529096019591830191600201615a3b565b95549581811015615a98576001600160801b031987891b168352918401916001015b81811015615ab4576001600160801b0319878716168352918401915b50909c9b505050505050505050505050565b6000615ad4614ad884614aa3565b9050828152838383011115615ae857600080fd5b6124d0836020830184614559565b600060208284031215615b0857600080fd5b81516001600160401b03811115615b1e57600080fd5b8201601f81018413615b2f57600080fd5b611ac984825160208401615ac6565b8281526000602060408184015260008454615b5881614eb1565b8060408701526060600180841660008114615b7a5760018114615b9457615bc2565b60ff1985168984015283151560051b890183019550615bc2565b896000528660002060005b85811015615bba5781548b8201860152908301908801615b9f565b8a0184019650505b50939998505050505050505050565b60008251615be3818460208701614559565b9190910192915050565b81516001600160401b03811115615c0657615c06614a34565b615c1a81615c148454614eb1565b84614f92565b602080601f831160018114615c4f5760008415615c375750858301515b600019600386901b1c1916600185901b1785556116ec565b600085815260208120601f198616915b82811015615c7e57888601518255948401946001909101908401615c5f565b5085821015615c9c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff828116828216039080821115613d8657613d86614f41565b6001600160801b0319871681526001600160a01b038616602082015261ffff8516604082015263ffffffff8416606082015260a060808201819052600090614d879083018486615975565b60208082526034908201527f455243373231415f5f496e697469616c697a61626c653a20636f6e7472616374604082015273206973206e6f7420696e697469616c697a696e6760601b606082015260800190565b64ffffffffff828116828216039080821115613d8657613d86614f41565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615db99083018461457d565b9695505050505050565b600060208284031215615dd557600080fd5b81516124d081614526565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615e18816017850160208801614559565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615e49816028840160208801614559565b01602801949350505050565b600081615e6457615e64614f41565b506000190190565b634e487b7160e01b600052603160045260246000fdfef206625bad3d9112d5609b8d356e6fbd514cd1f69980d4ce2b3e6e68e1789ace63680df430131e002a919e96864c2a88aef0a4ae2b002894ffc3d31894db09c4ee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85fa2646970667358221220a614135b501a4c09bdc907e6ef6a2bc461940a23250eb2745a6bff7acea39f0764736f6c63430008140033